domingo, 2 de março de 2014

Projeto 1: LCD Keypad Shield

Neste projeto vou mostrar como utilizar, de forma muito simples, o LCD Keypad Shield.

Observe-se a posição dos respetivos pins:


e as suas funções:



Vídeo do projeto:



O código:

#include <LiquidCrystal.h>

// pinos em uso no LCD
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// definição de alguns valores usados para os botões
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

// read dos botões
int read_LCD_buttons()
{
   adc_key_in = analogRead(0);      // leitura do valor dos botões
   // leitura de valores: 0, 144, 329, 504, 741
   // adicionar aproximadamente 50 aos valores e verificar
   if (adc_key_in > 1000) return btnNONE;
   if (adc_key_in < 50)   return btnRIGHT;
   if (adc_key_in < 250)  return btnUP;
   if (adc_key_in < 450)  return btnDOWN;
   if (adc_key_in < 650)  return btnLEFT;
   if (adc_key_in < 850)  return btnSELECT;

   return btnNONE;  // when all others fail, return this...
}

void setup() {

   // Iniciar LCD (colunas, linhas)
   lcd.begin(16,2);

   // Colocar o cursos no início da primeira linha
   lcd.setCursor(0,0);
   lcd.print("Prime os botoes "); // mostra a mensagem
   lcd.setCursor(0,1);
   lcd.print("                "); // limpa a segunda linha
 }

void loop() {
   // Efetua a leitura dos botões
    lcd_key = read_LCD_buttons();

   switch (lcd_key)       // dependendo da opção assim efetua as respetivas acções
 {
   case btnRIGHT:
     {
       lcd.setCursor(0,0);
       lcd.print("Cristina-Jacinto");
   
       /* botão "RIGHT " - direita */
       break;
     }
   case btnLEFT:
     {
        lcd.setCursor(0,0);
        lcd.print("Rex e Joao      ");

       /* botão "LEFT" - esquerda */
       break;
     }
   case btnUP:
     {
        lcd.setCursor(0,0);
        lcd.print("1 - Cristina -- ");

        /* botão "UP" - cima */
        break;
     }
   case btnDOWN:
     {
        lcd.setCursor(0,0);
        lcd.print("2 - Jacinto --  ");

        /* botão "DOWN" - baixo */
        break;
     }
   case btnSELECT:
     {
       lcd.setCursor(0,0);
       lcd.print("3 - Joao --     ");

      /* botão "SELECT" - select */
      break;
     }
     case btnNONE:
     {
       lcd.setCursor(0,0);
       lcd.print("Prime um botao  ");

       /* Caso não esteja premido nenhum botão "NONE" */
       break;
     }
 }
   
}


Referências:

Livraria: http://playground.arduino.cc/uploads/Main/LiquidCrystal.zip


Espero que gostem!

Sem comentários:

Enviar um comentário