então, o programa que quero fazer é para um controle de automação residencial. Onde de inicio tera 8 teclas e um LCD 16x2, depois desejo transformar isso tudo em uma tela touch. Porém to começando do básico. O Seguinte, resumindo muito bem, o programa inicia e aparece uma tela de inicio. Dai ao pressionar uma tecla, vai fazer uma determinada função.
#include <LiquidCrystal.h>
// Definindo os botões do controle
const int lampada = 29;
const int aparelho = 30;
const int cima = 31;
const int ladoe = 32;
const int enteremenu = 33;
const int ladod = 34;
const int baixo = 35;
const int voltar = 36;
int lam = 0;
int apa = 0;
int cim = 0;
int lad = 0;
int bai = 0;
int lade = 0;
int eem = 0;
int vol = 0;
// Definindo os pinos do LCD 16x2
//LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal lcd(28, NULL, 27, 26, 25, 24, 23); // Criando Variaveis para o LCD
void setup() {
lcd.clear(); // Limpa LCD durante SETUP
lcd.begin(16,2); // Definindo LCD como 16x2
pinMode(lampada, INPUT);
pinMode(aparelho, INPUT);
pinMode(cima, INPUT);
pinMode(ladod, INPUT);
pinMode(baixo, INPUT);
pinMode(ladoe, INPUT);
pinMode(enteremenu, INPUT);
pinMode(voltar, INPUT);
}
void loop() {
lcd.print(" Boa Tarde ");
delay(1);
lcd.setCursor(2,1); //(0[Coluna],2[Linha])
lcd.print(" LuquiinhaaS ");
lcd.home(); //(0[Coluna],1[Linha])
delay(10);
lam = digitalRead(lampada);
apa = digitalRead(aparelho);
cim = digitalRead(cima);
lad = digitalRead(ladod);
bai = digitalRead(baixo);
lade = digitalRead(ladoe);
eem = digitalRead(enteremenu);
vol = digitalRead(voltar);
delay(20);
if (lam == HIGH) {
continualam();
}
if (apa == HIGH) {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Pressionado ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" Aparelho "); //Imprime
delay(100); //Aguarda
lcd.clear(); //Apaga tudo no LCD, porém continua na 2ª segunda linha
}
if (cim == HIGH) {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Pressionado ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" Cima "); //Imprime
delay(100); //Aguarda
lcd.clear(); //Apaga tudo no LCD, porém continua na 2ª segunda linha
}
if (lad == HIGH) {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Pressionado ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" Lado Direito "); //Imprime
delay(100); //Aguarda
lcd.clear(); //Apaga tudo no LCD, porém continua na 2ª segunda linha
}
if (bai == HIGH) {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Pressionado ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" Baixo "); //Imprime
delay(100); //Aguarda
lcd.clear(); //Apaga tudo no LCD, porém continua na 2ª segunda linha
}
if (lade == HIGH) {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Pressionado ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" Lado Esquerdo "); //Imprime
delay(100); //Aguarda
lcd.clear(); //Apaga tudo no LCD, porém continua na 2ª segunda linha
}
if (eem == HIGH) {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Pressionado ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" Enter e Menu "); //Imprime
delay(100); //Aguarda
lcd.clear(); //Apaga tudo no LCD, porém continua na 2ª segunda linha
}
if (vol == HIGH) {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Pressionado ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" Voltar "); //Imprime
delay(100); //Aguarda
lcd.clear(); //Apaga tudo no LCD, porém continua na 2ª segunda linha
}
}
void continualam() { // SALA
lsala();
for (int x = 0; x <= 100; x++){
delay(10);
if (eem == HIGH) {
ligasala();
}
if (vol == HIGH) {
loop();
}
if (lade == HIGH) {
continualam4();
}
if (lad == HIGH) {
continualam1();
}
}
}
void continualam1() { // COZINHA
lcozi();
delay(10);
if (eem == HIGH) {
ligacozi();
}
if (vol == HIGH) {
loop();
}
if (lade == HIGH) {
continualam();
}
if (lad == HIGH) {
continualam2();
}
}
void continualam2() { // BANHEIRO
lbanh();
delay(10);
if (eem == HIGH) {
ligaban();
}
if (vol == HIGH) {
loop();
}
if (lade == HIGH) {
continualam1();
}
if (lad == HIGH) {
continualam3();
}
}
void continualam3() { // QUARTO 1
lquar1();
delay(10);
if (eem == HIGH) {
ligaq1();
}
if (vol == HIGH) {
loop();
}
if (lade == HIGH) {
continualam2();
}
if (lad == HIGH) {
continualam4();
}
}
void continualam4() { // QUARTO 2
lquar2();
delay(10);
if (eem == HIGH) {
ligaq2();
}
if (vol == HIGH) {
loop();
}
if (lade == HIGH) {
continualam3();
}
if (lad == HIGH) {
continualam1();
}
}
void lsala() {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Lampada ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" Sala "); //Imprime
}
void lcozi() {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Lampada ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" da Cozinha "); //Imprime
}
void lbanh() {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Lampada ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" do Banheiro "); //Imprime
}
void lquar1() {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Lampada ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" do Quarto 1 "); //Imprime
}
void lquar2() {
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Lampada ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" do Quarto 2 "); //Imprime
}
void ligasala() {
delay(10);
lcd.home(); //(0[Coluna],1[Linha])
lcd.print(" Ligar a luz ");
delay(10); //Aguarda
lcd.setCursor(0,1); //(0[Coluna],2[Linha])
lcd.print(" da Sala "); //Imprime
delay(1000); //Aguarda
lcd.clear(); //Apaga tudo no LCD, porém continua na 2ª segunda linha
}
Desculpa se alguém não entendeu.