Raspberry Pi je doska založená na procesore ARM architektúry určená pre elektronických inžinierov a fandov. PI je jednou z najdôveryhodnejších platforiem pre vývoj projektov. Vďaka vyššej rýchlosti procesora a 1 GB RAM sa dá PI použiť na mnoho významných profilových projektov, ako je spracovanie obrazu a IoT.
Pri uskutočňovaní ktoréhokoľvek z významných profilov je potrebné porozumieť základným funkciám PI. V týchto výučbách sa budeme venovať všetkým základným funkciám Raspberry Pi. V každom návode si rozoberieme jednu z funkcií PI. Na konci tejto série tutoriálov Raspberry Pi budete môcť sami robiť vysoko hodnotné projekty. Prejdite si nižšie uvedené návody:
- Začíname s Raspberry Pi
- Konfigurácia Raspberry Pi
- LED Blinky
- Rozhranie tlačidla
- Generácia PWM
- Ovládanie jednosmerného motora
- Ovládanie krokového motora
- Interfacing Shift Register
- Výukový program ADC pre Raspberry Pi
- Ovládanie servomotora
- Kapacitná dotyková podložka
V tomto tutoriáli budeme ovládať 16x2 LCD displej pomocou Raspberry Pi. Pripojíme LCD k pinom GPI (General Purpose Input Output) PI, aby sme na nich zobrazili znaky. Napíšeme program v PYTHONE, ktorý prostredníctvom GPIO pošle príslušné príkazy na LCD a zobrazí potrebné znaky na jeho obrazovke. Táto obrazovka bude užitočná na zobrazenie hodnôt snímača, stavu prerušenia a tiež na zobrazenie času.
Na trhu existujú rôzne typy LCD. Grafický LCD je zložitejší ako 16x2 LCD. Takže ideme na 16x2 LCD displej, môžete dokonca použiť 16x1 LCD, ak chcete. 16x2 LCD má celkom 32 znakov, 16 v 1. riadku a ďalších 16 v 2. riadku. JHD162 je 16x2 LCD modul so znakmi LCD. Už sme prepojili 16x2 LCD s 8051, AVR, Arduino atď. Celý náš projekt 16x2 LCD nájdete kliknutím na tento odkaz.
Než pôjdeme ďalej, trochu si povieme niečo o PI GPIO.
V Raspberry Pi 2 je 40 výstupných pinov GPIO. Ale zo 40 možno naprogramovať iba 26 pinov GPIO (GPIO2 až GPIO27). Niektoré z týchto pinov vykonávajú niektoré špeciálne funkcie. Keď odložíme špeciálne GPIO, zostane nám 17 GPIO.
Na doske sú výstupné kolíky napájania + 5 V (pin 2 alebo 4) a + 3,3 V (pin 1 alebo 17), slúžia na pripojenie ďalších modulov a snímačov. Budeme napájať 16 * 2 LCD cez koľajnicu + 5V. Môžeme poslať riadiaci signál +3,3 V na LCD, ale pre fungovanie LCD ho musíme napájať o + 5V. Displej LCD nebude pracovať s napätím +3,3 V.
Ak sa chcete dozvedieť viac o pinoch GPIO a ich aktuálnych výstupoch, prečítajte si: LED bliká s Raspberry Pi
Požadované komponenty:
Tu používame Raspberry Pi 2 Model B s Raspbian Jessie OS. Všetky základné hardvérové a softvérové požiadavky sú už diskutované. Môžete si ich vyhľadať v úvode k Raspberry Pi, okrem toho, čo potrebujeme:
- Spojovacie čapy
- 16 * 2 LCD modul
- 1KΩ rezistor (2 kusy)
- 10K hrniec
- 1000µF kondenzátor
- Nepál
Vysvetlenie obvodu a práce:
Ako je znázornené na schéme zapojenia, prepojili sme Raspberry Pi s LCD displejom pripojením 10 GPIO pinov PI k 16 * 2 LCD ovládacím a prenosovým pinom. Použili sme GPIO Pin 21, 20, 16, 12, 25, 24, 23 a 18 ako BYTE a vytvorili sme funkciu „PORT“ na odosielanie údajov na LCD. GPIO 21 je tu LSB (najmenej významný bit) a GPIO18 je MSB (najvýznamnejší bit).
Modul LCD 16x2 má 16 pinov, ktoré možno rozdeliť do piatich kategórií, Power Piny, kontrastné piny, Control Piny, Data piny a Backlight piny. Tu je ich stručný popis:
Kategória |
Pin č. |
Názov špendlíka |
Funkcia |
Napájacie piny |
1 |
VSS |
Uzemňovací kolík, pripojený k zemi |
2 |
VDD alebo Vcc |
Napäťový kolík + 5V |
|
Kontrastný kolík |
3 |
V0 alebo VEE |
Nastavenie kontrastu, pripojené k Vcc cez variabilný rezistor. |
Kontrolné piny |
4 |
RS |
Registrovať Vyberte Pin, RS = 0 Príkazový režim, RS = 1 dátový režim |
5 |
RW |
Pin na čítanie a zápis, RW = 0 režim zápisu, RW = 1 režim čítania |
|
6 |
E |
Povoliť, musí sa povoliť vysoký až nízky impulz LCD |
|
Dátové kolíky |
7-14 |
D0-D7 |
Dátové kolíky, Ukladá údaje, ktoré sa majú zobraziť na LCD displeji alebo podľa pokynov k príkazu |
Kolíky podsvietenia |
15 |
LED + alebo A |
Na napájanie podsvietenia + 5V |
16 |
LED- alebo K |
Podsvietenie zeme |
Dôrazne odporúčame prečítať si iba tento článok, aby ste pochopili prácu LCD displeja s príkazmi Pins a Hex.
Stručne prediskutujeme postup odosielania údajov na LCD:
1. E je nastavené vysoko (aktivuje modul) a RS je nastavené nízko (oznamuje LCD, že dávame príkaz)
2. Dátový port 0x01 ako príkaz na vymazanie obrazovky.
3. E je nastavené vysoko (aktivácia modulu) a RS je nastavené vysoko (hovorí LCD, že dávame údaje)
4. Musí byť zobrazené preukázanie ASCII kódu pre znaky.
5. E je nastavená na nízku hodnotu (informuje LCD, že sme odoslali údaje)
6. Akonáhle tento E pin poklesne, LCD spracuje prijaté dáta a ukáže zodpovedajúci výsledok. Tento pin je teda nastavený na vysoký pred odoslaním údajov a po odoslaní údajov je stiahnutý na zem.
Ako už bolo povedané, budeme posielať postavy jeden za druhým. Tieto znaky sú uvedené na displeji pomocou kódov ASCII (American Standard Code pre Information Interchange). Tabuľka kódov ASCII je uvedená nižšie. Napríklad na zobrazenie znaku „@“ musíme poslať hexadecimálny kód „40“. Ak dáme LCD hodnotu 0x73, zobrazí sa „s“. Takto pošleme príslušné kódy na LCD displej, aby sa zobrazil reťazec „ CIRCUITDIGEST “.
Vysvetlenie programovania:
Keď je všetko zapojené podľa schémy zapojenia, môžeme zapnúť PI a program napísať do PYHTONU.
Povieme si o niekoľkých príkazoch, ktoré použijeme v programe PYHTON, Chystáme sa importovať súbor GPIO z knižnice, funkcia nižšie nám umožňuje programovať GPIO piny PI. Premenujeme „GPIO“ na „IO“, takže v programe budeme kedykoľvek, keď budeme chcieť odkazovať na piny GPIO, použiť slovo „IO“.
importovať RPi.GPIO ako IO
Niekedy, keď piny GPIO, ktoré sa snažíme používať, môžu robiť nejaké ďalšie funkcie. V takom prípade dostaneme varovania počas vykonávania programu. Príkaz dole povie PI, aby ignoroval varovania a pokračoval v programe.
IO.setwarnings (False)
Môžeme označiť GPIO piny PI, buď číslom kolíka na doske, alebo počtom ich funkcií. Rovnako ako „PIN 29“ na doske je „GPIO5“. Takže tu hovoríme, že tu budeme špendlík reprezentovať číslom „29“ alebo „5“.
IO.setmode (IO.BCM)
Nastavujeme 10 pinov GPIO ako výstupné piny pre 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)
zatiaľ čo príkaz 1: sa používa ako slučka navždy, pomocou tohto príkazu sa príkazy v tejto slučke budú vykonávať nepretržite.
Všetky ďalšie funkcie a príkazy sú vysvetlené v nasledujúcej časti „Kód“ pomocou „Poznámky“.
Po napísaní programu a jeho vykonaní Raspberry Pi odosiela znaky na LCD jeden po druhom a LCD zobrazuje znaky na obrazovke.