Module – LCD – 1602 / 2004 Display

Hardware

YM2004A LCD Display 2x20 - 4x20

BESTEL NU!

Dit zijn veelal YM2004A LCD displays, ze gebruiken en zijn gestandaardiseerd op de Hitachi HD44780 driver.


I2C controller

Het display heeft 16 pinnen en word parallel aangestuurd, normaliter zijn er veel aansluitingen voor nodig om het display te gebruiken, er is een HD44780 I2C converter module die je kan gebruiken om maar liefst met 4 draden het display aan te sturen:

Display LCD I2C interface module

  • De Jumper (waar LED bijstaat) is voor de backlight.
  • De potmeter is voor de contrastregeling.

I2C adres wijzigen

Mocht je meerdere displays of I2C apparaten willen aansluiten, dan kun je het I2C adres van de chip aanpassen, dit moet hardwarematig gebeuren door doorverbindingen te maken op de I2C print:

Display LCD I2C interface module i2c adres aanpassen

I2C adresA0A1A2
0x20000
0x21100
0x22010
0x23110
0x24001
0x25101
0x26011
0x27111

(geen doorverbinding = 1)

Bronnen:
arduinoecia.com.br
hacking-arduino-and-raspberry-pi.blogspot.nl


Specifieke karakters weergeven

Je kan met behulp van onderstaande karakterset diverse karakters weergeven op het display, het “celcius teken” is bijvoorbeeld karakter 223 (lees uit de tabel de binaire code: 1101 1111)

Voorbeeld Arduino:
Weer te geven op het display met: lcd.print((char)223);

HD44780 karakterset

Pinout

LCD Module pinout  
Pin (van links naar rechts met het display naar boven gericht!)Afkorting:Omschrijving:
1VSSGround for logic
2VDD+5v power supply for logic
3V0Power supply for LCD drive (potmeter)
4RSRegister selection
5R/WGround (to enable write to display)
6EEnable signal for LCM
7-14DB0 t/m DB7Data Bus lines
15A+5v for Backlight
16KGround for Backlight

Arduino

Sluit de module aan volgens onderstaand overzicht:

LCD op arduino

Pin (van links naar rechts met het display naar boven gericht!)Afkorting:Omschrijving:Arduino Pin:
1VSSGround for logicGND
2VDD+5v power supply for logic+5v
3V0Power supply for LCD drive (potmeter)Regelbare potmeter!
4RSRegister selection12
5R/WGround (to enable write to display)GND
6EEnable signal for LCM10
11DB4Data Bus line5
12DB5Data Bus line4
13DB6Data Bus line3
14DB7Data Bus line2
15A+5v for Backlight+5v
16KGround for BacklightGND

Scripts

Script #1, Het script voor “Hallo wereld” icm met de “LiquidCrystal Library” (wordt standaard met arduino software meegeleverd)
Ps. vergeet niet je LCD te configureren, zoals het aantal karakters en regels dat het aankan.

Resultaat:

arduino_lcd_praktijk_01

Script #2, met timer welke het aantal seconden aangeeft dat het display gebruikt wordt:

Resultaat:

arduino_lcd_praktijk_02


Arduino via I2C module

Sluit de module aan zoals aangegeven op onderstaand schema:

Arduino display lcd 16x2 i2c schema

I2C display module:Arduino Pin:
GNDGND
+5v+5v
SCA (serial data)A4
SCL (serial clock)A5

Script I2C aansturing

Nieuwe script met library v1.1.2

Het script voor “Hallo wereld” icm met de “LiquidCrystal Library I2C” (oude library!)

Script met timer welke het aantal seconden aangeeft dat het display gebruikt wordt (oude library!)


Arduino Library

Installatie van Arduino IDE libraries: Arduino info

Deze bibliotheek geeft ondersteuning voor LCD displays (1602 / 2004) met I2C ondersteuning.

Download @ henningkarlsen.com

Raspberry Pi

Raspberry Pi via I2C module

Sluit de module aan zoals aangegeven op onderstaand schema:

