Controllo rele arduino Nextion

ciao a tutti,
nuovissimo sia del forum che nell uso di arduino e nextion.
ho compilato uno sketch che vi mostro in seguito per il controllo di alcuni rele.
per quanto riguarda i primi 2 tutto funziona correttamente mentre per i successivi si e' creata una sorta di "dipendenza" dove i successivi si attivano e disattivano solo se i primi due sono in una posizione coerente con i successivi.
avete idea di cosa ho combinato?

grazie mille!

p.s. il forum mi da un avviso per la formattazione delle parte codice ma sinceramente non ho capito cosa devo fare..... se non si legge bene il codice fatemi sapere cosa dovrei fare

#include <Nextion.h>

NexDSButton bt0 = NexDSButton(0, 9, "bt0");
NexDSButton bt1 = NexDSButton(0, 10, "bt1");
NexDSButton bt2 = NexDSButton(0, 11, "bt2");
NexDSButton bt3 = NexDSButton(0, 12, "bt3");
NexDSButton bt4 = NexDSButton(0, 13, "bt4");
NexDSButton bt5 = NexDSButton(0, 14, "bt5");

uint32_t statoboiler = 0;
uint32_t statocino = 0 ;
uint32_t statoriscalda = 0 ;
uint32_t statofornello = 0 ;
uint32_t statopresa1 = 0 ;
uint32_t statopresa2 = 0 ;



NexTouch *nex_listen_list[] = {
  &bt0,
  &bt1,
  &bt2,
  &bt3,
  &bt4,
  &bt5,
  NULL
};

void setup() {
  Serial.begin(9600);

  nexInit();

  bt0.attachPop(boiler, &bt0);
  bt1.attachPop(cino, &bt1);
  bt2.attachPop(riscalda, &bt2);
  bt3.attachPop(fornello, &bt3);
  bt4.attachPop(presa1, &bt4);
  bt5.attachPop(presa2, &bt5);
  
  

  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);

  
}

void loop() {
  nexLoop(nex_listen_list);
}

void boiler(void *ptr)
{
  bt0.getValue(&statoboiler);
  if (statoboiler == 1)
  {
    digitalWrite(2, HIGH);
  }
  else
  {
    digitalWrite(2, LOW);
  }

  }

void cino(void *ptr)
{
  bt1.getValue(&statocino);
  if (statocino == 1)
  {
    digitalWrite(3, HIGH);
  }
  else
  {
    digitalWrite(3, LOW);
  }
  }

void riscalda(void *ptr)
{
  bt1.getValue(&statoriscalda);
  if (statoriscalda == 1)
  {
    digitalWrite(4, HIGH);
  }
  else
  {
    digitalWrite(4, LOW);
  }
  }

void fornello(void *ptr)
{
  bt1.getValue(&statofornello);
  if (statofornello == 1)
  {
    digitalWrite(5, HIGH);
  }
  else
  {
    digitalWrite(5, LOW);
  }
  }

void presa1(void *ptr)
{
  bt1.getValue(&statopresa1);
  if (statopresa1 == 1)
  {
    digitalWrite(6, HIGH);
  }
  else
  {
    digitalWrite(6, LOW);
  }
  }

void presa2(void *ptr)
{
  bt1.getValue(&statopresa2);
  if (statopresa2 == 1)
  {
    digitalWrite(7, HIGH);
  }
  else
  {
    digitalWrite(7, LOW);
  }
}

Buongiorno e benvenuto, :slight_smile:

essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione … possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO … Grazie. :slight_smile:

...poi in conformità al REGOLAMENTO , punto 7, cortesemente edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l’icona </> nella barra degli strumenti per contrassegnarla come codice. Grazie.

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread e sistemato il codice come da regolamento, nessuno ti potrà rispondere, quindi ti consiglio di fare il tutto al più presto. :wink:

ciao e grazie.
mi sono presentato nella sezione che mi hai indicato.
per quanto riguarda il problema che ho sottoposto vi comunico che sono riuscito a risolvere da solo.
essendo una capra ho sbagliato alcuni riferimenti ai bottoni e il sistema di conseguenza ripondeva male.
quindi questo passo e' risolto!

a breve ne arrivera un altro. mi sono gia incartato con il sensore temperatura

... cortesemente, potresti sistemare il codice del tuo primo post come ti è stato richiesto e spiegato? Grazie.

Guglielmo

dovrebbe essere a posto.

Grazie!

1 Like

ciao, sono riuscito a risolvere da solo per questo. devo cancellarlo?

No, no, hai sistemato il codice come si deve, per cui ... bene ... e, se dici anche come hai risolto, fai un favore a chi, in futuro, dovesse leggere questo thread :slight_smile:

Guglielmo

ho risolto!
ripetendo alcune operazioni mi sono accorto di aver impostato male i riferimenti ai dual state button.
corretti i riferimenti funziona tutto correttamente

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.