Você pode ter se encontrado em uma situação em que gostaria de expandir o número de entradas e saídas disponíveis para o seu placa arduino, já que você está realizando um projeto que precisa de mais dispositivos do que o esperado. Nestes casos você só poderia fazer uma coisa: pensar em comprar uma placa de modelo superior com mais dessas conexões. Mas agora com O PCF8574 pode expandir a E/S do Arduino de uma forma fácil e barata.
Aqui vamos mostrar o que é o PCF8574 caso você não saiba, além de mostrar como ele pode ser conectado à sua placa Arduino explicado passo a passo e como funciona...
O que é PCF8574?
El PCF8574 é um expansor de entrada e saída digital (E/S) para o barramento I2C1. Este dispositivo, fabricado pela Philips, permite conectar um processador como o Arduino para controlar mais dispositivos usando menos pinos2. O PCF8574 incorpora 8 pinos quase direcionais baseados em saídas CMOS em configuração de dreno aberto.
Além disso, o PCF8574 é um dispositivo de baixo consumo de energia que suporta operações VCC de 2.5 V a 6 V. Ele possui uma porta de E/S quase bidirecional de 8 bits, saídas travadas, saída de interrupção de drenagem aberta e capacidade de condução de alta corrente para LEDs. Por outro lado, seu consumo em stand-by é muito baixo, inferior a 10 µA.
É muito útil para Expanda os recursos da sua placa Arduino além de seus limites, o que pode ser uma grande ajuda para criadores que precisam de algo mais do que o Arduino oferece. A corrente máxima que cada pino pode fornecer dependerá da configuração:
- Quando atua como saída, é de 25mA quando atua como dissipador, ou seja, quando a corrente elétrica flui para o PCF8574. Esta é a configuração padrão.
- Quando atua como fonte é 300µA, ou seja, quando a corrente flui do PCF8574. Da mesma forma, você deve saber que todas as saídas possuem Latches, ou seja, elas mesmas mantêm o estado em um registrador. Só temos que agir quando queremos modificar o estado de uma das saídas.
A comunicação é feita via barramento I2C, portanto é fácil obter dados dos dispositivos conectados a ele. Da mesma forma, deve-se destacar que possui 3 pinos de endereço, o que dá 8 conexões possíveis ao mesmo barramento I2C. Isso significa que é possível controlar 64 dispositivos utilizando apenas 2 pinos.
Configurações de endereço
Alguns modelos deste módulo PCF8574 geralmente incluem pinos de configuração e jumpers como os que você vê na imagem acima. Por outro lado, outros modelos incluem um interruptor que facilita as coisas com os três microinterruptores... Seja como for, estão habituados a configurar endereços de pinos de E/S:
A0 | A1 | A2 | Endereço |
0 | 0 | 0 | 0x20 |
0 | 0 | 1 | 0x21 |
0 | 1 | 0 | 0x22 |
0 | 1 | 1 | 0x23 |
1 | 0 | 0 | 0x24 |
1 | 0 | 1 | 0x25 |
1 | 1 | 0 | 0x26 |
1 | 1 | 1 | 0x27 |
Preço e onde comprar
Pode ser encontrado por apenas alguns euros. É um dispositivo bem barato para saber como isso pode ser prático para alguns modelos de Arduino que possuem um número menor de E/S. Portanto, se você procura um PCF8574, poderá encontrá-lo em lojas especializadas ou também em grandes plataformas online como Amazon, Aliexpress ou eBay. Por exemplo, aqui recomendamos um:
Conectando o PCF8574 ao Arduinno
Pára conecte o expansor PCF8574 à sua placa Arduino, O diagrama de conexão é bastante simples. Você só terá que conectar:
- O pino SCL marcado na placa PCF8574 no pino SCL do Arduino. Este pino pode mudar dependendo do modelo, mas geralmente está no A5 nos modelos mais populares como o UNO.
- O pino SDA do expansor deve ser conectado ao pino SDA do Arduino. A mesma coisa que mencionei acima, pode mudar dependendo do modelo, mas geralmente é o A4. Em caso de dúvida, verifique a pinagem do seu modelo.
- O pino GND do PCF8574 será obviamente conectado àquele marcado como GND no Arduino, ou seja, é a conexão de aterramento.
- O pino Vcc do expansor está conectado ao 5V do Arduino, desta forma, com GND e Vcc já alimentamos a placa expansora para que ela comece a funcionar.
Operação
Depois que o PCF8574 estiver conectado à placa Arduino, agora é hora de saber como funciona. Para isso, você deve ter em mente que poderá ter 8 pinos extras, em troca de ter utilizado dois pinos do Arduino, além dos de potência. Por outro lado, você deve ter algo em mente: em cada um desses 8 pinos do PCF8574 você tem um transistor MOSFET junto com um resistor pull-up de resistência muito baixa. Isto assume uma intensidade de corrente de 100 microA quando o transistor está ativo.
E isso nos deixa com o seguinte panorama:
- Configuração como saída- Quando o pino é usado como saída, ele atua como um dissipador de corrente, como discuti acima, ou seja, a corrente flui para dentro.
- BAIXO: Quando em baixa tensão não conduz corrente, carga = Vdd.
- ALTO: quando em alta tensão, pode passar corrente de até 25mA, a carga será conectada ao GND.
- Configuração como entrada: deve estar sempre ajustado em HIGH, e neste caso atuará como fonte, ou seja, a corrente fluirá.
- Fechado: Quando a carga externa não é fornecida, a tensão no pino vai para GND.
- Abrir: Quando ocorre uma carga externa, a tensão do pino se torna Vdd.
Código IDE do Arduino
Se o que você deseja são alguns exemplos de como criar código para usar este PCF8574 no Arduino, é tão simples quanto usar estes exemplos de código que você pode modificar de acordo com sua necessidade:
- Configuração como saída:
#include <Wire.h> const int pcfAddress = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { for (short channel = 0; channel < 8; channel++) { // Escribir dato en canal 'channel' Wire.beginTransmission(pcfAddress); Wire.write(~(1 << channel)); Wire.endTransmission(); // Leer dato de canal delay(500); } }
- Configuração como entrada:
#include <Wire.h> const int pcfAddress = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { short channel = 1; byte value = 0; // Leer dato de canal 'channel' Wire.requestFrom(pcfAddress, 1 << channel); if (Wire.available()) { value = Wire.read(); } Wire.endTransmission(); // Mostrar el valor por puerto serie Serial.println(value); }
Lembre-se de que você também pode usar o biblioteca criada especialmente para o PCF8574 que também inclui exemplos práticos…