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:
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):
Deska plošných spojů
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
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...)
V RPI se vypisuje tento text:
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.