O PCF8575 é um expansor de E/S de 16 bits que se comunica com um microcontrolador através da interface i2C. Ele permite expandir o número de pinos de entrada/saída em seu Arduino, tornando -o perfeito para projetos que exigem muitos sensores, botões ou LEDs. Este tutorial o guiará através da conexão e do uso do PCF8575 com o Arduino.
O que você precisará
- Módulo de expansão de E/S PCF8575
- Board Arduino (por exemplo, Uno, Mega, Nano)
- Sensores, botões ou LEDs para testar
- Fios de pão e jumper
- Um computador com o Arduino IDE instalado
Etapa 1: Compreendendo o módulo PCF8575
O PCF8575 fornece 16 pinos GPIO adicionais que podem ser configurados como entradas ou saídas. Ele se comunica através do protocolo I2C e possui um endereço I2C ajustável para conectar vários módulos ao mesmo barramento.
Pinout
| Alfinete | Função |
|---|---|
| VCC | Fonte de alimentação (3,3V/5V) |
| Gnd | Chão |
| SDA | I2C Linha de dados |
| SCL | I2C Linha do relógio |
| P0-P15 | Pinos de E/S de uso geral |
Configuração do endereço I2C
- O endereço I2C é determinado pelos pinos A0, A1 e A2:
- Todos os pinos para GND:
0x20(endereço padrão) - Todos os pinos do VCC:
0x27
- Todos os pinos para GND:
Etapa 2: Fiação do PCF8575 para Arduino
Veja como conectar o PCF8575 a um Arduino:
| Pino pcf8575 | Pino Arduino |
|---|---|
| VCC | 5V |
| Gnd | Gnd |
| SDA | A4 (SDA) |
| SCL | A5 (SCL) |
Conecte seus periféricos (por exemplo, LEDs ou botões) aos pinos P0-P15.
Observação: Para outras placas do Arduino, certifique -se de usar os pinos I2C corretos.
Etapa 3: Instale a biblioteca necessária
Para simplificar o trabalho com o PCF8575, instale a biblioteca "PCF8575".
Etapas para instalar:
- Abra o Arduino IDE.
- Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
- Pesquise por "PCF8575" e clique Instalar.
Etapa 4: Faça o upload do código
Exemplo: Controle de LEDs
Este código demonstra como ligar e desligar os LEDs usando o PCF8575:
#include <Wire.h>
#include <PCF8575.h>
PCF8575 pcf8575(0x20); // Initialize with the default I2C address
void setup() {
Serial.begin(9600);
// Set all pins as outputs
for (int i = 0; i < 16; i++) {
pcf8575.pinMode(i, OUTPUT);
}
Serial.println("PCF8575 initialized.");
}
void loop() {
// Turn all LEDs on
for (int i = 0; i < 16; i++) {
pcf8575.digitalWrite(i, HIGH);
}
delay(1000);
// Turn all LEDs off
for (int i = 0; i < 16; i++) {
pcf8575.digitalWrite(i, LOW);
}
delay(1000);
}
Exemplo: Botões de leitura
Este código demonstra como ler a entrada dos botões conectados ao PCF8575:
#include <Wire.h>
#include <PCF8575.h>
PCF8575 pcf8575(0x20); // Initialize with the default I2C address
void setup() {
Serial.begin(9600);
// Set all pins as inputs
for (int i = 0; i < 16; i++) {
pcf8575.pinMode(i, INPUT);
}
Serial.println("PCF8575 initialized.");
}
void loop() {
for (int i = 0; i < 16; i++) {
int state = pcf8575.digitalRead(i);
Serial.print("Pin ");
Serial.print(i);
Serial.print(": ");
Serial.println(state);
}
delay(500);
}
Etapa 5: teste a configuração
- Conecte o Arduino ao seu computador via USB.
- Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
- Faça o upload do código para o Arduino clicando Carregar.
- Para o exemplo de LED, observe os LEDs ligando e desligando. Para o exemplo do botão, o botão Monitor declara no monitor serial.
Aplicações do PCF8575
- Expandindo pinos GPIO para projetos Arduino
- Construindo matrizes LED complexas
- Lendo vários sensores ou matrizes de botões
- Controlando relés e atuadores
Solução de problemas
- Nenhuma resposta do módulo: Verifique as conexões i2C e a configuração de endereços.
- Leituras inconsistentes: Garanta uma fonte de alimentação estável e resistores de pull-up adequados para as linhas I2C.
- Comportamento incorreto do pino: Os modos de pino de check duas vezes (entrada/saída) no código.
Conclusão
Você interfigurou com sucesso o expansor de E/S do PCF8575 com o Arduino, permitindo controlar ou ler a partir de 16 pinos GPIO adicionais. Experimente diferentes periféricos e expanda seus projetos com este módulo versátil!





2 comentários
Hallo Bruce,
benutze das Library von Renzo Mischianti (kannste nach googlen uind dort auch runterladen) und benenne den Folder in “PCF8575” um. Das Repository von Rob Tillaart hat andere Befehle und passt nicht zu dem o.g. Beispiel.
Ich hoffe das bringt dich weiter.
Gruß
Jochen
I copy the code and get a coplilation error:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void setup()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:11:13: error: ‘class PCF8575’ has no member named ‘pinMode’
pcf8575.pinMode(i, INPUT);
^~~~~~~
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void loop()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:19:25: error: ‘class PCF8575’ has no member named ‘digitalRead’
int state = pcf8575.digitalRead(i);
^~~~~~~~~~~
exit status 1
Compilation error: ‘class PCF8575’ has no member named ‘pinMode’