spero di aver compreso;
ti faccio un esempio se l'invio dati puo essere simile a un Serial print che per caldaia accesa o spenta hai un pin (11) che va HIGH(accesa) o LOW (spenta) (ovvio che poi tu modifichi in pin 11 con il corretto, e la scritta del serial print con quella che hai gia)
byte mela;
void setup () {
if ( digitalRead (11)==HIGH) mela=1;
if ( digitalRead (11)==LOW) mela=0;
}
void loop()
{
if ( digitalRead (11)==HIGH && mela==1) mela=0, Serial.println(" la caldaia è accesa");
if ( digitalRead (11)== LOW && mela==0) mela=1, Serial.println(" la caldaia è spenta");
}
come vedi in questo caso puo essere stampato solo se 2 condizioni assieme sono vere
(attenzione a non confondere un = o 2 ==)
quando mela è uguale a 1 e il pi 11 è HIGH viene stampato la caldaia è accesa e allo stesso tempo viene portato mela a zero ,
al prossimo ciclo non puo piu stampare (" la caldaia è accesa"); perche mela è uguale a zero,
l'unico modo per portare mela a 1 e che si spegne la caldaia (pin 11 va LOW) a questo punto visto che mela era zero, e il pin 11 LOW viene stampato la caldaia è spenta; e mela viene portato a 1
il ciclo si ripete e stampa solo una volta qualdo il pin 11 passa da alto a basso o viceversa
ps se poi non ho afferrato prova a chiarire meglio