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);
}
}