Ciao a tutti , dopo aver controllato in rete senza risultati ho deciso di aprire una nuova discussione , se mi è permesso ^
Utilizzo un ARDUINO UNO che , tramite I2C , comunica con un PCF8574A
Utilizzo la libreria PCF8574.H
Posto il codice :
#include <PCF8574.h>
#include <Wire.h>
PCF8574 expander;
void setup(){
expander.pinMode(0,INPUT);
pinMode(13, OUTPUT);
expander.begin(0x38);
expander.pullUp(0);
}
void loop(){
expander.detachInterrupt(0);
int value = (expander.digitalRead(0));
if(value == 0)
{
digitalWrite(13, HIGH);
delay (150);
digitalWrite(13, LOW);
delay (150);
digitalWrite(13, HIGH);
delay (150);
digitalWrite(13, LOW);
delay (150);
digitalWrite(13, HIGH);
delay (150);
digitalWrite(13, LOW);
delay (150);
digitalWrite(13, HIGH);
delay (150);
digitalWrite(13, LOW);
delay (150);
digitalWrite(13, HIGH);
delay (150);
digitalWrite(13, LOW);
}
}
Tutto funziona , premo il BUTTON sul PIN0 del PCF78574A e ottengo un lampeggio del LED collegato sull'uscita 13 della MAINBOARD di arduino
Ma se volessi far lampeggiare un LED su un PIN del PCF8574A con questo codice :
#include <PCF8574.h>
#include <Wire.h>
PCF8574 expander;
void setup(){
expander.pinMode(0,INPUT);
expander.pinMode(1, OUTPUT);
expander.begin(0x38);
expander.pullUp(0);
}
void loop(){
expander.detachInterrupt(0);
int value = (expander.digitalRead(0));
if(value == 0)
{
expander.digitalWrite(1, HIGH);
delay (150);
expander.digitalWrite(1, LOW);
delay (150);
expander.digitalWrite(1, HIGH);
delay (150);
expander.digitalWrite(1, LOW);
delay (150);
expander.digitalWrite(1, HIGH);
delay (150);
expander.digitalWrite(1, LOW);
delay (150);
expander.digitalWrite(1, HIGH);
delay (150);
expander.digitalWrite(1, LOW);
delay (150);
expander.digitalWrite(1, HIGH);
delay (150);
expander.digitalWrite(1, LOW);
}
}
accade che , quando premo il BUTTON sul PIN0 del PCF8574A il LED sul PIN 1 inizia a lampeggiare ma non si ferma più..
Ho fatto 1000 prove ma senza soluzione..
Grazie per l'aiuto