Como usar o expansor de E/S PCF8575 com Arduino

How to Use the PCF8575 I/O Expander with Arduino

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á

  1. Módulo de expansão de E/S PCF8575
  2. Board Arduino (por exemplo, Uno, Mega, Nano)
  3. Sensores, botões ou LEDs para testar
  4. Fios de pão e jumper
  5. 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

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:

  1. Abra o Arduino IDE.
  2. Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
  3. 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

  1. Conecte o Arduino ao seu computador via USB.
  2. Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
  3. Faça o upload do código para o Arduino clicando Carregar.
  4. 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

  1. Expandindo pinos GPIO para projetos Arduino
  2. Construindo matrizes LED complexas
  3. Lendo vários sensores ou matrizes de botões
  4. 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!

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.