- ADC0804 a Raspberry Pi:
- Požadované komponenty:
- Vysvetlenie obvodu:
- Vysvetlenie programovania:
- Pracovné:
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 môže byť PI použitý pre mnoho významných projektov, ako je spracovanie obrazu a internet vecí.
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 Raspberry Pi
- Generácia PWM Raspberry Pi
- Ovládanie jednosmerného motora pomocou Raspberry Pi
- Ovládanie krokového motora s Raspberry Pi
- Prepojenie posunovej registrácie s Raspberry Pi
V tomto tutoriáli prepojíme čip ADC (analógovo-digitálny prevod) s Raspberry Pi. Poznáme všetky parametre analógu, to znamená, že sa tam priebežne menia. Povedzme napríklad teplotu miestnosti, teplota v miestnosti sa neustále mení. Táto teplota je poskytnutá s desatinnými číslami. Ale v digitálnom svete neexistujú desatinné čísla, takže musíme previesť analógovú hodnotu na digitálnu hodnotu. Tento proces premeny sa uskutočňuje technikou ADC. Viac informácií o ADC sa dozviete tu: Úvod do ADC0804
ADC0804 a Raspberry Pi:
Normálne radiče majú kanály ADC, ale pre PI nie sú interne poskytované žiadne kanály ADC. Takže ak chceme prepojiť akékoľvek analógové snímače, potrebujeme prevodnú jednotku ADC. Z tohto dôvodu teda ideme na rozhranie ADC0804 s Raspberry Pi.
ADC0804 je čip určený na prevod analógového signálu na 8-bitové digitálne dáta. Tento čip je jednou z populárnych sérií ADC. Je to 8bitová prevodná jednotka, takže máme hodnoty alebo 0 až 255 hodnôt. S meracím napätím maximálne 5V budeme mať zmenu za každých 19,5mV. Nižšie je Pinout z ADC0804:
Ďalšou dôležitou vecou je, že ADC0804 pracuje pri 5 V, a preto poskytuje výstup v 5 V logickom signáli. Na 8 pinovom výstupe (predstavuje 8 bitov) poskytuje každý pin + 5 V výstup, ktorý predstavuje logiku '1'. Takže problém je v tom, že PI logika je +3,3 V, takže nemôžete dať + 5V logiku na +3,3 V GPIO pin PI. Ak dáte + 5 V akémukoľvek pinu GPIO PI, doska sa poškodí.
Takže na zostupnú logickú úroveň z + 5 V budeme používať obvod deliča napätia. Diskutovali sme o obvode Divider Divider Circuit, ktorý sme predtým podrobnejšie preskúmali. Čo urobíme je, že pomocou dvoch rezistorov rozdelíme logiku + 5V na 2 * 2,5V logiku. Takže po rozdelení dáme PI + 2,5v logiku. Takže kedykoľvek ADC0804 predstavuje logiku „1“, uvidíme na PI GPIO Pin + 2,5 V namiesto + 5 V.
Získajte viac informácií o pinoch GPIO Raspberry Pi tu a prečítajte si naše predchádzajúce návody.
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
- 220Ω alebo 1KΩ rezistor (17 kusov)
- 10K hrniec
- Kondenzátor 0,1µF (2 kusy)
- ADC0804 IC
- Chlebová doska
Vysvetlenie obvodu:
Funguje na napájacie napätie + 5 V a dokáže merať premenlivý rozsah napätia v rozsahu 0-5 V.
Tieto prípojky pre prepojenie ADC0804 na Raspberry Pi, sú uvedené v schéme zapojenia vyššie.
ADC má vždy veľa šumu, tento šum môže výrazne ovplyvniť výkon, takže na filtráciu šumu používame kondenzátor 0,1uF. Bez toho bude veľa kolísania na výstupe.
Čip pracuje na RC (Resistor-Capacitor) oscilátorových hodinách. Ako je znázornené na schéme zapojenia, C2 a R20 tvoria hodiny. Tu je dôležité pamätať na to, že kondenzátor C2 je možné zmeniť na nižšiu hodnotu pre vyššiu rýchlosť konverzie ADC. S vyššou rýchlosťou však dôjde k poklesu presnosti. Pokiaľ teda aplikácia vyžaduje vyššiu presnosť, zvoľte kondenzátor s vyššou hodnotou a pre vyššiu rýchlosť zvoľte kondenzátor s nižšou hodnotou.
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 ako vstupné piny. Podľa týchto pinov detekujeme 8 bitov dát ADC.
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
V prípade, že je podmienka v zložených zátvorkách pravdivá, príkazy vo vnútri cyklu sa vykonajú raz. Takže ak pin 19 GPIO stúpne, potom sa príkazy vo vnútri slučky IF vykonajú raz. Pokiaľ GPIO pin 19 nejde vysoko, potom sa príkazy vo vnútri IF cyklu nebudú vykonávať.
if (IO.input (19) == True):
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:
Ďalšie vysvetlenie programu je uvedené v časti venovanej kódu.
Pracovné:
Po napísaní a vykonaní programu sa na obrazovke zobrazí „0“. „0“ znamená 0 voltov na vstupe.
Ak nastavíme 10K banku pripojenú k čipu, uvidíme zmenu hodnôt na obrazovke. Hodnoty na obrazovke sa neustále pohybujú, jedná sa o digitálne hodnoty načítané PI.
Povedzme, že ak dostaneme banku do stredu, máme na vstupe ADC0804 + 2,5 V. Na obrazovke teda vidíme 128, ako je znázornené nižšie.
Pre analógovú hodnotu + 5V budeme mať 255.
Takže zmenou hrnca meníme napätie od 0 do + 5 V na vstupe ADC0804. S týmto PI načítajte hodnoty od 0 do 255. Hodnoty sa vytlačia na obrazovku.
Takže sme pripojili ADC0804 k Raspberry Pi.