Upload
vanthuan
View
216
Download
0
Embed Size (px)
Citation preview
1
CRIAÇÃO DA FUNÇÃO MENUS UTILIZANDO OS RECURSOS DA LINGUAGEM DE PROGRAMAÇÃO
INSTRUÇÕES DE OPERAÇÃO
1 - COPIAR O ARQUIVO NA IDE NO ARDUINO
2 - FILE => PREFERENCES => MARCAR A OPÇÃO => COMPILATION
3 - BOTÃO VERIFY => AGUARDAR A MENSAGEM DONE COMPILLING NA PARTE INFERIOR DA TELA
4 - VERIFICAR NA PENÚLTIMA LINHA, O ARQUIVO COM NOME .HEX, COPIAR TODA A EXTENSÃO E ENVIAR PARA A PASTA DE BUSCA DENTRO DO PROTEUS, NA EDIÇÃO DO ATMEGA328P, LINHA PROGRAM FILE.
================================================================================
// Menu para utilização do display LCD 16 caractere s x 2 linhas
#include <LiquidCrystal.h>
// PROCEDER COM A IDENTIFICAÇÃO DO HARDWARE
#define butUp 12
#define butDown 11
#define butP 10
#define butM 9
#define S1 A0
#define S2 A1
// ESQUEMA DAS FUNÇÕES AUXILIARES
void changeMenu();
void dispMenu();
void data_hora();
void temperatura();
void lights();
void menu4();
void menu5();
// APRESENTAÇÃO DAS VARIÁVEIS
char menu = 0x01; char set1 = 0x00, set2 = 0x00; boolean t_butUp, t_butDown, t_butP, t_butM;
// Construção do Hardware do LCD
LiquidCrystal disp(7, //RS no digital 7 // designação para o nosso objeto, no caso o LCD = disp 6, //EN no digital 6 5, //D4 no digital 5 // Do pino 05 ate o pino 02 formam os quatro bits de dados 4, //D5 no digital 4 3, //D6 no digital 3 2); //D7 no digital 2
2
CRIAÇÃO DA FUNÇÃO MENUS UTILIZANDO OS RECURSOS DA LINGUAGEM DE PROGRAMAÇÃO
// CONFIGURAÇÕES PARA INICIALIZAÇÃO DO PROGRAMA
void setup()
{ disp.begin(16,2);
for(char i=9; i<13; i++) pinMode(i, INPUT_PULLUP); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT);
t_butUp = 0x00; t_butDown = 0x00; t_butP = 0x00; t_butM = 0x00;
digitalWrite(S1, LOW); digitalWrite(S2, LOW);
} //final das instruções de inicialização do programa
// CICLO DE INSTRUÇÕES INFINITA OU LOOP INFINITO
void loop()
{
changeMenu(); dispMenu();
}
// CONSTRUÇÃO E DESENVOLVIMENTO DAS SUB-FUNÇÕES
void changeMenu()
{
if(!digitalRead(butUp)) t_butUp = 0x01; if(!digitalRead(butDown)) t_butDown = 0x01; if(digitalRead(butUp) && t_butUp)
{ t_butUp = 0x00; disp.clear(); menu++; if(menu > 0x04) menu = 0x01;
} if(digitalRead(butDown) && t_butDown)
{ t_butDown = 0x00; disp.clear(); menu--; if(menu < 0x01) menu = 0x04; } //end butDown } //end changeMenu
void dispMenu()
{ switch(menu) { case 0x01: data_hora(); break;
3
CRIAÇÃO DA FUNÇÃO MENUS UTILIZANDO OS RECURSOS DA LINGUAGEM DE PROGRAMAÇÃO
case 0x02: temperatura(); break; case 0x03: lights(); break; case 0x04: menu4(); break; } //end switch menu } //end dispMenu
// CONTRUÇÃO DAS SUB FUNÇÕES void data_hora() { disp.setCursor(3,0); disp.print("Data e Hora"); disp.setCursor(0,1); disp.print("29/08/16 19:44"); } //end data_hora
void temperatura()
{ disp.setCursor(2,0); disp.print("Temperatura"); disp.setCursor(3,1); disp.print("25 Celsius"); } //end temperatura()
//FUNÇÃO EXEMPLO void lights()
{ disp.setCursor(2,0); disp.print("ACIONAMENTOS"); if(!digitalRead(butP)) t_butP = 0x01; if(!digitalRead(butM)) t_butM = 0x01; if(digitalRead(butP) && t_butP) { t_butP = 0x00; set1++; if(set1 > 2) set1 = 0x01; switch(set1) { case 0x01: disp.setCursor(0,1); disp.print("L1 ON "); digitalWrite(S1, HIGH); break; case 0x02: disp.setCursor(0,1); disp.print("L1 OFF"); digitalWrite(S1, LOW); break; } //end switch set1 } //end butP
4
CRIAÇÃO DA FUNÇÃO MENUS UTILIZANDO OS RECURSOS DA LINGUAGEM DE PROGRAMAÇÃO
if(digitalRead(butM) && t_butM) { t_butM = 0x00; set2++; if(set2 > 2) set2 = 0x01; switch(set2) {
case 0x01: disp.setCursor(8,1); disp.print("L2 on "); digitalWrite(S2, HIGH); break; case 0x02: disp.setCursor(8,1); disp.print("L2 off"); digitalWrite(S2, LOW); break; } //end switch set1 } //end butM } //end lights
void menu4() { disp.setCursor(0,0); disp.print("Menu 4"); disp.setCursor(1,1);
// Desenvolver uma função para o menu 04 disp.print("ENG MECATRONICA"); } //end menu4
5
CRIAÇÃO DA FUNÇÃO MENUS UTILIZANDO OS RECURSOS DA LINGUAGEM DE PROGRAMAÇÃO