- ADC0804 og Raspberry Pi:
- Nødvendige komponenter:
- Forklaring af kredsløb:
- Programmeringsforklaring:
- Arbejder:
Raspberry Pi er et ARM-arkitekturbaseret kort designet til elektroniske ingeniører og hobbyister. PI er en af de mest pålidelige projektudviklingsplatforme derude nu. Med højere processorhastighed og 1 GB RAM kan PI bruges til mange højt profilerede projekter som billedbehandling og Internet of Things.
For at udføre nogle af højt profilerede projekter skal man forstå de grundlæggende funktioner i PI. Vi vil dække alle de grundlæggende funktioner i Raspberry Pi i disse vejledninger. I hver tutorial vil vi diskutere en af funktionerne i PI. Ved afslutningen af denne Raspberry Pi Tutorial Series vil du være i stand til at lave projekter med høj profil alene. Gå igennem nedenstående vejledninger:
- Kom godt i gang med Raspberry Pi
- Raspberry Pi-konfiguration
- LED Blinkende
- Raspberry Pi-knapgrænseflade
- Raspberry Pi PWM generation
- Styring af jævnstrømsmotor ved hjælp af Raspberry Pi
- Stepper Motor Control med Raspberry Pi
- Interfacing Shift Register med Raspberry Pi
I denne vejledning vil vi interface en ADC (Analog til Digital konvertering) chip til Raspberry Pi. Vi kender alle parametrene for analog, betyder, at der varierer kontinuerligt over tid. Sig for en instansstemperatur i rummet, rumtemperaturen varierer kontinuerligt med tiden. Denne temperatur er forsynet med decimaltal. Men i den digitale verden er der ingen decimaltal, så vi er nødt til at konvertere den analoge værdi til den digitale værdi. Denne konverteringsproces udføres ved hjælp af ADC-teknik. Lær mere om ADC her: Introduktion til ADC0804
ADC0804 og Raspberry Pi:
Normale controllere har ADC-kanaler, men for PI er der ingen ADC-kanaler leveret internt. Så hvis vi vil interface nogen analoge sensorer, har vi brug for en ADC-konverteringsenhed. Så til det formål skal vi interface ADC0804 med Raspberry Pi.
ADC0804 er en chip designet til at konvertere analogt signal til 8 bit digitale data. Denne chip er en af de populære ADC-serier. Det er en 8bit konverteringsenhed, så vi har værdier eller 0 til 255 værdier. Med en målespænding på maksimalt 5V har vi en ændring for hver 19,5mV. Nedenfor er pinout af ADC0804:
Nu er en anden vigtig ting her, ADC0804 fungerer ved 5V, og det giver output i 5V logisk signal. I 8-pin output (repræsenterer 8bits) giver hver pin + 5V output til at repræsentere logisk'1 '. Så problemet er, at PI-logikken er på + 3.3v, så du kan ikke give + 5V-logik til + 3.3V GPIO-stiften på PI. Hvis du giver + 5V til en hvilken som helst GPIO-pin af PI, bliver kortet beskadiget.
Så for at nedtone det logiske niveau fra + 5V bruger vi spændingsdelerkredsløb. Vi har diskuteret Voltage Divider Circuit tidligere undersøgt det for yderligere afklaring. Hvad vi vil gøre er, vi bruger to modstande til at opdele + 5V-logik i 2 * 2,5V-logik. Så efter division vil vi give + 2.5v logik til PI. Så når logik '1' præsenteres af ADC0804, vil vi se + 2.5V ved PI GPIO Pin i stedet for + 5V.
Lær mere om GPIO Pins of Raspberry Pi her, og gennemgå vores tidligere tutorials.
Nødvendige komponenter:
Her bruger vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alle de grundlæggende hardware- og softwarekrav er tidligere diskuteret, du kan slå det op i Raspberry Pi Introduktion, bortset fra hvad vi har brug for:
- Tilslutningsstifter
- 220Ω eller 1KΩ modstand (17 stykker)
- 10K pot
- 0,1 µF kondensator (2 stk.)
- ADC0804 IC
- Brødbræt
Forklaring af kredsløb:
Det fungerer på forsyningsspænding på + 5v og kan måle et variabelt spændingsområde i området 0-5V.
De tilslutninger for samspil ADC0804 til Raspberry PI, er vist i kredsløbsdiagrammet ovenfor.
ADC har altid masser af støj, denne støj kan i høj grad påvirke ydeevnen, så vi bruger 0,1 uF kondensator til støjfiltrering. Uden dette vil der være store udsving ved output.
Chippen fungerer på RC (Resistor-Capacitor) oscillatorur. Som vist i kredsløbsdiagrammet danner C2 og R20 et ur. Den vigtige ting at huske her er, at kondensatoren C2 kan ændres til en lavere værdi for højere ADC-konverteringshastighed. Men med højere hastighed vil der være fald i nøjagtighed. Så hvis applikationen kræver højere nøjagtighed, skal du vælge kondensatoren med højere værdi og vælge højere kondensator med højere værdi.
Programmeringsforklaring:
Når alt er tilsluttet i henhold til kredsløbsdiagrammet, kan vi tænde PI for at skrive programmet i PYHTON.
Vi vil tale om få kommandoer, som vi skal bruge i PYHTON-programmet, Vi skal importere GPIO-filer fra biblioteket, nedenstående funktion giver os mulighed for at programmere GPIO-ben på PI. Vi omdøber også "GPIO" til "IO", så når vi vil henvise til GPIO-ben i programmet, bruger vi ordet 'IO'.
importer RPi.GPIO som IO
Nogle gange, når GPIO-stifterne, som vi prøver at bruge, udfører måske nogle andre funktioner. I så fald modtager vi advarsler, mens vi udfører programmet. Kommandoen nedenfor fortæller PI at ignorere advarslerne og fortsætte med programmet.
IO.setwarnings (Falsk)
Vi kan henvise GPIO-benene på PI, enten ved pin-nummer om bord eller ved deres funktionsnummer. Ligesom 'PIN 29' på tavlen er 'GPIO5'. Så vi fortæller her, enten skal vi repræsentere stiften her med '29' eller '5'.
IO.setmode (IO.BCM)
Vi indstiller 8 ben som inputstift. Vi registrerer 8 bit ADC-data ved hjælp af disse ben.
IO.opsætning (4, IO.IN) IO.opsætning (17, IO.IN) IO.opsætning (27, IO.IN) IO.opsætning (22, IO.IN) IO.opsætning (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
Hvis betingelsen i selerne er sand, vil udsagnene i sløjfen blive udført en gang. Så hvis GPIO-pin 19 går højt, udføres udsagnene inde i IF-sløjfen en gang. Hvis GPIO-stift 19 ikke går højt, udføres udsagnene inden i IF-sløjfen ikke.
hvis (IO.input (19) == True):
Nedenstående kommando bruges som evigt løkke, med denne kommando udføres udsagnene inde i denne løb kontinuerligt.
Mens 1:
Yderligere forklaring på programmet findes i kodeafsnittet nedenfor.
Arbejder:
Efter at have skrevet programmet og udført det vil du se '0' på skærmen. '0'betyder 0 volt ved indgang.
Hvis vi justerer 10K-potten, der er tilsluttet chippen, ser vi ændringen i værdierne på skærmen. Værdierne på skærmen fortsætter med at rulle kontinuerligt, det er de digitale værdier, der læses af PI.
Sig, hvis vi kommer puljen til midtpunktet, har vi + 2.5V ved ADC0804-indgangen. Så vi ser 128 på skærmen som vist nedenfor.
For + 5V analog værdi har vi 255.
Så ved at variere potten varierer vi spændingen fra 0 til + 5V ved ADC0804-indgangen. Med denne PI læser værdier fra 0-255. Værdierne er trykt på skærmen.
Så vi har grænsefladen ADC0804 til Raspberry Pi.