Dificuldade em programação em C
06/06/2016
0
Não estou conseguindo fazer um painel responder com os numeros que preciso, por exemplo eu tenho um teclado matricial e ao entrar nos motores das funções no primeiro no caso se eu clicar 1 deveria atribuir a variável am em +1 e se clicar 2 deveria subtrair a variavel am em -1 mas era para subtrair ou atrinuir a medida que eu vou clicando mas no caso ele vai direto soma sem parar e não sou muito experiente em programação.
Meu código:
#include <Servo.h>
#include <LiquidCrystal.h>
LiquidCrystal LCD(3,4,5,6,7,8);
int tecla=50;
int ang;
Servo serv1; // Motor 1
Servo serv2; // Motor 2
Servo serv3; // Motor 3
// --- Protótipo das Funções Auxiliares ---
void changeMenu(); //Função para modificar o menu atual
void dispMenu(); //Função para mostrar o menu atual
void data_hora(); //Função do menu1, data e hora
void temperatura(); //Função do menu2, temperatura
void lights(); //Função do menu3, acionamento de lampadas
void menu4(); //Função do menu4
void serv1_manual ();
// --- Variáveis Globais ---
char menu = 0x01; //Variável para selecionar o menu
char set1 = 0x00, set2 = 0x00; //Controle das lâmpadas
boolean tecla3, tecla6, tecla9, tecla0; //Flags para armazenar o estado dos botões
int am =0;
void setup ()
{
pinMode (21,OUTPUT);
pinMode (22,OUTPUT);
pinMode(9,OUTPUT);pinMode(10,OUTPUT);pinMode(11,OUTPUT);
pinMode(12,INPUT); digitalWrite(12,HIGH); //Habilita resistor de pullup
pinMode(13,INPUT); digitalWrite(13,HIGH);
pinMode(14,INPUT); digitalWrite(14,HIGH);
pinMode(15,INPUT); digitalWrite(15,HIGH);
// Configurando o LCD
LCD.begin(16,2); //LCD 16 colunas, e 2 linhas.
LCD.setCursor (0,0); LCD.print ("Faculdade ENIAC");
LCD.setCursor (0,1); LCD.print ("CONTROLE DE PROCESSOS");
delay(10);
LCD.clear();
LCD.setCursor (0,0); LCD.print ("Pj. Integrador");
LCD.setCursor (0,1); LCD.print ("Integrantes");
delay (10);
LCD.clear();
LCD.setCursor (0,0); LCD.print ("Leonardo C.Silva");
LCD.setCursor (0,1); LCD.print ("RA-248162014");
delay(10);
LCD.setCursor (0,0); LCD.print ("Jerson Joseph M.M");
LCD.setCursor (0,1); LCD.print ("RA-213162014");
delay (10);
LCD.clear();
serv1.attach(0); //Motor 1 no pino 0 do Arduino
serv2.attach(1); //Motor 2 no pino 1 do Arduino
serv3.attach(2); //Motor 3 no pino 3 do Arduino
tecla3 = 0x00;
tecla6 = 0x00;
tecla9 = 0x00;
tecla0 = 0x00;
serv1.write (90);
serv2.write (90);
serv3.write (90);
ang=90;
}
void loop()
{
changeMenu();
dispMenu();
}
//minhas funções
// --- Desenvolvimento das Funções Auxiliares ---
void changeMenu() //Modifica o menu atual
{
teclado();
if(tecla==3) tecla3 = 0x01 ; //Botão Up pressionado? Seta flag
if(tecla==6) tecla6 = 0x01 ; //Botão Down pressionado? Seta flag
if(tecla==('*') && tecla3) //Botão Up solto e flag setada?
{ //Sim...
tecla3 = 0x00; //Limpa flag
LCD.clear(); //Limpa display
menu++; //Incrementa menu
if(menu > 0x05) menu = 0x01; //Se menu maior que 4, volta a ser 1
} //end butUp
if(tecla==('*') && tecla6) //Botão Down solto e flag setada?
{ //Sim...
tecla6 = 0x00; //Limpa flag
LCD.clear(); //Limpa display
menu--; //Decrementa menu
if(menu < 0x01) menu = 0x05; //Se menu menor que 1, volta a ser 4
} //end butDown
} //end changeMenu
void dispMenu() //Mostra o menu atual
{
switch(menu) //Controle da variável menu
{
case 0x01: //Caso 1
PUNHO(); //Chama a função de relógio
break; //break
case 0x02: //Caso 2
OMBRO(); //Chama a função do termômetro
break;
case 0x03: //Caso 3
BASE(); //Chama função para acionamento de lâmpadas
break;
//break
//break
} //end switch menu
} //end dispMenu
void PUNHO() //Data e Hora (menu1)
{
LCD.setCursor(0,0);
LCD.print ("PUNHO");
delay (100);
LCD.clear();
serv1_manual( );
//Mostrador (apenas ilustrativo......)
} //end PUNHO
void BASE()
{
LCD.setCursor(0,0);
LCD.print ("BASE");
delay (100);
LCD.clear();
serv2_manual( );
} //end BASE()
void OMBRO() //Temperatura (menu2)
{
LCD.setCursor(0,0);
LCD.print ("OMBRO");
delay (100);
LCD.clear();
} //end OMBRO
void teclado()
{
// Programa primeira linha
digitalWrite(9,LOW); digitalWrite (10,HIGH);
digitalWrite (11,HIGH);
//Varredura da primeira linha
if (digitalRead (12)==0) {tecla=1;}//1
if (digitalRead (13)==0) {tecla=4;}//2
if (digitalRead (14)==0) {tecla=7;}//3
if (digitalRead (15)==0) {tecla='*';}//9
//Programa Segunda linha
digitalWrite(9,HIGH); digitalWrite (10,LOW);
digitalWrite (11,HIGH);
//Varredura da segunda linha
if (digitalRead (12)==0) {tecla=2;}//4
if (digitalRead (13)==0) {tecla=5;}//5
if (digitalRead (14)==0) {tecla=8;}//6
if (digitalRead (15)==0) {tecla=0;}//0
//Programa terceira linha
digitalWrite(9,HIGH); digitalWrite (10,HIGH);
digitalWrite (11,LOW);
//Varredura da terceira linha
if (digitalRead (12)==0) {tecla=3;}//3
if (digitalRead (13)==0) {tecla=6;}//6
if (digitalRead (14)==0) {tecla=9;}//9
if (digitalRead (15)==0) {tecla=9;}//#
digitalWrite (11,HIGH);
}
//*****************Função para o motor 1 *************************************
void servo_slow1(const int tempo, int inicio, int fim)
{
boolean option = 0;
if (fim > inicio) option = 0;
else option = 1;
if (!option)
{
for(int i=inicio;i<fim;i++)
{
serv1.write(i);
delay (tempo);
}
}
else
{
for(int j=inicio;j>fim;j--)
{
serv1.write(j);
delay (tempo);
}
}
}// end função slow1
//****************************************** função para o servo 2 ********************************************
void servo_slow2(const int tempo, int inicio, int fim)
{
bool option = 0;
if (fim > inicio) option = 0;
else option = 1;
if (!option)
{
for(int i=inicio;i<fim;i++)
{
serv2.write(i);
delay (tempo);
}
}
else
{
for(int j=inicio;j>fim;j--)
{
serv2.write(j);
delay (tempo);
}
}
}// end função slow2
//*********************************** Função para o servo 3 ************************************************************************
void servo_slow3(const int tempo, int inicio, int fim)
{
bool option = 0;
if (fim > inicio) option = 0;
else option = 1;
if (!option)
{
for(int i=inicio;i<fim;i++)
{
serv3.write(i);
delay (tempo);
}
}
else
{
for(int j=inicio;j>fim;j--)
{
serv3.write(j);
delay (tempo);
}
}
}// end função slow3
//**********************************************************************************************
// função motor manual (esse é um dos que preciso que funcione como expliquei)
void serv1_manual( )
{
if(tecla==1)
{am=am+0x01;}
if(tecla==2)
{am=am-0x01;};
if (am>10) am==0;
switch(am) //Controle do set2
{
case 0x01:
teclado() ;
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(0); //Imprime mensagem
serv1.write (0);
if (tecla==4) am=1;
delay (500);
break; //Break
case 0x02:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(20); //Imprime mensagem
serv1.write (20);
if (tecla==4) am=2;
delay (500);
break;
case 0x03:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(40); //Imprime mensagem
serv1.write (40);
if (tecla==4) am=3;
delay (500);
break;
case 0x04:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(60);
delay (500);
serv1.write (60);
if (tecla==4) am=4;
delay(500);
break;
case 0x05:
teclado();
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(80); //Imprime mensagem
serv1.write (80);
if (tecla==4) am=5;
delay (500);
break; //Break
case 0x06:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(90); //Imprime mensagem
serv1.write (100);
if (tecla==4) am=6;
delay (500);
break;
case 0x07:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(120); //Imprime mensagem
serv1.write (120);
if (tecla==4) am=7;
delay (500);
break;
case 0x08:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(140);
serv1.write (140);
if (tecla==4) am=8;
delay (500);
serv1.write (500);
delay (500); //Liga lâmpada 1
break;
case 0x09:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(160);
serv1.write (160);
if (tecla==4) am=9;
delay (500);
serv1.write (160);
delay (500); //Liga lâmpada 1
break;
case 0x10:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(180);
serv1.write (180);
if (tecla==4) am=10;
delay (500);
break;
}
}
void serv2_manual( )
{
if(tecla==4)
{am=am+0x01;}
if(tecla==5)
{am=am-0x01;};
if (am>10) am==0;
switch(am) //Controle do set2
{
case 0x01:
teclado() ;
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(0); //Imprime mensagem
serv1.write (0);
if (tecla==6) am=1;
delay (500);
break; //Break
case 0x02:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(20); //Imprime mensagem
serv1.write (20);
if (tecla==6) am=2;
delay (500);
break;
case 0x03:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(40); //Imprime mensagem
serv1.write (40);
if (tecla==6) am=3;
delay (500);
break;
case 0x04:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(60);
delay (500);
serv1.write (60);
if (tecla==6) am=4;
delay(500);
break;
case 0x05:
teclado();
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(80); //Imprime mensagem
serv1.write (80);
if (tecla==6) am=5;
delay (500);
break; //Break
case 0x06:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(90); //Imprime mensagem
serv1.write (100);
if (tecla==6) am=6;
delay (500);
break;
case 0x07:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(120); //Imprime mensagem
serv1.write (120);
if (tecla==6) am=7;
delay (500);
break;
case 0x08:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(140);
serv1.write (140);
if (tecla==6) am=8;
delay (500);
serv1.write (500);
delay (500); //Liga lâmpada 1
break;
case 0x09:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(160);
serv1.write (160);
if (tecla==6) am=9;
delay (500);
serv1.write (160);
delay (500); //Liga lâmpada 1
break;
case 0x10:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(180);
serv1.write (180);
if (tecla==6) am=10;
delay (500);
break;
}
void serv3_manual( );
{
if(tecla==7)
{am=am+0x01;}
if(tecla==8)
{am=am-0x01;};
if (am>10) am==0;
switch(am) //Controle do set2
{
case 0x01:
teclado() ;
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(0); //Imprime mensagem
serv1.write (0);
if (tecla==9) am=1;
delay (500);
break; //Break
case 0x02:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(20); //Imprime mensagem
serv1.write (20);
if (tecla==9) am=2;
delay (500);
break;
case 0x03:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(40); //Imprime mensagem
serv1.write (40);
if (tecla==9) am=3;
delay (500);
break;
case 0x04:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(60);
delay (500);
serv1.write (60);
if (tecla==9) am=4;
delay(500);
break;
case 0x05:
teclado();
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(80); //Imprime mensagem
serv1.write (80);
if (tecla==9) am=5;
delay (500);
break; //Break
case 0x06:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(90); //Imprime mensagem
serv1.write (100);
if (tecla==9) am=6;
delay (500);
break;
case 0x07:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(120); //Imprime mensagem
serv1.write (120);
if (tecla==9) am=7;
delay (500);
break;
case 0x08:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(140);
serv1.write (140);
if (tecla==9) am=8;
delay (500);
serv1.write (500);
delay (500); //Liga lâmpada 1
break;
case 0x09:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(160);
serv1.write (160);
if (tecla==9) am=9;
delay (500);
serv1.write (160);
delay (500); //Liga lâmpada 1
break;
case 0x10:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(180);
serv1.write (180);
if (tecla==9) am=10;
delay (500);
break;
}
}
}
Meu código:
#include <Servo.h>
#include <LiquidCrystal.h>
LiquidCrystal LCD(3,4,5,6,7,8);
int tecla=50;
int ang;
Servo serv1; // Motor 1
Servo serv2; // Motor 2
Servo serv3; // Motor 3
// --- Protótipo das Funções Auxiliares ---
void changeMenu(); //Função para modificar o menu atual
void dispMenu(); //Função para mostrar o menu atual
void data_hora(); //Função do menu1, data e hora
void temperatura(); //Função do menu2, temperatura
void lights(); //Função do menu3, acionamento de lampadas
void menu4(); //Função do menu4
void serv1_manual ();
// --- Variáveis Globais ---
char menu = 0x01; //Variável para selecionar o menu
char set1 = 0x00, set2 = 0x00; //Controle das lâmpadas
boolean tecla3, tecla6, tecla9, tecla0; //Flags para armazenar o estado dos botões
int am =0;
void setup ()
{
pinMode (21,OUTPUT);
pinMode (22,OUTPUT);
pinMode(9,OUTPUT);pinMode(10,OUTPUT);pinMode(11,OUTPUT);
pinMode(12,INPUT); digitalWrite(12,HIGH); //Habilita resistor de pullup
pinMode(13,INPUT); digitalWrite(13,HIGH);
pinMode(14,INPUT); digitalWrite(14,HIGH);
pinMode(15,INPUT); digitalWrite(15,HIGH);
// Configurando o LCD
LCD.begin(16,2); //LCD 16 colunas, e 2 linhas.
LCD.setCursor (0,0); LCD.print ("Faculdade ENIAC");
LCD.setCursor (0,1); LCD.print ("CONTROLE DE PROCESSOS");
delay(10);
LCD.clear();
LCD.setCursor (0,0); LCD.print ("Pj. Integrador");
LCD.setCursor (0,1); LCD.print ("Integrantes");
delay (10);
LCD.clear();
LCD.setCursor (0,0); LCD.print ("Leonardo C.Silva");
LCD.setCursor (0,1); LCD.print ("RA-248162014");
delay(10);
LCD.setCursor (0,0); LCD.print ("Jerson Joseph M.M");
LCD.setCursor (0,1); LCD.print ("RA-213162014");
delay (10);
LCD.clear();
serv1.attach(0); //Motor 1 no pino 0 do Arduino
serv2.attach(1); //Motor 2 no pino 1 do Arduino
serv3.attach(2); //Motor 3 no pino 3 do Arduino
tecla3 = 0x00;
tecla6 = 0x00;
tecla9 = 0x00;
tecla0 = 0x00;
serv1.write (90);
serv2.write (90);
serv3.write (90);
ang=90;
}
void loop()
{
changeMenu();
dispMenu();
}
//minhas funções
// --- Desenvolvimento das Funções Auxiliares ---
void changeMenu() //Modifica o menu atual
{
teclado();
if(tecla==3) tecla3 = 0x01 ; //Botão Up pressionado? Seta flag
if(tecla==6) tecla6 = 0x01 ; //Botão Down pressionado? Seta flag
if(tecla==('*') && tecla3) //Botão Up solto e flag setada?
{ //Sim...
tecla3 = 0x00; //Limpa flag
LCD.clear(); //Limpa display
menu++; //Incrementa menu
if(menu > 0x05) menu = 0x01; //Se menu maior que 4, volta a ser 1
} //end butUp
if(tecla==('*') && tecla6) //Botão Down solto e flag setada?
{ //Sim...
tecla6 = 0x00; //Limpa flag
LCD.clear(); //Limpa display
menu--; //Decrementa menu
if(menu < 0x01) menu = 0x05; //Se menu menor que 1, volta a ser 4
} //end butDown
} //end changeMenu
void dispMenu() //Mostra o menu atual
{
switch(menu) //Controle da variável menu
{
case 0x01: //Caso 1
PUNHO(); //Chama a função de relógio
break; //break
case 0x02: //Caso 2
OMBRO(); //Chama a função do termômetro
break;
case 0x03: //Caso 3
BASE(); //Chama função para acionamento de lâmpadas
break;
//break
//break
} //end switch menu
} //end dispMenu
void PUNHO() //Data e Hora (menu1)
{
LCD.setCursor(0,0);
LCD.print ("PUNHO");
delay (100);
LCD.clear();
serv1_manual( );
//Mostrador (apenas ilustrativo......)
} //end PUNHO
void BASE()
{
LCD.setCursor(0,0);
LCD.print ("BASE");
delay (100);
LCD.clear();
serv2_manual( );
} //end BASE()
void OMBRO() //Temperatura (menu2)
{
LCD.setCursor(0,0);
LCD.print ("OMBRO");
delay (100);
LCD.clear();
} //end OMBRO
void teclado()
{
// Programa primeira linha
digitalWrite(9,LOW); digitalWrite (10,HIGH);
digitalWrite (11,HIGH);
//Varredura da primeira linha
if (digitalRead (12)==0) {tecla=1;}//1
if (digitalRead (13)==0) {tecla=4;}//2
if (digitalRead (14)==0) {tecla=7;}//3
if (digitalRead (15)==0) {tecla='*';}//9
//Programa Segunda linha
digitalWrite(9,HIGH); digitalWrite (10,LOW);
digitalWrite (11,HIGH);
//Varredura da segunda linha
if (digitalRead (12)==0) {tecla=2;}//4
if (digitalRead (13)==0) {tecla=5;}//5
if (digitalRead (14)==0) {tecla=8;}//6
if (digitalRead (15)==0) {tecla=0;}//0
//Programa terceira linha
digitalWrite(9,HIGH); digitalWrite (10,HIGH);
digitalWrite (11,LOW);
//Varredura da terceira linha
if (digitalRead (12)==0) {tecla=3;}//3
if (digitalRead (13)==0) {tecla=6;}//6
if (digitalRead (14)==0) {tecla=9;}//9
if (digitalRead (15)==0) {tecla=9;}//#
digitalWrite (11,HIGH);
}
//*****************Função para o motor 1 *************************************
void servo_slow1(const int tempo, int inicio, int fim)
{
boolean option = 0;
if (fim > inicio) option = 0;
else option = 1;
if (!option)
{
for(int i=inicio;i<fim;i++)
{
serv1.write(i);
delay (tempo);
}
}
else
{
for(int j=inicio;j>fim;j--)
{
serv1.write(j);
delay (tempo);
}
}
}// end função slow1
//****************************************** função para o servo 2 ********************************************
void servo_slow2(const int tempo, int inicio, int fim)
{
bool option = 0;
if (fim > inicio) option = 0;
else option = 1;
if (!option)
{
for(int i=inicio;i<fim;i++)
{
serv2.write(i);
delay (tempo);
}
}
else
{
for(int j=inicio;j>fim;j--)
{
serv2.write(j);
delay (tempo);
}
}
}// end função slow2
//*********************************** Função para o servo 3 ************************************************************************
void servo_slow3(const int tempo, int inicio, int fim)
{
bool option = 0;
if (fim > inicio) option = 0;
else option = 1;
if (!option)
{
for(int i=inicio;i<fim;i++)
{
serv3.write(i);
delay (tempo);
}
}
else
{
for(int j=inicio;j>fim;j--)
{
serv3.write(j);
delay (tempo);
}
}
}// end função slow3
//**********************************************************************************************
// função motor manual (esse é um dos que preciso que funcione como expliquei)
void serv1_manual( )
{
if(tecla==1)
{am=am+0x01;}
if(tecla==2)
{am=am-0x01;};
if (am>10) am==0;
switch(am) //Controle do set2
{
case 0x01:
teclado() ;
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(0); //Imprime mensagem
serv1.write (0);
if (tecla==4) am=1;
delay (500);
break; //Break
case 0x02:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(20); //Imprime mensagem
serv1.write (20);
if (tecla==4) am=2;
delay (500);
break;
case 0x03:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(40); //Imprime mensagem
serv1.write (40);
if (tecla==4) am=3;
delay (500);
break;
case 0x04:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(60);
delay (500);
serv1.write (60);
if (tecla==4) am=4;
delay(500);
break;
case 0x05:
teclado();
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(80); //Imprime mensagem
serv1.write (80);
if (tecla==4) am=5;
delay (500);
break; //Break
case 0x06:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(90); //Imprime mensagem
serv1.write (100);
if (tecla==4) am=6;
delay (500);
break;
case 0x07:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(120); //Imprime mensagem
serv1.write (120);
if (tecla==4) am=7;
delay (500);
break;
case 0x08:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(140);
serv1.write (140);
if (tecla==4) am=8;
delay (500);
serv1.write (500);
delay (500); //Liga lâmpada 1
break;
case 0x09:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(160);
serv1.write (160);
if (tecla==4) am=9;
delay (500);
serv1.write (160);
delay (500); //Liga lâmpada 1
break;
case 0x10:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(180);
serv1.write (180);
if (tecla==4) am=10;
delay (500);
break;
}
}
void serv2_manual( )
{
if(tecla==4)
{am=am+0x01;}
if(tecla==5)
{am=am-0x01;};
if (am>10) am==0;
switch(am) //Controle do set2
{
case 0x01:
teclado() ;
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(0); //Imprime mensagem
serv1.write (0);
if (tecla==6) am=1;
delay (500);
break; //Break
case 0x02:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(20); //Imprime mensagem
serv1.write (20);
if (tecla==6) am=2;
delay (500);
break;
case 0x03:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(40); //Imprime mensagem
serv1.write (40);
if (tecla==6) am=3;
delay (500);
break;
case 0x04:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(60);
delay (500);
serv1.write (60);
if (tecla==6) am=4;
delay(500);
break;
case 0x05:
teclado();
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(80); //Imprime mensagem
serv1.write (80);
if (tecla==6) am=5;
delay (500);
break; //Break
case 0x06:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(90); //Imprime mensagem
serv1.write (100);
if (tecla==6) am=6;
delay (500);
break;
case 0x07:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(120); //Imprime mensagem
serv1.write (120);
if (tecla==6) am=7;
delay (500);
break;
case 0x08:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(140);
serv1.write (140);
if (tecla==6) am=8;
delay (500);
serv1.write (500);
delay (500); //Liga lâmpada 1
break;
case 0x09:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(160);
serv1.write (160);
if (tecla==6) am=9;
delay (500);
serv1.write (160);
delay (500); //Liga lâmpada 1
break;
case 0x10:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(180);
serv1.write (180);
if (tecla==6) am=10;
delay (500);
break;
}
void serv3_manual( );
{
if(tecla==7)
{am=am+0x01;}
if(tecla==8)
{am=am-0x01;};
if (am>10) am==0;
switch(am) //Controle do set2
{
case 0x01:
teclado() ;
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(0); //Imprime mensagem
serv1.write (0);
if (tecla==9) am=1;
delay (500);
break; //Break
case 0x02:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(20); //Imprime mensagem
serv1.write (20);
if (tecla==9) am=2;
delay (500);
break;
case 0x03:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(40); //Imprime mensagem
serv1.write (40);
if (tecla==9) am=3;
delay (500);
break;
case 0x04:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(60);
delay (500);
serv1.write (60);
if (tecla==9) am=4;
delay(500);
break;
case 0x05:
teclado();
changeMenu ();
LCD.clear();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(80); //Imprime mensagem
serv1.write (80);
if (tecla==9) am=5;
delay (500);
break; //Break
case 0x06:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(90); //Imprime mensagem
serv1.write (100);
if (tecla==9) am=6;
delay (500);
break;
case 0x07:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(120); //Imprime mensagem
serv1.write (120);
if (tecla==9) am=7;
delay (500);
break;
case 0x08:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(140);
serv1.write (140);
if (tecla==9) am=8;
delay (500);
serv1.write (500);
delay (500); //Liga lâmpada 1
break;
case 0x09:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(160);
serv1.write (160);
if (tecla==9) am=9;
delay (500);
serv1.write (160);
delay (500); //Liga lâmpada 1
break;
case 0x10:
teclado();
changeMenu ();
LCD.clear ();
LCD.setCursor(0,0); //Posiciona cursor na coluna 8, linha 2
LCD.print(180);
serv1.write (180);
if (tecla==9) am=10;
delay (500);
break;
}
}
}
Marcus Alves
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)