Senhores, bom base em alguns exemplos da internet desenvolvi esse Sketch, mas estou tendo algumas dificuldades, visto que sou novo a área, portanto peço ajuda de vocês.

Preciso adicionar o reconhecimento de um 2º PULSO vindo da mesma entrada do 1º PULSO e também adicionar um atraso - sem a função delay() para o 4º led (LED4).

Usando a função millis()  consegui os temporizadores.

Se alguém puder me ajudar a resolver o problema, ou puder melhorar o que já foi feito, fico agradecido.

OBJETIVO:

2 BOTÕES.
4 LEDS

O 1º PULSO do BOTAO1 acionar o LED1
O 1º PULSO do BOTAO2 acionar o LED2
O 2º PULSO do BOTAO2 acionar o LED3

AGUARDAR 4 segundos

acionar o LED4.

Todos mantendo suas respectivos temporizações.

Desde já agradeço.

/*
************************************************************************************
************************************************************************************
************************************************************************************
TENTANDO IMPLEMENTAR O SEGUNDO PULSO.
TENTANDO IMPLEMENTAR O ATRASO (SEM delay() PARA O 4º LED.


OBJETIVOS:

COM 1º PULSO DE BOTÃO1 LIGAR LED1

COM 1º PULSO DE BOTÃO2 LIGAR LED2
COM 2º PULSO DE BOTÃO2 LIGAR LED3

AGUARDAR 4 SEGUNDOS E LIGAR LED4 (IMPLEMENTAR)

AGUARDAR TEMPORIZAÇÕES DE LED1, LED2, LED3 E LED4
DESLIGA-LOS

IMPLEMENTAR RESET

Hélio Rodrigues
Goianira/Go
Brazil
30/12/2017

Video do sistema ainda sem 2º PULSO e sem o ATRASO para o 4º LED (LED4).
https://youtu.be/AhQQgb2-QWQ

TODA E QUALQUER AJUDA É BEM VINDA.
h3lyofilho@gmail.com
WhatsApp: (62) 99458 1897

************************************************************************************
*************************************************************************************
************************************************************************************
*/

#define TEMPO_LED1 2000 //PARA USO FINAL TEMPO SERA DE 3 OU 4 SEGUNDOS - SEM AJUSTE
#define TEMPO_LED2 90000 //PARA USO FINAL TEMPO SERA DE ATÉ 3 HORAS - COM AJUSTE
#define TEMPO_LED3 7000 //PARA USO FINAL TEMPO SERA DE ATÉ 30 MINUTOS - COM AJUSTE
#define TEMPO_LED4 4000 //PARA USO FINAL TEMPO SERA DE ATÉ 10 SEGUNDOS - COM AJUSTE


unsigned char BOTAO1 = 0;//INICIA TEMPO_LED1
unsigned char BOTAO2 = 2;//INICIA TEMPO_LED2, TEMPO_LED3, TEMPO_LED4

unsigned char LED1 = 8;
unsigned char LED2 = 9;
unsigned char LED3 = 10;
unsigned char LED4 = 11;

unsigned long AGORA = 0;
unsigned long EVENTO_LED1 = 0;
unsigned long EVENTO_LED2 = 0;
unsigned long EVENTO_LED3 = 0;
unsigned long EVENTO_LED4 = 0;


void setup()
{
pinMode(BOTAO1, INPUT_PULLUP);//SINAL DE ENTRADA COM RESISTOR INTERNO ATIVO
pinMode(BOTAO2,INPUT_PULLUP);//SINAL DE ENTRADA COM RESISTOR INTERNO ATIVO

pinMode(LED1,OUTPUT);//SINAL DE SAIDA
pinMode(LED2,OUTPUT);//SINAL DE SAIDA
pinMode(LED3,OUTPUT);//SINAL DE SAIDA
pinMode(LED4,OUTPUT);//SINAL DE SAIDA
}

void loop()
{
//LIGANDO.........
//LIGANDO.........
//LIGANDO.........
//LIGANDO.........
//LIGANDO.........
//LIGANDO.........
//==================================================================================
//==================================================================================
//==================================================================================
//==================================================================================

AGORA = millis(); //TEMPO DESDE QUE O ARDUINO FOI LIGADO


//LED1
if (digitalRead(BOTAO1) == 0)//SE O BOTAO1 FOR PRESSIONADO...
{
EVENTO_LED1 = millis();//...MARCAMOS O TEMPO DE INICIO DO LED1
digitalWrite(LED1,1);//LIGA O LIGA O LED1
}


//LED2
if (digitalRead(BOTAO2) == 0)//SE O BOTAO2 FOR PRESSIONADO...
{
EVENTO_LED2 = millis();//...MARCAMOS O TEMPO DE INICIO DO LED2
digitalWrite(LED2,1);//LIGA O LED2
}


//LED3
if (digitalRead(BOTAO2) == 0)//SE O BOTAO2 FOR PRESSIONADO..
{
EVENTO_LED3 = millis();//...MARCAMOS O TEMPO DE INICIO LED3
digitalWrite(LED3,1);//LIGA O LED3
}


//LED4
if (digitalRead(BOTAO2) == 0)//SE O BOTAO2 FOR PRESSIONADO..
{
EVENTO_LED4 = millis();//...MARCAMOS O TEMPO DE INICIO LED4
digitalWrite(LED4,1);//LIGA O LED4
}

//DESLIGANDO.........
//DESLIGANDO.........
//DESLIGANDO.........
//DESLIGANDO.........
//DESLIGANDO.........
//DESLIGANDO.........
//==================================================================================
//==================================================================================
//==================================================================================
//==================================================================================
if(AGORA - EVENTO_LED1 > TEMPO_LED1)//SE ACABOU O TEMPO DE LED1
{
EVENTO_LED1 = AGORA;//RESETA O LED1
digitalWrite(LED1,0);//E DESLIGA O LED1
}


if(AGORA - EVENTO_LED2 > TEMPO_LED2)//SE ACABOU 0 TEMPO DE LED2
{
EVENTO_LED2 = AGORA;//RESETA O TEMPO DE LED2
digitalWrite(LED2,0);//E DESLIGA O LED2
}


if(AGORA - EVENTO_LED3 > TEMPO_LED3)//SE ACABOU O TEMPO DE LED3
{
EVENTO_LED3= AGORA;//RESETA O TEMPO DE LED3
digitalWrite(LED3,0);//E DESLIGA O LED3
}


if(AGORA - EVENTO_LED3 > TEMPO_LED4)//SE ACABOU O TEMPO LED4
{
EVENTO_LED4 = AGORA;//RESETA O TEMPO DE LED4
digitalWrite(LED4,0);//E DESLIGA O LED4
}
}

Exibições: 278

Anexos

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço