16×2 LCD display op een Geekcreit UNO Arduino
|
Samen met de “Geekcreit UNO” Arduino-kloon kocht ik ook een blauw 16×2 LCD-display bij VNG Systems. Het Hitachi HD44780 compatible display is voorzien van een I2C seriële interfacemodule op de achterkant.
Door tegenstrijdige informatie op internet over deze combinatie kostte het enige moeite om dit schermpje aan de praat te krijgen samen met de Uno. Hier volgt de manier waarop het mij gelukt is, voor andere merken boards en displays kan de werkwijze natuurlijk verschillen.
Getest met:
Arduino IDE versie: 1:1.0.5+dfsg2-2
Linux Mint versie: 17.3 Cinnamon 64-bit
Geekcreit UNO revisie: onbekend




Alternatieve LCD-library installeren
Allereerst moet de standaard Arduino LCD-library vervangen worden door ‘new-liquidcrystal’, download deze hier: https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
In Linux Mint kun je hier de libraries-map vinden:
/usr/share/arduino/libraries/
Ga naar de libraries-map, hierin staat een map ‘LiquidCrystal’; verwijder of hernoem deze.
Kopieer de map ‘Newliquidcrystal’ (die je zojuist gedownload hebt) naar de libraries-map en hernoem deze naar ‘LiquidCrystal’.
Het display aansluiten op de Geekcreit UNO
Sluit het display als volgt op de Geekcreit UNO aan:
LCD display | Geekcreit UNO board |
GND | GND |
VCC | 5V |
SDA | A4 |
SCL | A5 |


Als dit gelukt is kun je de Geekcreit UNO op je computer aansluiten met de USB-kabel.
Het 16×2 LCD display aansturen vanuit een Arduino sketch
Start de Arduino IDE en kopieer onderstaande code naar de lege sketch:
/* Hello World! voor 16x2 LCD display op Geekcreit Uno */ #include #include #define I2C_ADDR 0x3F // Het adres van het display #define BACKLIGHT_PIN 3 #define En_pin 2 #define Rw_pin 1 #define Rs_pin 0 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7 LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); void setup() { lcd.begin (16,2); // 16x2 display lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); // Backlight aan lcd.setBacklight(HIGH); } void loop() { lcd.clear (); lcd.print("Hello World!"); delay(3000); lcd.clear (); lcd.print("1234567890ABCDEF"); lcd.setCursor (0,1); lcd.print("GHIJKLMNOPQRSTUV"); delay(3000); }
Deze voorbeeldsketch is ook beschikbaar op GitHub: https://github.com/oneguyoneblog/arduino-16×2-lcd

