Fala  pessoal estou com uma duvida, se alguem puder esclarecer para um iniciante..

fiz essa programação porem qd aperto o botão 2 para ligar o led on ele liga, mas qd solto o botão ele fica Off  novamente( escrita do display).

O codigo é esse( n reparem na bagunça ahahah)..  e outra duvida alguem sabe como posso atribuir valores maximos e minimos para temperatura atraves de um botão externo, no meu programa eu declarei 29 para testar, mas gostaria de ter controle para mudar a hora q quiser!

#include <LiquidCrystal.h>
int count = 1;
int button_1 = 8;
int buttonread = 0;
int button_2 = 7;
byte buttonreada = 0;
int state=0;
int led = 9;
int valorLido = 0;
const int sensor=A0;
float temperatura;

//teste=======
int ideal;
//teste=======

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//======SETUP================================================
void setup() {
pinMode(button_1, INPUT);
pinMode(button_2, INPUT);
pinMode(led, OUTPUT);

digitalWrite(button_1, HIGH);
digitalWrite(button_2, HIGH);
lcd.begin(16, 2);

}
//======LOOP==================================================
void loop() {
buttonread = digitalRead(button_1);//Le o botao um e grava seu estado em "buttonread"
// button_1 = !button_1;

if(buttonread==HIGH){//Se "buttonread" for nivel alto
count = count+1;//some mais um em "count"
lcd.clear();//apagar lcd
}
if(count>2){//Se count maior que 2 ele volta para 1
count=1;//"count" é 1
}
switch (count){

//==MENU 1=============================
case 1:
buttonreada = digitalRead(button_2);
if(buttonreada==HIGH){
// digitalWrite(led , HIGH);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("LED");
lcd.setCursor(2,1);
lcd.print("ON");

}else{
// digitalWrite(led , LOW);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("LED");
lcd.setCursor(2,1);
lcd.print("OFF");}

delay(200);
break;

//==MENU 2=============================
case 2:
lcd.setCursor(2,0);
lcd.print("TEMPERATURE");
valorLido = analogRead(sensor);
temperatura = (valorLido * 0.00488);
temperatura = temperatura * 100;
Serial.print("Temperatura actual: ");
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.print(temperatura);
lcd.print("C");
delay(500);


if(temperatura > 29){
digitalWrite(led , HIGH);
}else{
digitalWrite(led , LOW);}


break;


}
}

Exibições: 1168

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço