Adicione 3leds para saber o que está sendo acionado pelo menu.
não se esqueça de colocar em serie resistores de 2,2KΩ .
Cada led será ligado a uma porta do arduino , no caso serão as portas A5 , A4 e A3 .
Para ligar o background do display , vamos usar um transistor BC337 ,o coletor vai ao 5v do arduino , a base vai em série com um resistor de 56Ω e o emissor vai ao positivo do display . o outro terminal do resistor vai ligado a porta A2 do arduino .
---
Se voce ligou tudo certinho a montagem deverá ficar assim
--
E agora é só programar .
#include <LiquidCrystal.h>
int contador=0;
const int botao = 6;
const int botao2 = 7;
const int botao3 = 8;
boolean troca = false ;
boolean troca1 = false ;
boolean troca2 = false ;
boolean troca3= false;
//inicia o display e seleciona as entradas e saidas
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
pinMode(botao, INPUT);
pinMode(botao2, INPUT);
pinMode(botao3, INPUT);
pinMode(A5, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A2,OUTPUT);
}
void loop() {
int estado =0;
int estado2 =0;
int estado3 =0;
int estado4=0;
//faz a leitura do estado dos botoes
estado = digitalRead(botao);
estado2 = digitalRead(botao2);
estado3 = digitalRead(botao3);
estado4=digitalRead(botao3);
//controle da sequencia do menu
if (estado == HIGH) {
delay(250);
contador=contador+1;
}
if (estado2 == HIGH) {
delay(250);
contador=contador-1;
}
if (contador<0){
contador=3;
}
//menu
switch(contador){
case 0:
if (estado3 == HIGH & troca==false ){
delay(150);
troca=true;
}else{
delay(150);
if(troca==true & estado3==HIGH){
troca=false;
}
}
lcd.setCursor(0, 0);
lcd.print("LED-1");
lcd.setCursor(0,1);
if (troca==1){
lcd.print("ON ");
digitalWrite(A3,HIGH);
}else{
lcd.print("OFF");
digitalWrite(A3,LOW);
}
break;
case 1:
if (estado3 == HIGH & troca1==false ){
delay(150);
troca1=true;
}else{
delay(150);
if(troca1==true & estado3==HIGH){
troca1=false;
}
}
lcd.setCursor(0, 0);
lcd.print("LED-2");
lcd.setCursor(0,1);
if (troca1==1){
lcd.print("ON ");
digitalWrite(A4,HIGH);
}else{
lcd.print("OFF");
digitalWrite(A4,LOW);
}
break;
case 2:
if (estado3 == HIGH & troca2==false ){
delay(150);
troca2=true;
}else{
delay(150);
if(troca2==true & estado3==HIGH){
troca2=false;
}
}
lcd.setCursor(0, 0);
lcd.print("LED-3");
lcd.setCursor(0,1);
if (troca2==1){
lcd.print("ON ");
digitalWrite(A5,HIGH);
}else{
lcd.print("OFF");
digitalWrite(A5,LOW);
}
break;
case 3:
if (estado4 == HIGH & troca3==false ){
delay(150);
troca3=true;
}else{
delay(150);
if(troca3==true & estado4==HIGH){
troca3=false;
}
}
lcd.setCursor(0, 0);
lcd.print("BG ");
lcd.setCursor(0,1);
if (troca3==1){
lcd.print("ON ");
digitalWrite(A2,HIGH);
}else{
lcd.print("OFF");
digitalWrite(A2,LOW);
}
break;
default:
contador=0;
}
}
Nenhum comentário:
Postar um comentário