LCD I2C interface module op raspberry pi

Raspberry Pi pin:I2C module pin:
+5v+5v
GNDGND
3 (GPIO2) SDASDA
5 (GPIO3) SCLSCL

Ps. Altijd de pinout van je Raspberry Pi controleren, deze kan verschillen per versie.

Wat heb je nodig?

1) I2C bus gebruiken op de Raspberry Pi

Om de I2C bus in Python te gebruiken moet je een module installeren, genaamd SMBUS, dit kan via APT-GET met het commando:  sudo apt-get install python-smbus

Je kan dan de module importeren in python door middel van: import smbus

Python script module #1 (2015) (werkt beter met 2004 displays)

Er is een script (module) gemaakt om eenvoudig met het display te kunnen communiceren via de I2C bus, het bestand I2C_LCD_driver.py:

Vul hierboven in het bestand het juiste i2c adres in:

ADDRESS = 0x27

Script

Het script lcd.py om regels naar het display te schrijven:

Start het script met: python lcd.py

Resultaat:

Display LCD I2C interface module i2c resultaat


Python script module #2 (verouderd)

Er is een script (module) gemaakt om eenvoudig met het display te kunnen communiceren via de I2C bus, het bestand pylcdlib.py:

Script

Het script lcd.py om regels naar het display te schrijven:

Start het script met: python lcd.py


I2C adres:

Meestal is het adres 0x27, mocht dit anders zijn dan kun je vanuit de Raspberry Pi dit commando uitvoeren om te kijken welk I2C adressen er zijn gevonden:  sudo i2cdetect -y 1

Foutmelding

Krijg je deze foutmelding: IOError: [Errno 5] Input/output error, dat is de I2C bus nog niet (juist) geïnitialiseerd, je kan daarvoor het volgende trucje toepassen in python:

Bronnen:
raspberrypi.org
stackoverflow.com
circuitbasics.com

Raspberry Pi Library

Informatie (ENG):

A Python 2/3 Raspberry PI Character LCD library for the Hitachi HD44780 controller.
This library is inspired by Adafruit Industries’ CharLCD library as well as by Arduino’s LiquidCrystallibrary.

No external dependencies (except the RPi.GPIO library, which comes preinstalled on Raspbian) are needed to use this library.

Features

  • Simple to use API
  • Support for both 4 bit and 8 bit modes
  • Support for custom characters
  • Python 2/3 compatible
  • Caching: Only write characters if they changed
  • No external dependencies

Installatie via GIT (github)

Download Python LCD HD44780 library @ Github

ESP8266

Code flashen:
Voordat je het display kan aansluiten, verbind GPIO 0 op GND en flash de code in de ESP8266 module.

Display aansluiten:
Eenmaal de code geflashed, Sluit het LCD display aan op GPIO 0 en GPIO 2 volgens onderstaand schema:

ESP8266 ESP-01 GPIO LCD 1602 schema


Script voor ArduinoIDE

1) Firmware flashen met ArduinoIDE
2) Arduino LiquidCrystal I2C biblotheek

Een voorbeeld code voor een LCD 1602 via I2C:

Het resultaat:

ESP8266 ESP-01 GPIO LCD 1602 praktijk


Script voor NodeMCU

Wat heb je nodig?

1) ESPlorer IDE

Upload deze “library” code als lcd1602.lua

Tip: Download de code sla het op als bestand, en gebruik de “Upload…” knop in ESPlorer.

De code om scrollende tekst weer te geven, upload dit bestand als start_lcd1602.lua

Start de code met het commando:  dofile("start_lcd1602.lua")

esp8266 NodeMCU display 1602 i2c

Ps. Gebeurt er niets op het display?, draai de SCL en SDA kabeltjes om, of verander 3,4 in 4,3 in de code.

Bron:
dvv @ github.com

Afmetingen

GEEN GEGEVENS

Schema

Display LCD I2C interface module schema

Teardown

GEEN GEGEVENS

Datasheet

Fritzing

LCD 1602:

I2C module:

Downloads

GEEN GEGEVENS

Top