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 opplæringsserien vil du kunne gjøre høyprofilerte prosjekter alene. Sjekk disse for å komme i gang med Raspberry Pi og Raspberry Pi Configuration.
Vi har diskutert LED blinkende og Button-grensesnitt med Raspberry Pi i tidligere veiledninger. I denne Raspberry Pi PWM-opplæringen vil vi snakke om å få PWM-utgang med Raspberry Pi. PWM står for ' Pulse Width Modulation '. PWM er en metode som brukes for å få variabel spenning ut av konstant strømforsyning. Vi vil generere PWM-signal fra Raspberry PI og demonstrere PWM ved å variere lysstyrken til en LED, koblet til Pi.
Pulsbreddemodulering:
Vi har tidligere snakket om PWM mange ganger i: Pulsbreddemodulering med ATmega32, PWM med Arduino Uno, PWM med 555 timer IC og PWM med Arduino Due.
I figuren ovenfor, hvis bryteren er stengt kontinuerlig over en periode, vil LED-lampen være 'PÅ' i løpet av denne tiden kontinuerlig. Hvis bryteren er lukket i et halvt sekund og åpnet i neste halve sekund, vil LED bare være PÅ i det første halvdelen av et sekund. Nå kalles andelen som lysdioden er PÅ over den totale tiden Duty Cycle, og kan beregnes som følger:
Driftssyklus = Slå på tid / (Slå på tid + slå av tid)
Driftssyklus = (0,5 / (0,5 + 0,5)) = 50%
Så den gjennomsnittlige utgangsspenningen vil være 50% av batterispenningen.
Dette er tilfelle i ett sekund, og vi kan se at lysdioden er slukket i et halvt sekund og lysdioden er på den andre halvdelen. Hvis frekvensen av PÅ og AV-ganger økte fra '1 per sekund' til '50 per sekund '. Det menneskelige øye kan ikke fange denne frekvensen. For et normalt øye vil LED-en ses som lysende med halvparten av lysstyrken. Så med ytterligere reduksjon av PÅ-tid ser LED-en ut som mye lysere.
Vi vil programmere PI for å få en PWM og koble til en LED for å vise at den fungerer.
Det er 40 GPIO-utgangspinner i Raspberry Pi. Men av 40 kan bare 26 GPIO-pinner (GPIO2 til GPIO27) programmeres. For å vite mer om GPIO-pinner, gå gjennom: LED blinker med Raspberry Pi
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
- LED
- Brødtavle
Kretsforklaring:
Som vist i kretsskjemaet skal vi koble en LED mellom PIN35 (GPIO19) og PIN39 (bakken). Som sagt tidligere, kan vi ikke trekke mer enn 15mA fra noen av disse pinnene, så for å begrense strømmen kobler vi en 220Ω eller 1KΩ motstand i serie med LED.
Arbeidsforklaring:
Når alt er koblet til, kan vi slå på Raspberry Pi for å skrive programmet i PYHTON og utføre det.
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. I pin-diagram kan du se 'PIN 35' på tavlen er 'GPIO19'. Så vi forteller her enten at vi skal representere nålen her med '35' eller '19'.
IO.setmode (IO.BCM)
Vi setter GPIO19 (eller PIN35) som utgangsnål. Vi får PWM-utgang fra denne pinnen.
IO.setup (19, IO.IN)
Etter å ha stilt pinnen som utgang, må vi sette opp pinnen som PWM-utgangspinne, p = IO.PWM (utgangskanal, frekvens av PWM-signal)
Ovennevnte kommando er for å sette opp kanalen og også for å sette opp frekvensen til PWM-signalet. 'p' her er en variabel det kan være hva som helst. Vi bruker GPIO19 som PWM- utgangskanal . ' frekvens av PWM-signal ' er valgt 100, ettersom vi ikke vil se at LED blinker.
Kommandoen nedenfor brukes til å starte generering av PWM-signal, ' DUTYCYCLE ' er for innstilling av Turn On ratio, 0 betyr at LED vil være PÅ i 0% av tiden, 30 betyr at LED vil være PÅ i 30% av tiden og 100 betyr helt PÅ.
p.start (DUTYCYCLE)
Denne kommandoen utfører sløyfen 50 ganger, x økes fra 0 til 49.
for x innen rekkevidde (50):
Mens 1: brukes til uendelig sløyfe. Med denne kommandoen vil utsagnene i denne sløyfen utføres kontinuerlig.
Når programmet kjøres, øker driftssyklusen til PWM-signalet. Og deretter avtar etter å ha nådd 100%. Når en LED er koblet til denne PIN-koden, øker lysstyrken på LED først og deretter avtar.