Buona sera a tutti,
sicuramente sto sbagliando qualcosa, perché il programma si blocca, quando il relè1 è LOW dovrei inserire anche il comando sendPacket("dati")
Così funziona bene
(toggleState_1 == false) ? digitalWrite(Relay1, HIGH) : digitalWrite(Relay1, LOW);
ma se aggiungo sendPacket("dati"); non va…..
(toggleState_1 == false) ? digitalWrite(Relay1, HIGH) : digitalWrite(Relay1, LOW),sendPacket("dati");
qualche consiglio? Grazie
L'unica cosa anomala in quella riga, rispetto alla descrizione del funzionamento desiderato, è che la funzione SendPacket è fuori dalla condizione ternaria, viene eseguita sempre.
Io vedo l'operatore virgola che separa la sendpacket dalla digitalwrite quindi siccome l'operatore ternario è un operatore di assegnazione il tutto dovrebbe andare
Ma perché farsi male da soli?
digitalWrite(Relay1, !toggleState)
Elimina l'operatore ternario con qualcosa di più leggibile e più Corto...
E poi una singola if risolve tutto
C'è un problema di ordine di precedenza, che andrebbe risolto con delle parentesi.
Basta, appunto, non usare mai l'ambigua virgola...
Come ha suggerito C1P8:
digitalWrite(Relay1, !toggleState_1);
if(toggleState_1) sendPacket("dati");
Per adesso un grazie di cuore, ho le idee più chiare, mi metto al lavoro
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.