Existen en el mercado diferentes placas que integran este circuito y que nos permiten realizar proyectos de forma cómoda y rápida. Suelen disponer de la opción de configurar con A0, A1 y A2 la dirección final I2C del módulo mediante puentes o soldaduras.
#include <Wire.h> const int pcfAddress = 0x20; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { for (short channel = 0; channel < 8; channel++) { // Escribir dato en cada uno de los 8 canales Wire.beginTransmission(pcfAddress); Wire.write(~(1 << channel)); Wire.endTransmission(); // Leer dato del canal delay(500); } }
#include <Wire.h> const int pcfAddress = 0x20; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { short channel = 1; byte value = 0; // Leer dato del canal Wire.requestFrom(pcfAddress, 1 << channel); if (Wire.available()) { value = Wire.read(); } Wire.endTransmission(); // Mostrar el valor por el monitor serie Serial.println(value); }
int pin_INT =2;// INTERRUPTOR DEL CI PCF8574 pinMode( pin_INT, INPUT_PULLUP);
pcf8574.pinMode(0b11111111, OUTPUT); //Define P0 a P7 como salida.
#include <Wire.h> #include "PCF8574.h" PCF8574 expander; void setup() { Serial.begin(9600); expander.begin(0x20); /* Setup some PCF8574 pins for demo */ expander.pinMode(0, OUTPUT); expander.pinMode(1, OUTPUT); expander.pinMode(2, OUTPUT); expander.pinMode(3, INPUT_PULLUP); /* Blink hardware LED for debug */ digitalWrite(13, HIGH); /* Toggle PCF8574 output 0 for demo */ expander.toggle(); /* Blink hardware LED for debug */ digitalWrite(13, LOW); } void loop() { }
// Juan A. Villalpando // kio4.com #include "Arduino.h" #include "PCF8574.h" PCF8574 pcf8574(0x20); // Dirección del módulo int LED13 = 13; void setup(){ pcf8574.begin(); pinMode(LED13,OUTPUT); pcf8574.pinMode(P1, INPUT); // Pulsador en P1 del módulo } void loop(){ uint8_t P1_Read = pcf8574.digitalRead(P1); if (P1_Read == HIGH){ digitalWrite(LED13, HIGH); } else {digitalWrite(LED13, LOW);} delay(50); }