Arduino: SainSmart IIC/I2C/TWI Serial 2004 20×4 LCD Module Shield

SainSmart IIC/I2C/TWI Serial 2004 20x4 LCD Module Shield

Das SainSmart 2004 LCD Modul mit 4 Zeilen x 20 Zeichen Text kann sehr leicht über den I2C Bus an einen Arduino angeschlossen werden. Es werden nur vier Anschlüsse auf dem Arduino Board benötigt: VCC (+5V), GND, SDA und SCL. Das SainSmart LCD Display gibt es z.B. bei Amazon für ca. 10 Euro.

Technische Daten

Anschluss: I2C (nur noch 2 I/O-Pins)
I2C Address: 0x3F
Pins: SDA / SCL / VCC / GND
Schriftfarbe: Weiss auf blauem Hintergrund
Betriebsspannung: +5 V-
Pcb Grösse: 60mm × 99mm
Kontrasteinstellung:  Potentiometer
Hintergrundbeleuchtung: Jumper

Schaltkreis

Das LCD Display kann direkt an den Arduino angeschlossen werden. Es wird keine Steckplatine benötigt.

Arduino Uno -> LCD Display
5V -> VCC
GND -> GND
A4 -> SDA
A5 -> SCL

Arduino Leonardo -> LCD Display
5V -> VCC
GND -> GND
2 (SDA) -> SDA
3 (SCL) -> SCL

 SainSmart 2004 LCD Module RückseiteAuf der Rückseite befindet sich ein Potentiometer um den Kontrast des Displays zu ändern falls die Schrift nur schwach oder gar nicht zu sehen ist. Mittels eines Jumpers kann die Hintergrundbeleuchtung komplett ausgeschaltet werden.

Code

Erst nach einer etwas längeren suche nach der richtigen I2C Adresse war es möglich das LCD Display mit der „New LiquidCrystal Bibliothek“ anzusprechen. Die Beispiel Codes von der SainSmart Website haben alle nicht funktioniert. Die I2C Adresse lautet:“0x3F“.

Die „New LiquidCrystal Bibliothek“ muss in den „Libraries“ Ordner der Arduino IDE kopiert werden.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
 
// set the LCD address to 0x3F for a 20 chars 4 line display
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); 
 
 
void setup()
{
  lcd.begin(20,4);               // initialize the lcd for 20 chars 4 lines
 
  lcd.setCursor ( 0, 0 );
  lcd.print("SainSmart 2004 LCD");  
  lcd.setCursor ( 0, 1 );        // go to the next line
  lcd.print ("I2C - 20x4");     
  lcd.setCursor ( 0, 2 );        // go to the next line
  lcd.print ("Arduino");   
  lcd.setCursor ( 0, 3 );        // go to the next line
  lcd.print ("www.JHRweb.de");    
}
 
void loop()
{
 
}