- Sedem segmentový displej:
- Požadované komponenty:
- Vysvetlenie obvodu a práce:
- Vysvetlenie programovania:
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 návodov na Raspberry Pi sa budete môcť naučiť Raspberry Pi a robiť dobré projekty sami. Prejdite si nižšie uvedené návody:
- Začíname s Raspberry Pi
- Konfigurácia Raspberry Pi
- LED Blinky
- Rozhranie tlačidla
- Generácia PWM Raspberry Pi
- Rozhranie LCD s Raspberry Pi
- 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 výučbe sa chystáme urobiť prepojenie segmentového zobrazenia Raspberry Pi 7. Sedem segmentové displeje sú najlacnejšie pre zobrazovaciu jednotku. Niekoľko týchto segmentov naskladaných dohromady by sa dalo použiť na zobrazenie teploty, hodnoty počítadla atď. Pripojíme 7-segmentovú zobrazovaciu jednotku k GPIO PI a riadime ich podľa toho tak, aby zobrazovali číslice. Potom napíšeme program do PYTHONU pre sedem segmentové zobrazenie, ktoré bude počítať od 0-9 a vynuluje sa.
Sedem segmentový displej:
Existujú rôzne typy a veľkosti 7 segmentových displejov. Sedem segmentom sme sa tu podrobne venovali. V zásade existujú dva typy 7 segmentov, spoločný anódový typ (spoločný pozitívny alebo spoločný VCC) a spoločný katódový typ (spoločný negatív alebo spoločný zem).
Spoločná anóda (CA): V tomto sú všetky záporné svorky (katódy) všetkých 8 LED diód spojené dohromady (pozri schému nižšie), pomenované ako COM. A všetky kladné svorky zostávajú samy.
Spoločná katóda (CC): V tomto sú všetky kladné svorky (anódy) všetkých 8 LED diód spojené dohromady, pomenované ako COM. A všetky negatívne termiky zostávajú samy.
Tieto sedemsegmentové displeje CC a CA prichádzajú veľmi vhod pri multiplexovaní niekoľkých buniek dohromady. V našom výučbe použijeme CC alebo Common Cathode Seven Segment Display.
Už sme prepojili 7 segmentov s 8051, s Arduino a s AVR. V mnohých našich projektoch sme tiež použili 7-segmentový displej.
Než pôjdeme ďalej, trochu si povieme niečo o Raspberry 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), viď obrázok nižšie. Niektoré z týchto pinov vykonávajú niektoré špeciálne funkcie. Keď odložíme špeciálne GPIO, zostane nám 17 GPIO.
Signál GPIO (pin 1 alebo 17) +3,3 V stačí na napájanie 7-segmentového displeja. Aby sme zaistili prúdový limit, použijeme pre každý segment rezistor 1KΩ, ako je znázornené na schéme zapojenia.
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
- Spoločný 7-segmentový displej Cathode (LT543)
- 1KΩ rezistor (8 kusov)
- Nepál
Vysvetlenie obvodu a práce:
Pripojenia, ktoré sa vykonávajú pre prepojenie 7 segmentového displeja na Raspberry Pi, sú uvedené nižšie. Tu sme použili segment Common Cathode 7:
PIN1 alebo e ------------------ GPIO21
PIN2 alebo d ------------------ GPIO20
PIN4 alebo c ------------------ GPIO16
PIN5 alebo h alebo DP ---------- GPIO 12 // nie je povinné, pretože nepoužívame desatinnú čiarku
PIN6 alebo b ------------------ GPIO6
PIN7 alebo ------------------ GPIO13
PIN9 alebo f ------------------ GPIO19
PIN10 alebo g ---------------- GPIO26
PIN3 alebo PIN8 ------------- pripojený k zemi
Budeme teda používať 8 GPIO pinov PI ako 8bitový PORT. GPIO13 je LSB (najmenej významný bit) a GPIO 12 je MSB (najvýznamnejší bit).
Teraz, ak chceme zobraziť číslom "1", je potrebné, aby napájací segmentov B a C. Na napájanie segmentov B a C potrebujeme napájať GPIO6 a GPIO16. Bajt pre funkciu „PORT“ bude teda 0b00000110 a hexadecimálna hodnota „PORT“ bude 0x06. Keď sú oba kolíky vysoko, zobrazí sa „1“.
Hodnoty pre každú číslicu, ktoré sa majú zobraziť, sme zapísali a tieto hodnoty sme uložili do reťazca znakov s názvom „DISPLAY“ (Skontrolujte sekciu Kód nižšie). Potom sme tieto hodnoty nazývali jednu po druhej, aby sme pomocou funkcie „PORT“ zobrazili na displeji príslušnú číslicu.
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 8 pinov GPIO ako výstupné piny pre Data a Control piny na LCD.
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
V prípade, že je podmienka v zložených zátvorkách pravdivá, príkazy vo vnútri cyklu sa vykonajú raz. Ak je teda bit0 8-bitového „kolíka“ pravdivý, PIN13 bude VYSOKÝ, inak bude PIN13 LOW. Máme osem „ak ešte“ podmienok pre bit0 až bit7, takže príslušná LED vo vnútri 7-segmentového displeja môže byť nastavená na High alebo Low, aby sa zobrazilo príslušné číslo.
if (pin & 0x01 == 0x01): IO.output (13,1) else: IO.output (13,0)
Tento príkaz vykoná slučku 10 krát, x sa zvýši od 0 do 9.
pre x v rozsahu (10):
Nasledujúci príkaz sa používa ako večná slučka, s týmto príkazom sa budú príkazy vo vnútri tejto slučky vykonávať nepretržite.
Zatiaľ čo 1:
Všetky ďalšie funkcie a príkazy sú vysvetlené v nasledujúcej časti „Kód“ pomocou „Poznámky“.
Po napísaní a vykonaní programu Raspberry Pi spustí príslušné GPIO, aby zobrazili číslicu na 7-segmentovom displeji. Program je napísaný tak, aby počítal nepretržite od 0 do 9.