Display LCD 20×4 – HD44780 compliant

Display LCD 20×4 – HD44780 compliant – Usiamolo con Arduino

Ecco l’oggetto acquistato da http://www.sureelectronics.net:

Product Number
DE-LM005
Product Name
2004 LCD Module White Characters Blue Backlight HD44780
Display Format:
20 Characters X 4 Lines
Character Format
5 X 8 dots
Drive Method
1/16 Duty , 1/5 Bias
LCD Type
STN Blue
LED Backlight
White
Driving Voltage
single +5V supply
Viewing Direction
6 o’clock
Operating Temperature
-20 celi ~ +60 celi
Module Size
98 mm X 55 mm X 14 mm
View Area
76 mm X 26 mm
Item Net Weight
90g / 3.2oz

Scarica il datasheet

Manuale della Demo Board

Display LCD Blu 20x4 con Demo BoardDisplay LCD Blu 20x4 - Test con Demo BoardNell’acquisto, oltre al display, è inclusa l’interfaccia USB (Demo Board). Saldiamo un paio di connettori come indicato nelle foto e colleghiamo il cavetto USB al PC. Subito abbiamo la conferma che il display funzioni. L’interfaccia USB, che alloggia un PIC16F54,  è programmata da sureelectronics per visualizzare un breve messaggio di benvenuto.

Ma vogliamo farlo funzionare con Arduino.

 

Nella foto si vede lo schema dei collegamenti.

Questo è la funzione dei PIN del display:

Numero del pin Funzione del pin
1 Vss (Massa)
2 Vcc (5V)
3 Vee (Controllo contrasto, da 2V a -3V secondo i tipi)
4 R\S (0 per selezionare l’invio di un comando, 1 per i dati)
5 R\W (0 per selezionare la scrittura di dati o comandi, 1 per la lettura dei dati o dello stato)
6 E (inizia il ciclo di scrittura o lettura, secondo R/S e R/W)
7 D0 (Bus dati)
8 D1 (Bus dati)
9 D2 (Bus dati)
10 D3 (Bus dati)
11 D4 (Bus dati)
12 D5 (Bus dati)
13 D6 (Bus dati)
14 D7 (Bus dati)
15 A (Vcc retroilluminazione, se presente)
16 K (Vss retroilluminazione, se presente)

Ecco il codice da usare per un semplice test:

#include <LiquidCrystal.h>
/*
  LiquidCrystal Library

 Demonstrates the use a 20x4 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.

 This sketch prints "Hello World!" to the LCD
 and shows the time.

  The circuit:
 * LCD backlight on pin 13
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
  * LCD D0 pin to digital pin 9
 * LCD D1 pin to digital pin 8
 * LCD D2 pin to digital pin 7
 * LCD D3 pin to digital pin 6
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * 10K resistor:
 * 100ohm resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried (http://www.ladyada.net)
 example added 9 Jul 2009
 by Tom Igoe
 modified 22 Nov 2010
 by Tom Igoe
 modified 02 Ago 2011
 by Tonino Fazio

 This example code is in the public domain.

original: http://www.arduino.cc/en/Tutorial/LiquidCrystal
 */

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 9,8,7,6, 5, 4, 3, 2);
int ledPin =  13;    // LED connected to digital pin 13
int inputPin =  A5;    // LED connected to digital pin 13

byte smiley[8] = {
  B00000,
  B10001,
  B00100,
  B00100,
  B10001,
  B01110,
  B00000,
};

void setup() {
   pinMode(ledPin, OUTPUT);
   digitalWrite(ledPin, HIGH);
   // set up the LCD's number of columns and rows:
   lcd.begin(20, 4);
   lcd.createChar(0, smiley);
 }

int a=0;
void loop() {
   lcd.setCursor(2, 0);
   lcd.print("a:"+ String(a++));
   lcd.setCursor(0, 2);
   lcd.print("www.xorse.it");   
   lcd.setCursor(19, 3);   
   //lcd.write(0);
   delay(200);
}

Bisogna notare una particolarità nella programmazione del display, che inizialmente può causare qualche perplessità. Ogni riga è formata da 20 caratteri. Se la stringa inviata al display contiene più di 20 caratteri, quelle eccedenti vanno a capo, non nella riga successiva ma in quella dopo. I caratteri infatti sono organizzati in due banchi da 40. Il primi 20 sono sulla prima riga ed i successivi 20 sulla terza. Il secondo banco invece ha i propri caratteri sulla seconda e sulla quarta riga. Nulla di grave, ma può capitare di doverne tenere conto in fase di programmazione.

Per l’uso completo della libreria LiquidCrystal si rimanda alla pagina ufficiale, che si può trovare semplicemente cercando: “LiquidCrystal Arduino” su google.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

wp-puzzle.com logo