Moje Rapsberry Pi - I2C LCD 16x2

raspipidi

Pro zobrazování stavů pidi počítače RPI jsem dobastlil (hlavně pro budoucí využití u zalévače trávníku) LCD displej 16x2 znaků. Displej je připojen pomocí I2C sběrnice přes převodník PCF8574. Pozor před připojením LCD k I2C RasPi je nutné použít převodník úrovní I2C 5V na I2C 3,3V, jinak hrozí poškození RasPi! Příklad převodníku I2C zde (pouze neosadíme obvod PCF na desce AD převodníku - budeme mít jeden vstup I2C 3,3V na 4 výstupy I2C 5V. Tento převodník lze použít i s Arduinem (v příloze je ukázkový kód).

ZDARMA

  • schema

DONATE

  • zdroj pro Arduino IDE, pro Python, desky spojů a gerber (Eagle)

Schema zapojení převodníku I2C PCF8574 na LCD:

 

schema

Pokud připojíme konektor (na obrázku vlevo) k RPI (v mém případě deska zalévače trávníku) k pinům +5V, SDA, SCL, GND bude se převodník PCF8574 hlásit na I2C sběrnici na adrese 0X20. Pokud potřebujeme PCF na jiné adrese přepojíme vstupy A0,A1,A2 z GND na VCC dle této tabulky (k dispozici je 16 adres - dle IO obvodu):

PCF8574 address map

Deska plošných spojů

deska pohled top

osazovak

pcb top

IMG 20141015 065949

IMG 20141015 065930

IMG 20141015 065908

Seznam součástek

kód gme.cz označení hodnota cena/ks ks
433-053 IC1 PCF8574P 59,0 Kč 1
210-035 T1 BC556A 0,9 Kč 1
119-043 R2 RRU 1K 0207 2,2 Kč 1
824-004 IC1 DIL16PZ 12,4 Kč 1
111-959 R3 RR 3x10K 2,8 Kč 1
832-017 JP1,JP2 S1G20 2,54mm kolík oboustranný 4,9 Kč 1
832-090 (pokud potřebujeme úhel) S1G20S 2,54mm kolík oboustranný 90 st. 6,2 Kč 1
903-060 R1 SMD10K trimr 18,0 Kč 1
    celkem 106,5 Kč  

Příklad použitelného LCD (řadič HD44780) displej: http://www.gme.cz/mc1602e-trv-p513-099

Pokud máme nainstalovány nástroje pro práci s I2C v RPI viz tento článek, připojíme I2C LCD k RPI a koukneme na výpis sběrnice, zda je přítomen na adrese 0x20. Výpis bude vypadat nějak takto:

sudo i2cdetect -y 1

Pokud používáme jeden z prvních RPI (Raspberry Pi 256 MB Model B), pak budeme muset změnit příkaz:

sudo i2cdetect -y 0

 i2c detect s lcd

adresa: 0x20 = PCF8574 (adresa 0x48 je AD převodník a 0x68 je obvod RTC na desce zalévače...)

Pro obsluhu převodníku potřebujeme knihovnu pylcd2.py (můžeme ji stáhnout na původní www, nebo zde v příloze pod článkem).

Nakopírujeme (například do home/pi) knihovnu pylcd2.py a test.py do RPI a provedeme test LCD displeje...

cd /home/pi

sudo python test.py

Na LCD se začne vypisovat stav RPI (IP adresa, čas atd...)

 IMG 20131127 124611

IMG 20131127 124614

IMG 20131127 124618

IMG 20131127 124622

IMG 20131127 124624

V RPI se vypisuje tento text:

test

 

Pro výpis na LCD v našem python programu stačí vložit tento kód:

import pylcdlib # import LCD knihovny
lcd = pylcdlib.lcd(0x21,0) # adresa PCF prevodniku  

# vypis na LCD
lcd.lcd_puts("Ahoj pepo",1)  # text max 16  znaku radek 1
lcd.lcd_puts("jak se mas?",2)  # text max 16 znaku rade 2  

# pokud potrebujeme smazat displej

lcd.lcd_clear() pro smazani celeho LCD, jinak se bude radek vzdy premazavat novym textem

V příloze pod článkem je soubor i2c autodetect lcd.py, který automaticky vyhledá a zobrazí připojený obvod PCF a jeho adresu.