Advertisement
pippero

Untitled

Mar 18th, 2024
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. #include <Wire.h>
  2.  
  3. #define PCF8574_ADDRESS 0x27
  4.  
  5. unsigned long previousMillis = 0;
  6. const long interval = 1000; // Intervallo di tempo in millisecondi
  7.  
  8. void setup() {
  9. Wire.begin(); // Inizializza la libreria Wire
  10. Serial.begin(9600); // Inizializza la comunicazione seriale
  11. Wire.beginTransmission(PCF8574_ADDRESS);
  12. 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)
  13. Wire.endTransmission();
  14. }
  15.  
  16. void loop() {
  17. unsigned long currentMillis = millis();
  18.  
  19. // Cambia lo stato delle uscite P4 e P5 ogni secondo
  20. if (currentMillis - previousMillis >= interval) {
  21. previousMillis = currentMillis;
  22.  
  23. // Leggi lo stato attuale dei pin di output P4 e P5
  24. Wire.requestFrom(PCF8574_ADDRESS, 1);
  25. if (Wire.available()) {
  26. byte pinState = Wire.read();
  27. bool pin4State = pinState & (1 << 4); // Leggi lo stato del pin P4
  28. bool pin5State = pinState & (1 << 5); // Leggi lo stato del pin P5
  29.  
  30. // Cambia lo stato dei pin di output P4 e P5
  31. pinState ^= (1 << 4); // Inverti lo stato di P4
  32. pinState ^= (1 << 5); // Inverti lo stato di P5
  33.  
  34. // Scrivi il nuovo stato su P4 e P5
  35. Wire.beginTransmission(PCF8574_ADDRESS);
  36. Wire.write(pinState);
  37. Wire.endTransmission();
  38.  
  39. Serial.println("Stato degli output P4 e P5 cambiato.");
  40. }
  41. }
  42.  
  43. // Leggi lo stato dei pin P0, P1, P2, P3
  44. Wire.requestFrom(PCF8574_ADDRESS, 1);
  45. if (Wire.available()) {
  46. byte pinState = Wire.read();
  47. bool pin0State = pinState & (1 << 0); // Leggi lo stato del pin P0
  48. bool pin1State = pinState & (1 << 1); // Leggi lo stato del pin P1
  49. bool pin2State = pinState & (1 << 2); // Leggi lo stato del pin P2
  50. bool pin3State = pinState & (1 << 3); // Leggi lo stato del pin P3
  51.  
  52. Serial.print("Stato del pin P0: ");
  53. Serial.println(pin0State ? "HIGH" : "LOW");
  54. Serial.print("Stato del pin P1: ");
  55. Serial.println(pin1State ? "HIGH" : "LOW");
  56. Serial.print("Stato del pin P2: ");
  57. Serial.println(pin2State ? "HIGH" : "LOW");
  58. Serial.print("Stato del pin P3: ");
  59. Serial.println(pin3State ? "HIGH" : "LOW");
  60. }
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement