Hello, i´m starting a project with arduino mega and nextion and i have problems when i use the function
popcallback. i´m sending some variables to nextion, clock, temperature, ph, two progressive bars etc.
On this project i have 4 pages and i checked when i change to one page without theses variables the nextion return the code 1A FF FF FF . On arduino i´m sending the values to page 1 only.
I think popcallback don´t work because bus is busy with return data and don´t read popcallback operations.
I need some help. Thanks in advance.
#include <EEPROM.h>
#include <Nextion.h>
#include <SoftwareSerial.h> // Library for Software Serial Port
#define espacoEEPROM 4000 //4Kb para arduino mega, 1k para arduino uno
// parametros RTC
#include <virtuabotixRTC.h>
#define clk 6
#define dat 7
#define rst 8
#define segL 19
#define minL 45
#define horL 19
#define d_semL 6
#define d_mesL 24
#define mesL 6
#define anoL 2019
char data_temperatura;
char datas_serial;
char buffer[10];
float temperature;
//valores a memorizar na eeprom ////////////////////////
//endereço de memória para guardar o valor do set tempetatura
int address1 = 0; //inicializa o valor de temperatura no endereço 0 da eeprom
////// endereços de memoria para as funções automáticas##############################################################
////feed
int address2 = 10; //inicializa o valor da hora ligar feed
int address3 = 20; //inicializa o valor do minuto ligar feed
/////bomba filtro
int address6 = 50; //inicializa o valor da hora ligar bomba
int address7 = 60; // inicializa o valor do minuto ligar bomba
int address8 = 70; // inicializa o valor da hora desligar bomba
int address9 = 80; // inicializa o valor do minuto desligar bomba
///// iluminação
int address10 = 90; //inicializa o valor da hora ligar iluminacao
int address11 = 100; //inicializa o valor do minuto ligar iluminacao
int address12 = 110; //inicializa o valor da hora desligar iluminacao
int address13 = 120; //inicializa o valor do minuto desligar iluminacao
int settemp; // inicializa a valiável temperatura do set temperatura
// valores variáveis função automática
//feed
int horafeedligar;
int minutofeedligar;
//bomba
int horabombaligar;
int minutobombaligar;
int horabombadesligar;
int minutobombadesligar;
//iluminação
int horailuminacaoligar;
int minutoiluminacaoligar;
int horailuminacaodesligar;
int minutoiluminacaodesligar;
void EEPROMWriteInt(int address, int value); //2 Bytes
int EEPROMReadInt(int address);
//===========================================================================
// MANUAL BUTTONS
int variable1 = 0; // Create a variable to have a counter going up by one on each cycle
int counter = 0; // Create a variable to have a counter for the + and - buttons
int CurrentPage = 0;
//envio dos valores temp,horas,etc para nextion
NexNumber d_val = NexNumber(3, 8, "settemp");
NexText vel_val = NexText(0, 11, "t3");
NexNumber temp_digit = NexNumber(0, 23, "n0");
NexProgressBar j0 = NexProgressBar(0, 2, "j0");
NexProgressBar j1 = NexProgressBar(0, 3, "j1");
NexText ph_val = NexText(0, 4, "t1");
//envio de valores para programador
//feed
NexNumber horafeedligar_val = NexNumber(1, 51, "n10");
NexNumber minutofeedligar_val = NexNumber(1, 52, "n12");
//bomba filtro
NexNumber horabombaligar_val = NexNumber(1, 35, "n14");
NexNumber minutobombaligar_val = NexNumber(1, 36, "n16");
NexNumber horabombadesligar_val = NexNumber(1, 37, "n15");
NexNumber minutobombadesligar_val = NexNumber(1, 38, "n17");
//iluminação
NexNumber horailuminacaoligar_val = NexNumber(1, 19, "n18");
NexNumber minutoiluminacaoligar_val = NexNumber(1, 20, "n20");
NexNumber horailuminacaodesligar_val = NexNumber(1, 21, "n19");
NexNumber minutoiluminacaodesligar_val = NexNumber(1, 22, "n21");
//declaração de botões set temp
NexButton b1 = NexButton(3, 6, "b1"); //botão de set temperature +
NexButton b2 = NexButton(3, 7, "b2"); //botão de -
// decalaração de botões para programação automática
// feed
NexButton b100 = NexButton(1, 41, "b100"); //botão de hora + feed on
NexButton b101 = NexButton(1, 43, "b101"); //botão de hora - feed on
NexButton b104 = NexButton(1, 42, "b104"); //botão de minuto + feed on
NexButton b105 = NexButton(1, 46, "b105"); //botão de minuto - feed on
//bomba filtro
NexButton b108 = NexButton(1, 31, "b108"); //botão de hora + bomba on
NexButton b109 = NexButton(1, 33, "b109"); //botão de hora - bomba on
NexButton b110 = NexButton(1, 23, "b110"); //botão de hora + bomba off
NexButton b111 = NexButton(1, 25, "b111"); //botão de hora - bomba off
NexButton b112 = NexButton(1, 32, "b112"); //botão de minuto + bomba on
NexButton b113 = NexButton(1, 34, "b113"); //botão de minuto - bomba on
NexButton b114 = NexButton(1, 24, "b113"); //botão de minuto + bomba off
NexButton b115 = NexButton(1, 26, "b114"); //botão de minuto - bomba off
//iluminação
NexButton b116 = NexButton(1, 48, "b116"); //botão de hora luz on
NexButton b117 = NexButton(1, 17, "b117"); //botão de hora luz on
NexButton b118 = NexButton(1, 3, "b118"); //botão de hora luz off
NexButton b119 = NexButton(1, 47, "b119"); //botão de hora luz off
NexButton b120 = NexButton(1, 49, "b120"); //botão de minuto luz on
NexButton b121 = NexButton(1, 18, "b121"); //botão de minuto luz on
NexButton b122 = NexButton(1, 4, "b122"); //botão de minuto luz off
NexButton b123 = NexButton(1, 5, "b123"); //botão de minuto luz off
NexDSButton bt0 = NexDSButton(2, 5, "bt0"); // Dual state bomba filtro
NexDSButton bt1 = NexDSButton(2, 6, "bt1"); // Dual state alimentador
NexDSButton bt2 = NexDSButton(2, 7, "bt2"); // Dual state iluminação
NexTouch *nex_listen_list[] =
{
&b1, // botão + do set temp
&b2, // botão - do set temp
//botoes do temporizador
&b100,
&b101,
&b104,
&b105,
&b108,
&b109,
&b110,
&b111,
&b112,
&b113,
&b114,
&b115,
&b116,
&b117,
&b118,
&b119,
&b120,
&b121,
&b122,
&b123,
&bt0, // bt0 bt1 bt2 botões dual state para controlos manuais
&bt1,
&bt2,
NULL // String terminated
}; // End of touch event list