Raspberry Pi er et ARM-arkitekturbasert kort designet for elektroniske ingeniører og hobbyister. PI er en av de mest pålitelige plattformene for prosjektutvikling der ute nå. Med høyere prosessorhastighet og 1 GB RAM kan PI brukes til mange høyprofilerte prosjekter som bildebehandling og tingenes internett.
For å gjøre noen av høyprofilerte prosjekter, må man forstå de grunnleggende funksjonene til PI. Vi vil dekke alle de grunnleggende funksjonene til Raspberry Pi i disse opplæringene. I hver opplæring vil vi diskutere en av funksjonene til PI. Ved slutten av denne Raspberry Pi Tutorial Series, vil du kunne gjøre høyprofilerte prosjekter alene. Gå gjennom veiledningene nedenfor:
- Komme i gang med Raspberry Pi
- Raspberry Pi-konfigurasjon
- LED Blinky
- Raspberry Pi-knappegrensesnitt
- Raspberry Pi PWM generasjon
- Kontrollerer DC-motor ved hjelp av Raspberry Pi
- Stepper Motor Control med Raspberry Pi
- Interfacing Shift Register med Raspberry Pi
I denne opplæringen vil vi grensesnitt en ADC (Analog til Digital konvertering) -brikke til Raspberry Pi. Vi vet alle parametrene for analog, betyr at det varierer kontinuerlig over tid. Si for en forekomststemperatur i rommet, romtemperaturen varierer med tiden kontinuerlig. Denne temperaturen er utstyrt med desimaltall. Men i den digitale verden er det ingen desimaltall, så vi må konvertere den analoge verdien til den digitale verdien. Denne konverteringsprosessen gjøres ved hjelp av ADC-teknikk. Lær mer om ADC her: Introduksjon til ADC0804
ADC0804 og Raspberry Pi:
Normale kontrollere har ADC-kanaler, men for PI er det ingen ADC-kanaler gitt internt. Så hvis vi ønsker å grense noen analoge sensorer, trenger vi en ADC-konverteringsenhet. Så for det formålet skal vi grensesnitt ADC0804 med Raspberry Pi.
ADC0804 er en brikke designet for å konvertere analogt signal til 8-bits digitale data. Denne brikken er en av de populære seriene til ADC. Det er en 8bit konverteringsenhet, så vi har verdier eller 0 til 255 verdier. Med en målespenning på maksimalt 5V, vil vi ha en endring for hver 19,5mV. Nedenfor er Pinout av ADC0804:
En annen viktig ting her er at ADC0804 opererer på 5V, og det gir utgang i 5V logisk signal. I 8-pin utgang (som representerer 8bits) gir hver pin + 5V utgang for å representere logikk'1 '. Så problemet er at PI-logikken er på + 3.3v, så du kan ikke gi + 5V-logikk til + 3.3V GPIO-pinnen på PI. Hvis du gir + 5V til en hvilken som helst GPIO-pin av PI, blir kortet skadet.
Så for å trappe ned logikknivået fra + 5V, vil vi bruke spenningsdelerkrets. Vi har diskutert Voltage Divider Circuit tidligere undersøkt det for ytterligere avklaring. Det vi skal gjøre er, vi bruker to motstander for å dele + 5V-logikk i 2 * 2,5V-logikk. Så etter divisjon vil vi gi + 2.5v logikk til PI. Så når logikk '1' presenteres av ADC0804, vil vi se + 2.5V på PI GPIO Pin, i stedet for + 5V.
Lær mer om GPIO Pins of Raspberry Pi her og gå gjennom våre tidligere veiledninger.
Nødvendige komponenter:
Her bruker vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alle de grunnleggende maskinvare- og programvarekravene er tidligere diskutert, du kan slå opp i Raspberry Pi Introduksjon, annet enn det vi trenger:
- Koble pinner
- 220Ω eller 1KΩ motstand (17 deler)
- 10K pott
- 0,1 µF kondensator (2 stk)
- ADC0804 IC
- Brødtavle
Kretsforklaring:
Den fungerer på forsyningsspenning på + 5v og kan måle et variabelt spenningsområde i området 0-5V.
De forbindelser for samvirking ADC0804 til bringebær PI, er vist i koblingsskjemaet ovenfor.
ADC har alltid mye støy, denne støyen kan i stor grad påvirke ytelsen, så vi bruker 0.1uF kondensator for støyfiltrering. Uten dette vil det være store svingninger ved produksjonen.
Brikken fungerer på RC (Resistor-Capacitor) oscillatorklokke. Som vist i kretsskjemaet, danner C2 og R20 en klokke. Den viktige tingen å huske her er at kondensatoren C2 kan endres til en lavere verdi for høyere hastighet for ADC-konvertering. Men med høyere hastighet vil det være redusert nøyaktighet. Så hvis applikasjonen krever høyere nøyaktighet, velger du kondensatoren med høyere verdi og for høyere hastighet velger du kondensatoren med lavere verdi.
Programmeringsforklaring:
Når alt er koblet til i henhold til kretsskjemaet, kan vi slå PI på for å skrive programmet i PYHTON.
Vi vil snakke om få kommandoer som vi skal bruke i PYHTON-programmet, Vi skal importere GPIO-filer fra biblioteket, under funksjonen gjør det mulig for oss å programmere GPIO-pinner på PI. Vi omdøper også "GPIO" til "IO", så når vi vil referere til GPIO-pinner i programmet, bruker vi ordet "IO".
importer RPi.GPIO som IO
Noen ganger, når GPIO-pinnene, som vi prøver å bruke, gjør noen andre funksjoner. I så fall vil vi motta advarsler mens vi kjører programmet. Kommandoen nedenfor forteller PI å ignorere advarslene og fortsette med programmet.
IO.setwarnings (False)
Vi kan henvise GPIO-pinnene til PI, enten med pin-nummer om bord eller etter deres funksjonsnummer. Som 'PIN 29' på tavlen er 'GPIO5'. Så vi forteller her at enten skal vi representere nålen her med '29' eller '5'.
IO.setmode (IO.BCM)
Vi setter inn 8 pinner som inngangspinner. Vi vil oppdage 8 bit ADC-data ved hjelp av disse pinnene.
IO.oppsett (4, IO.IN) IO.oppsett (17, IO.IN) IO.oppsett (27, IO.IN) IO.oppsett (22, IO.IN) IO.oppsett (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
I tilfelle tilstanden i selene er sant, vil utsagnene i løkken utføres en gang. Så hvis GPIO-pin 19 går høyt, vil utsagnene i IF-sløyfen utføres en gang. Hvis GPIO-pinnen 19 ikke går høyt, vil ikke utsagnene i IF-sløyfen bli utført.
hvis (IO.input (19) == True):
Nedenfor brukes kommandoen som evig sløyfe, med denne kommandoen vil setningene i denne sløyfen utføres kontinuerlig.
Mens 1:
Ytterligere forklaring på programmet er gitt i kodeseksjonen nedenfor.
Jobber:
Etter at du har skrevet programmet og kjørt det, vil du se '0' på skjermen. '0' betyr 0 volt ved inngang.
Hvis vi justerer 10K potten som er koblet til brikken, vil vi se endringen i verdiene på skjermen. Verdiene på skjermen fortsetter å rulle kontinuerlig, dette er de digitale verdiene som PI leser.
Si at hvis vi kommer potten til midtpunktet, har vi + 2,5V på ADC0804-inngangen. Så vi ser 128 på skjermen som vist nedenfor.
For + 5V analog verdi vil vi ha 255.
Så ved å variere potten varierer vi spenningen fra 0 til + 5V ved ADC0804-inngangen. Med denne PI leseverdiene fra 0-255. Verdiene er trykt på skjermen.
Så vi har grensesnitt ADC0804 til Raspberry Pi.