1602 LCD on RPi B+

From EnigmaGuy Wiki
Jump to navigation Jump to search

What will be needed?

  • SaintSmart 1602 backlighted I2C LCD (search E-Bay for "1602 LCD I2C")

1602 LCD I2C

  • MB102 BreadBoard (also available on E-Bay)
  • Raspberry PI GPIO Extension Board v2.2

GPIO board

  • Bi-Directional Module 5V to 3.3V

3.3 to 5V converter

  • Male to Female Dupont wires
  • 140pcs Solderless Breadboard Jumper Cable Wire Kit

Jumper cable kit

Final connection

Because I2C LCD use 5V logic and Vcc but Raspberry Pi uses 3.3V you need to connect between LCD and Raspberry Pi logic converter module! Final Connection

Software

  • Login to Raspberry Pi B+
  • sudo vi /etc/modules and add following
i2c-dev
  • sudo vi /etc/modprobe.d/raspi-blacklist.conf and comment following
# blacklist spi and i2c by default (many users don't need them)

#blacklist spi-bcm2708
#blacklist i2c-bcm2708
  • Run following commands and reboot
sudo adduser pi i2c
reboot
  • Connect LCD and run "i2cdetect -y 1" to find where is the device connected
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --
  • Install neccesary software
sudo apt-get install python-smbus
mkdir ~/lcd
cd ~/lcd
git clone https://bitbucket.org/thinkbowl/i2clibraries.git
  • Add main script, "vi ~/lcd/main.py"
#!/usr/bin/python

from i2clibraries import i2c_lcd_smbus

lcd = i2c_lcd_smbus.i2c_lcd(0x27,1, 2, 1, 0, 4, 5, 6, 7, 3)

lcd.command(lcd.CMD_Display_Control | lcd.OPT_Enable_Display)
lcd.backLightOn()
lcd.writeString("Raspberry Pi")
lcd.setPosition(2, 0)
lcd.writeString("Rules!")
  • Everything should works fine now!