ultimo aggiornamento 22 settembre 2011


JLCPCB - 10 PCB per $ 2 (100 * 100 mm, 2-layer)
Il più grande produttore di PCB in Cina, oltre 300.000 clienti e oltre 10.000 ordini online al giorno
Vedi l'interno della fabbrica di PCB: https://www.youtube.com/watch?v=_XCznQFV-Mw


Per provare la scheda LCD keypad occorrerà installare la scheda connettore sulla scheda Arduino, che potrà essere indifferentemente il modello Arduino 2009 oppure la Arduino UNO.    Si collegheranno poi la scheda connettore con la Scheda Display con un cavetto piatto dotato da entrambe i lati di in connettore femmina 10 pin.
Fatto questo si potrà alimentare la scheda Arduino e dopo aver caricato il programma si potrà verificare che alla pressione del tasto venga riportato sul display la corretta dicitura.
 

 

Libreria
LiquidCrysta

Programma
lcd_keypad
 
/*
 Test_LCD-keypad.pde
 Il programma permette di verificare il funzionamento del
 display LCD e del Keypad.
 Sul display viene mostrato il nome del tasto premuto
 
 Vengono utilizzati i seguenti pin
 Pin +5V         -> Alimentazione
 Pin GND         -> Alimentazione
 Pin Digital 4   -> Bus D4 dati LCD
 Pin Digital 5   -> Bus D5 dati LCD
 Pin Digital 6   -> Bus D6 dati LCD
 Pin Digital 7   -> Bus D7 dati LCD
 Pin Digital 8   -> terminale RS display LCD
 Pin Digital 9   -> terminale EN display LCD
 Pin Digital 10  -> attivazione retroilluminazione
 Pin Analogico 0 -> lettura keypad
 
 Creato il 20/9/2010
 da Adriano Gandolfo <https://www.adrirobot.it>
 This example code is in the public domain.
 */
#include <LiquidCrystal.h>

// Selezione dei pin utilizzati dal display LCD
// Sintassi LiquidCrystal(rs, enable, d4, d5, d6, d7) 
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// defininizione dei valori utilizzati da pulsanti
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

// lettura del pulsante
int read_LCD_buttons()
{
  adc_key_in = analogRead(0);      // lettura del valore 
  if (adc_key_in > 1000) return btnNONE;
  if (adc_key_in < 50)   return btnRIGHT;  
  if (adc_key_in < 195)  return btnUP; 
  if (adc_key_in < 380)  return btnDOWN; 
  if (adc_key_in < 555)  return btnLEFT; 
  if (adc_key_in < 790)  return btnSELECT;   
  return btnNONE;
}

void setup()
{
  pinMode(10, OUTPUT); //ricordarsi di attivarlo come uscita
  analogWrite(10, 90);
  lcd.begin(16, 2);            // inizializzazione libreria
  lcd.setCursor(0,0);
  lcd.print("Premi pulsante!"); // Scrittura messaggio
}

void loop()
{
  lcd.setCursor(10,1);      // spostamento del cursore
  lcd.print(millis()/1000); // mostra i secondo dall'attivazione del programma


  lcd.setCursor(0,1);            // spostamento cursore
  lcd_key = read_LCD_buttons();  // Lettura del tasto premuto

  switch (lcd_key)               // in base al valore letto mostra un diverso messaggio
  {
  case btnRIGHT:
    {
      lcd.print("DESTRA    ");
      break;
    }
  case btnLEFT:
    {
      lcd.print("SINISTRA  ");
      break;
    }
  case btnUP:
    {
      lcd.print("SU        ");
      break;
    }
  case btnDOWN:
    {
      lcd.print("GIU'      ");
      break;
    }
  case btnSELECT:
    {
      lcd.print("SELEZIONE");
      break;
    }
  case btnNONE:
    {
      lcd.print("NESSUNO  ");
      break;
    }
  }
}
 
Elenco revisioni
22/09/2011 Emissione preliminare