Module – Display – 1602 / 2004 LCD

Hardware

YM2004A LCD Display 2x20 - 4x20

BESTELLEN

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 display HD44780 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

Aansluiten LCD 1602 op de Raspberry Pi

Sluit het display aan zoals aangegeven op onderstaand schema:

Raspberry-Pi-HD44780-LCD-Circuit

Pin (van links naar rechts met het display naar boven gericht!)Afkorting:Omschrijving:Raspberry functie:Raspberry pin:
1VSSGround for logicGNDP1-06
2VDD+5v power supply for logic+5vP1-02
3V0Power supply for LCD drive (potmeter)Regelbare potmeter!P1-06
4RSRegister selectionGPIO7P1-26
5R/WGround (to enable write to display)GNDP1-06
6EEnable signal for LCMGPIO8P1-24
11DB4Data Bus lineGPIO25P1-22
12DB5Data Bus lineGPIO24P1-18
13DB6Data Bus lineGPIO23P1-16
14DB7Data Bus lineGPIO18P1-12
15A+5v for Backlight+5v via 560 OhmP1-02
16KGround for BacklightGNDP1-06

Ter info:
– De RW pin zorgt ervoor dat je kan schrijven of lezen van het display, aangezien de Raspberry Pi GPIO pinnen maar 3.3v aankunnen en je alleen data stuurt naar het display is het van (groot) beland dat je deze pin op GND aansluit (alleen schrijven naar display), zodat je de Raspberry Pi niet kan beschadigen!

– Het contrast moet afgeregeld worden met een potmeter potmeter aansluiten op GND en +5V, middelste pin op pin 3 van het display.

– Niet alle displays ondersteunen direct 5v op de achtergrondverlichting, daarom is een weerstand altijd aan te raden.

Script icm RPi.GPIO bibliotheek

Het display is aan te sturen met Python en maakt gebruik van de RPi.GPIO bibliotheek, deze wordt standaard met Raspbian geïnstalleerd.

Ps. je kan de GPIO pinnen nog veranderen in de instellingen van de code, indien jet het display anders wilt aansluiten.

Start het script met:  python lcd1602.py


Aansluiten LCD 2004 op de Raspberry Pi

Sluit het display aan zoals aangegeven op onderstaand schema:

Raspberry-Pi-HD44780-LCD-2004-Circuit

Ter info:
– De RW pin zorgt ervoor dat je kan schrijven of lezen van het display, aangezien de Raspberry Pi GPIO pinnen maar 3.3v aankunnen en je alleen data stuurt naar het display is het van (groot) beland dat je deze pin op GND aansluit (alleen schrijven naar display), zodat je de Raspberry Pi niet kan beschadigen!

– Het contrast moet afgeregeld worden met een potmeter potmeter aansluiten op GND en +5V, middelste pin op pin 3 van het display.

– Niet alle displays ondersteunen direct 5v op de achtergrondverlichting, daarom is een weerstand altijd aan te raden.

Script icm RPi.GPIO bibliotheek

Het display is aan te sturen met Python en maakt gebruik van de RPi.GPIO bibliotheek, deze wordt standaard met Raspbian geïnstalleerd.

Ps. je kan de GPIO pinnen nog veranderen in de instellingen van de code, indien jet het display anders wilt aansluiten.

Start het script met:  python lcd2004.py

Resultaat:

LCD display HD44780 resultaat


Python Library gebruiken

Wat heb je nodig?

1) Python Hitachi HD44780 bibliotheek

Sluit het display aan zoals aangegeven op onderstaand schema:

Raspberry-Pi-HD44780-LCD-2004-Circuit-python-library

Voorbeeld script icm met de Python HD44780 bibliotheek

Bronnen:
www.raspberrypi-spy.co.uk #1
www.raspberrypi-spy.co.uk #2


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

RPLCD

A Python 3/2 Raspberry PI Character LCD library for the Hitachi HD44780 controller. It supports both GPIO (parallel) mode as well as boards with an I²C port expander (e.g. the PCF8574 or the MCP23008).

This library is inspired by Adafruit Industries’ CharLCD library as well as by Arduino’s LiquidCrystal library.

For GPIO mode, no external dependencies (except the RPi.GPIO library, which comes preinstalled on Raspbian) are needed to use this library. If you want to control LCDs via I²C, then you also need the python-smbus or smbus2 library. If you want to control the LCD with pigpio, you have to install the pigpio library.

If you’re trying to get started with RPLCD, you should probably read the docs :)

Setup

You can install RPLCD directly from PyPI using pip:

If you want to use I²C, you also need either the smbus or smbus2 library:

RPLCD will first try to use smbus if available and if not, fall back to smbus2.

You can also install the library manually without pip. Either just copy the scripts to your working directory and import them, or download the repository and run python setup.py install to install it into your Python package directory.

Features

Implemented

  • Simple to use API
  • Support for both 4 bit and 8 bit modes
  • Support for both parallel (GPIO) and I²C connection
  • Support for custom characters
  • Support for backlight control circuits
  • Built-in support for A00, A02 (standard HD44780) or ST0B (see ST7066, page 11) character tables
  • Python 2/3 compatible
  • Caching: Only write characters if they changed
  • No external dependencies (except RPi.GPIO, and python-smbus or smbus2 if you need I²C support)

Wishlist

These things may get implemented in the future, depending on my free time and motivation:

  • MicroPython port

Supported I²C Port Expanders

  • PCF8574 (used by a lot of I²C LCD adapters on Ali Express)
  • MCP23008 (used in Adafruit I²C LCD backpack)
  • MCP23017

Documentation

Installatie via GIT (github)

Github: https://github.com/dbrgn/RPLCD

RPLCD-1.3.0

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