Retornar
ao topo
ao topo
Autor
Mensagem
Boa noite pessoal, venho pedir uma ajudinha, tenho um projeto com Arduino botões físicos e o nextion, onde utilizo o nextion como uma IHM, para acionar um rele. Porém ao executar o meu código o Botao somente funciona 1 vez, vejo que o Arduino está recebendo a informação com o RX E TX piscar, porém nada. #include <Nextion.h> #include <NexButton.h> #include <NexText.h> //Porta ligada ao pino IN1 do modulo int porta_rele1 = 9; //Porta ligada ao botao 1 int porta_botao1 = 2;// HOMEM AO MAR //Porta ligada ao botao 2 int porta_botao2 = 3;// BAIXA VISIBILIDADE //Porta ligada ao botao 3 int porta_botao3 = 4;//BOTAO LIVRE //Porta ligada ao botao 3 int porta_botao4 = 5;//BOTAO LIVRE int i=0; int CurrentPage = 0; NexButton bapito = NexButton(0, 1, "b0"); NexButton b0 = NexButton(1, 1, "b0"); // Button added NexButton bback = NexButton(1, 6, "b1"); NexButton b2 = NexButton(1, 3, "b2"); // Button added NexButton b3 = NexButton(1, 4, "b3"); // Button added NexDSButton bt0 = NexDSButton(1, 5, "bt0"); // Dual state button added NexPage page0 = NexPage(0, 0, "page0"); NexPage page1 = NexPage(1, 0, "page1"); char buffer[10] = {0}; uint32_t ds_var; bool isPage0 = true; int a,b; void b0PopCallback (void * ptr) { digitalWrite(porta_botao1,LOW); } void b2PopCallback(void * ptr) { while (i<6) { digitalWrite(porta_rele1, LOW); delay(3000); digitalWrite(porta_rele1, HIGH); delay(1000); i++; b0; } } void bapitoPopCallback(void *ptr) { page1.show(); } void bbackPopCallback(void *ptr) { page0.show(); } NexTouch *nex_listen_list[] = { &bapito, &b0, &bback, &b2, &b3, &bt0, NULL }; void setup(){ Serial.begin(9600); nexInit(); //Define pinos para o rele como saida pinMode(porta_rele1, OUTPUT); //Define pinos dos botoes como entrada pinMode(porta_botao1, INPUT_PULLUP); pinMode(porta_botao2, INPUT_PULLUP); pinMode(porta_botao3, INPUT_PULLUP); pinMode(porta_botao4, INPUT_PULLUP); //Estado inicial dos reles - desligados digitalWrite(porta_rele1,HIGH); bapito.attachPop(bapitoPopCallback, &bapito); //callback para o evento de release do botão btnNext bback.attachPop(bbackPopCallback, &bback); //callback para o evento de release do botão btnBack b0.attachPop(b0PopCallback,&b0); b2.attachPop(b2PopCallback,&b2); } void loop(){ nexLoop(nex_listen_list); Serial.print("estado:"); Serial.println(buffer); //Verifica o acionamento do botao 1 if (digitalRead(porta_botao1) !=1 || a==1 ) { while (i<6) { digitalWrite(porta_rele1, LOW); delay(3000); digitalWrite(porta_rele1, HIGH); delay(1000); i++; } digitalWrite(porta_botao1,HIGH); } if (digitalRead(porta_botao2) == LOW ) { while(digitalRead(porta_botao2) == LOW ){ digitalWrite(porta_rele1, LOW); delay(3000); digitalWrite(porta_rele1, HIGH); delay(3000); } } //Verifica o acionamento do botao 3 if (digitalRead(porta_botao3) == LOW || b==1) { delay(30); if (digitalRead(porta_botao3) == LOW || b==1) { digitalWrite(porta_rele1, LOW); while (digitalRead(porta_botao3) == LOW ||b==1) { } digitalWrite(porta_rele1, HIGH); } } }
|
|
|
Todos os horários são GMT - 3 Horas | Você não tem permissão para escrever novas mensagens v não tem permissão para responder às mensagens Você não tem permissão para editar suas mensagens Você não tem permissão para deletar suas mensagens Você não tem permissão para classificar tópicos Você não tem permissão para classificar mensagens Você não tem permissão para votar em enquetes Anexar downloads : Proibido Fazer Download de Arquivos: Proibido |
Powered by phpBB © 2001 phpBB Group