Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #define PCF8574_ADDRESS 0x27
- unsigned long previousMillis = 0;
- const long interval = 1000; // Intervallo di tempo in millisecondi
- void setup() {
- Wire.begin(); // Inizializza la libreria Wire
- Serial.begin(9600); // Inizializza la comunicazione seriale
- Wire.beginTransmission(PCF8574_ADDRESS);
- Wire.write(0b00001111); // Imposta i pin P0, P1, P2, P3 come input e P4, P5 come output (bit 0 a 1, gli altri a 0)
- Wire.endTransmission();
- }
- void loop() {
- unsigned long currentMillis = millis();
- // Cambia lo stato delle uscite P4 e P5 ogni secondo
- if (currentMillis - previousMillis >= interval) {
- previousMillis = currentMillis;
- // Leggi lo stato attuale dei pin di output P4 e P5
- Wire.requestFrom(PCF8574_ADDRESS, 1);
- if (Wire.available()) {
- byte pinState = Wire.read();
- bool pin4State = pinState & (1 << 4); // Leggi lo stato del pin P4
- bool pin5State = pinState & (1 << 5); // Leggi lo stato del pin P5
- // Cambia lo stato dei pin di output P4 e P5
- pinState ^= (1 << 4); // Inverti lo stato di P4
- pinState ^= (1 << 5); // Inverti lo stato di P5
- // Scrivi il nuovo stato su P4 e P5
- Wire.beginTransmission(PCF8574_ADDRESS);
- Wire.write(pinState);
- Wire.endTransmission();
- Serial.println("Stato degli output P4 e P5 cambiato.");
- }
- }
- // Leggi lo stato dei pin P0, P1, P2, P3
- Wire.requestFrom(PCF8574_ADDRESS, 1);
- if (Wire.available()) {
- byte pinState = Wire.read();
- bool pin0State = pinState & (1 << 0); // Leggi lo stato del pin P0
- bool pin1State = pinState & (1 << 1); // Leggi lo stato del pin P1
- bool pin2State = pinState & (1 << 2); // Leggi lo stato del pin P2
- bool pin3State = pinState & (1 << 3); // Leggi lo stato del pin P3
- Serial.print("Stato del pin P0: ");
- Serial.println(pin0State ? "HIGH" : "LOW");
- Serial.print("Stato del pin P1: ");
- Serial.println(pin1State ? "HIGH" : "LOW");
- Serial.print("Stato del pin P2: ");
- Serial.println(pin2State ? "HIGH" : "LOW");
- Serial.print("Stato del pin P3: ");
- Serial.println(pin3State ? "HIGH" : "LOW");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement