Raspberry Pi je deska založená na procesoru architektury ARM určená pro elektronické inženýry a fandy. PI je jednou z nejdůvěryhodnějších platforem pro vývoj projektů. Díky vyšší rychlosti procesoru a 1 GB RAM lze PI použít pro mnoho vysoce profilovaných projektů, jako je zpracování obrazu a IoT.
Při provádění některého z vysoce profilovaných projektů je třeba porozumět základním funkcím PI. V těchto cvičeních se budeme věnovat všem základním funkcím Raspberry Pi. V každém tutoriálu probereme jednu z funkcí PI. Na konci této série kurzů Raspberry Pi budete moci sami dělat vysoce postavené projekty. Projděte si níže výukové programy:
- Začínáme s Raspberry Pi
- Konfigurace Raspberry Pi
- LED Blinky
- Rozhraní tlačítek
- Generování PWM
- Ovládání stejnosměrného motoru
- Ovládání krokového motoru
- Propojení posuvného registru
- Výukový program ADC pro Raspberry Pi
- Ovládání servomotoru
- Kapacitní dotyková podložka
V tomto tutoriálu budeme ovládat 16x2 LCD displej pomocí Raspberry Pi. Připojíme LCD k pinům GPIO (General Purpose Input Output) PI, abychom na něm zobrazili znaky. Napíšeme program v PYTHONU, abychom prostřednictvím GPIO odeslali příslušné příkazy na LCD a zobrazili potřebné znaky na jeho obrazovce. Tato obrazovka se hodí k zobrazení hodnot senzorů, stavu přerušení a také k zobrazení času.
Na trhu existují různé typy LCD. Grafický LCD je složitější než 16x2 LCD. Takže tady jdeme na 16x2 LCD displej, můžete dokonce použít 16x1 LCD, pokud chcete. 16x2 LCD má celkem 32 znaků, 16 v 1. řádku a dalších 16 ve 2. řádku. JHD162 je 16x2 LCD modul se znaky LCD. Již jsme propojili 16x2 LCD s 8051, AVR, Arduino atd. Celý náš 16x2 LCD související projekt najdete kliknutím na tento odkaz.
Než půjdeme dále, probereme něco o PI GPIO.
V Raspberry Pi 2 je 40 výstupních pinů GPIO. Ale ze 40 lze naprogramovat pouze 26 pinů GPIO (GPIO2 až GPIO27). Některé z těchto pinů plní některé speciální funkce. Se speciálním GPIO odloženým stranou nám zbývá 17 GPIO.
Na desce jsou napájecí piny + 5 V (Pin 2 nebo 4) a + 3,3 V (Pin 1 nebo 17), které slouží k připojení dalších modulů a senzorů. Budeme napájet 16 * 2 LCD přes kolejnici + 5V. Můžeme poslat řídící signál +3,3 V na LCD, ale pro práci s LCD je třeba jej napájet + 5V. LCD nebude fungovat s +3,3 V.
Chcete-li se dozvědět více o pinech GPIO a jejich aktuálních výstupech, projděte si: LED bliká s Raspberry Pi
Požadované komponenty:
Zde používáme Raspberry Pi 2 Model B s Raspbian Jessie OS. Všechny základní požadavky na hardware a software jsou dříve diskutovány, můžete si je vyhledat v úvodu k Raspberry Pi, kromě toho, co potřebujeme:
- Spojovací kolíky
- 16 * 2 LCD modul
- 1KΩ rezistor (2 kusy)
- 10K hrnec
- 1000µF kondenzátor
- Nepájivá deska
Vysvětlení obvodu a práce:
Jak je znázorněno na schématu zapojení, propojili jsme Raspberry Pi s LCD displejem připojením 10 GPIO pinů PI k 16 * 2 LCD ovládacím a přenosovým pinům. Použili jsme GPIO Pin 21, 20, 16, 12, 25, 24, 23 a 18 jako BYTE a vytvořili jsme funkci 'PORT' pro odesílání dat na LCD. Zde GPIO 21 je LSB (Least Significant Bit) a GPIO18 je MSB (Most Significant Bit).
16x2 LCD modul má 16 pinů, které lze rozdělit do pěti kategorií, Power Pins, kontrastní pin, Control Pins, Data piny a Backlight piny. Zde je jejich stručný popis:
Kategorie |
Pin NO. |
Název PIN |
Funkce |
Napájecí piny |
1 |
VSS |
Uzemňovací kolík, připojený k uzemnění |
2 |
VDD nebo Vcc |
Napěťový kolík + 5V |
|
Kontrast Pin |
3 |
V0 nebo VEE |
Nastavení kontrastu, připojené k Vcc přes proměnný rezistor. |
Kontrolní kolíky |
4 |
RS |
Registrovat Vyberte Pin, RS = 0 Příkazový režim, RS = 1 Datový režim |
5 |
RW |
Pin pro čtení / zápis, RW = 0 režim zápisu, RW = 1 režim čtení |
|
6 |
E |
Povolit, je třeba povolit vysoký až nízký pulz LCD |
|
Datové piny |
7-14 |
D0-D7 |
Datové kolíky, Ukládá data, která se mají zobrazit na LCD nebo pokyny k příkazu |
Kolíky podsvícení |
15 |
LED + nebo A |
Pro napájení podsvícení + 5V |
16 |
LED nebo K. |
Podsvícení země |
Důrazně doporučujeme projít si tento článek, abyste pochopili, jak LCD pracuje s jeho příkazy Pins a Hex.
Stručně probereme proces odesílání dat na LCD:
1. E je nastaveno vysoko (aktivuje modul) a RS je nastaveno nízko (říká LCD, že dáváme příkaz)
2. Dát hodnotu 0x01 datovému portu jako příkaz k vymazání obrazovky.
3. E je nastavena vysoko (povolení modulu) a RS je nastavena vysoko (říká LCD, že dáváme data)
4. Je třeba zobrazit prokazující ASCII kód znaků.
5. E je nastaveno na nízkou hodnotu (sděluje LCD, že jsme dokončili odesílání dat)
6. Jakmile tento E pin poklesne, LCD zpracuje přijatá data a zobrazí odpovídající výsledek. Tento pin je tedy před odesláním dat nastaven na vysokou hodnotu a po odeslání dat je stažen na zem.
Jak již bylo řečeno, budeme posílat postavy jeden po druhém. Tyto znaky jsou uvedeny na displeji pomocí kódů ASCII (American Standard Code pro Information Interchange). Tabulka kódů ASCII je uvedena níže. Například pro zobrazení znaku „@“ musíme poslat hexadecimální kód „40“. Pokud dáme LCD hodnotu 0x73, zobrazí se „s“. Takto pošleme příslušné kódy na LCD displej, aby se zobrazil řetězec „ CIRCUITDIGEST “.
Vysvětlení programování:
Jakmile je vše připojeno podle schématu zapojení, můžeme zapnout PI pro zápis programu do PYHTONU.
Promluvíme si o několika příkazech, které budeme používat v programu PYHTON, Chystáme se importovat soubor GPIO z knihovny, níže uvedená funkce nám umožňuje programovat GPIO piny PI. Přejmenováváme také „GPIO“ na „IO“, takže v programu, kdykoli budeme chtít odkazovat na piny GPIO, použijeme slovo „IO“.
importovat RPi.GPIO jako IO
Někdy, když piny GPIO, které se snažíme použít, mohou dělat nějaké další funkce. V takovém případě obdržíme varování při provádění programu. Níže uvedený příkaz říká PI, aby ignoroval varování a pokračoval v programu.
IO.setwarnings (False)
Můžeme označit GPIO piny PI, buď číslem kolíku na desce, nebo jejich číslem funkce. Jako „PIN 29“ na desce je „GPIO5“. Řekneme tedy, že zde buď budeme reprezentovat špendlík číslem '29' nebo '5'.
IO.setmode (IO.BCM)
Nastavujeme 10 GPIO pinů jako výstupní piny pro Data a Control piny na LCD.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
zatímco příkaz 1: se používá jako smyčka navždy, s tímto příkazem budou příkazy uvnitř této smyčky prováděny nepřetržitě.
Všechny ostatní funkce a příkazy byly vysvětleny v sekci „Kód“ pomocí „Komentáře“.
Po napsání programu a jeho spuštění Raspberry Pi posílá znaky na LCD jeden po druhém a LCD zobrazuje znaky na obrazovce.