Boa noite, vou mandar o codigo do meu projeto, nao esta funcionando, a ideia é, primeiro verificar se presica de mais luz e avisar caso precise (no led), além de um buzzer tocar, após isso, exibir um menu no lcd, e calculando o tempo que eu fiquei apertando o botao, eu devo ou nao acender um outro led nao usado ainda
#include<LiquidCrystal.h>
const int BUTTON=1;
const int LEDL=8;
const int LEDH=13;
const int SENSOR=0;
const int BUZZER=7;
int statelight,statebutton=0,option,cont=0,untilhere,time;
LiquidCrystal lcd(12,11,5,4,3,2);
void turnBuzzer()
{
digitalWrite(BUZZER,HIGH);
delay(800);
digitalWrite(BUZZER,LOW);
}
void showMenu()
{
lcd.setCursor(0,0);
lcd.print("1s para acender");
lcd.setCursor(0,1);
lcd.print("5s para apagar");
}
void modifyLights()
{
statelight=analogRead(SENSOR);
if(statelight<=250)
{
turnBuzzer();
digitalWrite(LEDH,HIGH);
lcd.setCursor(0,0);
lcd.print("Luz de emergencia ativado");
lcd.setCursor(0,1);
lcd.print("Problema de luz resolvido");
delay(2000);
showMenu();
}
else{
digitalWrite(LEDH,LOW);}
}
int readButton()
{
while(statebutton!=HIGH)
{
modifyLights();
statebutton=digitalRead(BUTTON);
if(statebutton==HIGH)
{
untilhere=millis();
while(statebutton==HIGH)
{
statebutton=digitalRead(BUTTON);
}
time=millis()-untilhere;
}
}
if(time>=800 && time <=1200)
{
return 1;}
else if(time>=4000 && time<=6000){
return 2;}
else if(time>8000){
return 3;}
}
void setup ()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("INICIO PROJETO VENTO DE CORES ");
delay(5000);
pinMode(BUTTON,INPUT);
pinMode(LEDL,OUTPUT);
pinMode(LEDH,OUTPUT);
pinMode(BUZZER,OUTPUT);
}
void loop()
{
showMenu();
option=readButton();
if(option==1)
{
turnBuzzer();
lcd.setCursor(0,0);
lcd.print("Led aceso");
digitalWrite(LEDL,HIGH);
}
else if(option==2)
{
turnBuzzer();
lcd.setCursor(0,0);
lcd.print("Led apagado");
digitalWrite(LEDL,LOW);
}
else if(option==3)
{
turnBuzzer();
lcd.setCursor(0,0);
lcd.print("xxx"); // aqui é só uma brincadeira que eu fiz, ignorem a opção 3
}
}