- ADC0804 ir Raspberry Pi:
- Būtini komponentai:
- Grandinės paaiškinimas:
- Programavimo paaiškinimas:
- Darbas:
„Raspberry Pi“ yra ARM architektūros procesoriaus plokštė, skirta elektronikos inžinieriams ir mėgėjams. PI yra viena iš labiausiai patikimų projektų kūrimo platformų. Turėdamas didesnį procesoriaus greitį ir 1 GB RAM, PI gali būti naudojamas daugeliui aukšto lygio projektų, tokių kaip vaizdo apdorojimas ir daiktų internetas.
Norint atlikti bet kurį iš aukšto rango projektų, reikia suprasti pagrindines PI funkcijas. Šiose pamokose aptarsime visas pagrindines „Raspberry Pi“ funkcijas. Kiekvienoje pamokoje aptarsime vieną iš PI funkcijų. Šios „ Raspberry Pi Tutorial“ serijos pabaigoje galėsite patys atlikti aukšto lygio projektus. Peržiūrėkite žemiau esančias pamokas:
- Darbo pradžia naudojant „Raspberry Pi“
- Aviečių Pi konfigūracija
- LED mirksi
- Aviečių Pi mygtuko sąsaja
- Aviečių Pi PWM karta
- Nuolatinės srovės variklio valdymas naudojant „Raspberry Pi“
- Žingsninio variklio valdymas su „Raspberry Pi“
- Sąveikaujantis „Shift“ registras su Raspberry Pi
Šioje pamokoje mes sujungsime ADC („Analog to Digital Conversion“) lustą su „Raspberry Pi“. Mes žinome visus analogo parametrus, tai reiškia, kad laikui bėgant jie nuolat kinta. Tarkime, pavyzdžiui, kambario temperatūra, kambario temperatūra nuolat kinta. Ši temperatūra pateikiama dešimtainiais skaičiais. Tačiau skaitmeniniame pasaulyje nėra dešimtainių skaičių, todėl turime konvertuoti analoginę vertę į skaitmeninę vertę. Šis konversijos procesas atliekamas ADC technika. Sužinokite daugiau apie ADC čia: ADC0804 įvadas
ADC0804 ir Raspberry Pi:
Įprasti valdikliai turi ADC kanalus, tačiau PI nėra ADC kanalų, teikiamų viduje. Taigi, jei norime susieti bet kokius analoginius jutiklius, mums reikia ADC konversijos bloko. Taigi tuo tikslu mes einame į sąsają ADC0804 su Raspberry Pi.
ADC0804 yra lustas, sukurtas konvertuoti analoginį signalą į 8 bitų skaitmeninius duomenis. Šis lustas yra viena iš populiariausių ADC serijų. Tai yra 8 bitų konversijos vienetas, todėl turime reikšmes arba nuo 0 iki 255 reikšmių. Kai matavimo įtampa yra didžiausia 5 V, mes turėsime pokyčius kiekvienam 19,5 mV. Žemiau yra ADC0804 Pinout:
Dabar dar vienas svarbus dalykas yra tai, kad ADC0804 veikia esant 5 V įtampai, taigi jis teikia išėjimą 5 V loginiu signalu. 8 kontaktų išvestyje (reprezentuojančioje 8 bitus) kiekvienas kaištis teikia + 5 V išvestį, kad atspindėtų logiką'1 '. Taigi problema yra ta, kad PI logika yra + 3,3 V, todėl jūs negalite suteikti + 5 V logikos PI + 3,3 V GPIO kaiščiui. Jei duosite + 5 V bet kuriam PI GPIO kaiščiui, plokštė bus pažeista.
Taigi, norėdami sumažinti loginį lygį nuo + 5 V, naudosime įtampos skirstytuvo grandinę. Aptarėme įtampos skirstytuvo grandinę, prieš tai ieškodami tolesnio paaiškinimo. Ką mes padarysime, mes naudojame du rezistorius, kad + 5 V logika būtų padalinta į 2 * 2,5 V logiką. Taigi po padalijimo suteiksime PI 2,5v logiką. Taigi, kai logiką „1“ pateikia ADC0804, PI GPIO kaište pamatysime + 2,5 V, o ne + 5 V.
Sužinokite daugiau apie „Raspberry Pi“ GPIO kaiščius čia ir peržiūrėkite ankstesnes mūsų pamokas.
Būtini komponentai:
Čia mes naudojame „ Raspberry Pi 2 Model B“ su „Raspbian Jessie OS“. Visi pagrindiniai aparatūros ir programinės įrangos reikalavimai buvo aptarti anksčiau, jų galite rasti „Raspberry Pi“ įvade, išskyrus mums reikalingą:
- Jungiamieji kaiščiai
- 220Ω arba 1KΩ rezistorius (17 vnt.)
- 10K puodas
- 0,1µF kondensatorius (2 vnt.)
- ADC0804 IC
- Bandomoji Lenta
Grandinės paaiškinimas:
Jis veikia esant maitinimo įtampai + 5v ir gali išmatuoti kintamą įtampos diapazoną 0-5V diapazone.
Kad sąsajos ADC0804 malinowego PI jungtys, yra parodyta pateiktą schemą aukščiau.
ADC visada turi daug triukšmo, šis triukšmas gali labai paveikti našumą, todėl triukšmo filtravimui naudojame 0,1uF kondensatorių. Be to bus daug svyravimų išėjime.
Lustas veikia su RC (rezistoriaus-kondensatoriaus) osciliatoriaus laikrodžiu. Kaip parodyta schemoje, C2 ir R20 sudaro laikrodį. Svarbu atsiminti, kad kondensatorius C2 gali būti pakeistas į mažesnę vertę, kad būtų pasiektas didesnis ADC konversijos greitis. Tačiau važiuojant didesniu greičiu sumažės tikslumas. Taigi, jei programai reikalingas didesnis tikslumas, pasirinkite didesnės vertės kondensatorių, o didesniam greičiui - mažesnės vertės kondensatorių.
Programavimo paaiškinimas:
Kai viskas bus prijungta pagal grandinės schemą, mes galime įjungti PI, kad programa būtų parašyta PYHTON.
Mes kalbėsime apie keletą komandų, kurias ketiname naudoti PYHTON programoje, Mes ketiname importuoti GPIO failą iš bibliotekos, žemiau pateikta funkcija leidžia mums užprogramuoti PI GPIO kaiščius. Mes taip pat pervadiname „GPIO“ į „IO“, todėl programoje, kai norime nurodyti GPIO kaiščius, naudosime žodį „IO“.
importuoti RPi.GPIO kaip IO
Kartais, kai GPIO kaiščiai, kuriuos bandome naudoti, gali atlikti kitas funkcijas. Tokiu atveju vykdydami programą gausime įspėjimus. Žemiau komanda liepia PI nepaisyti įspėjimų ir tęsti programą.
IO.setwarnings (False)
Mes galime nurodyti PI GPIO kaiščius pagal PIN kodą laive arba pagal jų funkcijos numerį. Kaip lentoje esantis „PIN 29“ yra „GPIO5“. Taigi mes sakome, kad čia mes smeigtuką atvaizduosime „29“ arba „5“.
IO.setmode (IO.BCM)
Mes nustatome 8 kaiščius kaip įvesties kaiščius. Pagal šiuos kaiščius aptiksime 8 bitų ADC duomenis.
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)
Jei sąlyga breketuose yra teisinga, sakiniai ciklo viduje bus vykdomi vieną kartą. Taigi, jei GPIO kaištis 19 eis aukštai, tada IF kilpos teiginiai bus vykdomi vieną kartą. Jei GPIO 19 kaištis nebus aukštas, teiginiai, esantys IF kilpos viduje, nebus vykdomi.
jei (IO.input (19) == Tiesa):
Žemiau komanda naudojama kaip amžinai kilpa, su šia komanda šios kilpos teiginiai bus vykdomi nuolat.
Nors 1:
Tolesnis programos paaiškinimas pateiktas žemiau esančiame Kodo skyriuje.
Darbas:
Parašę programą ir ją įvykdę, ekrane pamatysite „0“. „0“ reiškia 0 voltų įėjimo metu.
Jei sureguliuosime 10K puodą, prijungtą prie lusto, ekrane pamatysime verčių pasikeitimą. Ekrane esančios vertės nuolat slenka, tai yra skaitmeninės vertės, kurias skaito PI.
Tarkime, jei banką pasieksime iki vidurio taško, ADC0804 įvestyje turime + 2,5 V. Taigi ekrane matome 128, kaip parodyta žemiau.
+ 5 V analoginei vertei turėsime 255.
Taigi, keisdami puodą, ADC0804 įėjime kintame įtampą nuo 0 iki + 5 V. Su šiuo PI nuskaitykite reikšmes nuo 0 iki 255. Reikšmės spausdinamos ekrane.
Taigi mes turime sąsają su ADC0804 su Raspberry Pi.