====== I²C LCD Display ====== \\ \\ LCDs are a great way to display simple information (like an IP address) without going to the expense of a full LCD panel, or connecting a monitor. For my previous LCD I used a 2 line LCD in 4 bit mode, this is a very simple implementation, but it uses lots of GPIO pins.\\ \\ Another way to connect an LCD is to use the I2C interface. This only requires a total of 4 wires, two for the data, 2 for power. You can buy LCDs with built in I2C adapters, I got mine from eBay, I can't really link it because the links to eBay items seem to die fairly quickly.\\ \\ If you do a search for something like this: Yellow Green Serial IIC/I2C/TWI 2004 20X4 Character LCD Module For Arduino \\ Then you should find what you are looking for.\\ \\ Here is the description for what I purchased (obviously you can ignore the Arduino references)\\ \\ Yellow Green Serial IIC/I2C/TWI 2004 20X4 Character LCD Module For Arduino \\ Dedicated IIC control for Arduino, it only takes two IO Adjustable contrast, the backlight control to provide library High quality LCD screen, Yellow Green, clear display IIC bus control, it only takes two IO ports Backlight control, you can control via a jumper, you can also program control Adjustable display contrast 5V power supply, the device address 0x27 Compatible to Arduino \\ There are many of these available on eBay in 2016, and they average around £3.50-£4.00\\ \\ Here is one connected to a Pi Zero (1.3)\\ \\ {{:lcd_i2c_003b.jpg?200|}}{{:lcd_i2c_002s.jpg?200|}}\\ \\ The most tricky part of getting any LCD to run is finding a driver/library for it. I have followed a tutorial from a chap called **TheRaspberryPiGuy** who you can look up on YouTube.\\ \\ https://www.youtube.com/watch?v=fR5XhHYzUK0 \\ This guide assumes that you have installed Raspbian (or equivalent) and updated everything with the following commands: \\ sudo apt-get update sudo apt-get upgrade \\ On the LCD the four connections will be labelled something like: \\ LCD R-Pi GND (Ov) Pin 6 VCC (5v) Pin 2 SDA Pin 3 (GPIO2) SCL Pin 5 (GPIO3) \\ You need to ensure that the I2C pins are active: \\ sudo raspi-config Advanced Options I2C Where you see the message - Would you like the ARM I2C interface to be enabled? Select Yes, then exit this menu system Reboot for the changes to take effect \\ Once the OS is installed and the LCD is connected, the libraries can be installed:\\ \\ Ensure you are in your home folder (probably /home/pi)\\ \\ From the command line: \\ git clone https://github.com/the-raspberry-pi-guy/lcd cd lcd sudo sh install.sh (RPi will auto reboot) \\ \\ If you can't find the repository - these files may help - {{ :i2c_lcd.zip |}} \\ \\ Once the Pi has rebooted: \\ Navigate to your home folder (probably /home/pi) cd lcd edit lcddriver.py to ensure the ADDRESS = 0x27 is the correct address (some are 0x20) You can find the LCD address by using a tool called i2cdetect \\ I found this guide by doing this YouTube search: \\ Raspberry Pi - Mini LCD Display Tutorial by TheRaspberryPiGuy \\ To start the demo LCD code: \\ sudo python lcd_lcd.py \\ You should now have some text on the LCD\\ \\