Raspberry Pi är ett ARM-arkitekturbaserat kort designat för elektroniska ingenjörer och hobbyister. PI är en av de mest betrodda projektutvecklingsplattformarna där ute nu. Med högre processorhastighet och 1 GB RAM kan PI användas för många högprofilerade projekt som bildbehandling och Internet of Things.
För att göra något av högprofilerade projekt måste man förstå de grundläggande funktionerna i PI. Vi kommer att täcka alla grundläggande funktioner i Raspberry Pi i dessa handledning. I varje handledning kommer vi att diskutera en av funktionerna i PI. I slutet av handledningsserien kommer du att kunna göra högprofilerade projekt själv. Kontrollera dessa för att komma igång med Raspberry Pi och Raspberry Pi Configuration.
Vi har diskuterat LED blinkande och knappgränssnitt med Raspberry Pi i tidigare handledning. I denna Raspberry Pi PWM-handledning kommer vi att prata om att få PWM-utdata med Raspberry Pi. PWM står för ' Pulse Width Modulation '. PWM är en metod som används för att få variabel spänning från konstant strömförsörjning. Vi kommer att generera PWM-signal från Raspberry PI och demonstrera PWM genom att variera ljusstyrkan på en LED, ansluten till Pi.
Pulsbreddsmodulering:
Vi har tidigare pratat om PWM många gånger i: Pulsbreddsmodulering med ATmega32, PWM med Arduino Uno, PWM med 555 timer IC och PWM med Arduino Due.
I figuren ovan, om strömbrytaren stängs kontinuerligt under en tidsperiod, kommer lysdioden att vara "PÅ" under denna tid kontinuerligt. Om omkopplaren är stängd i halv sekund och öppnas i nästa halv sekund, kommer lysdioden att lysa först under den första halva sekunden. Nu kallas andelen för vilken lysdioden lyser under den totala tiden Duty Cycle och kan beräknas enligt följande:
Driftscykel = Slå PÅ-tid / (Slå PÅ-tid + Stäng av tid)
Driftscykel = (0,5 / (0,5 + 0,5)) = 50%
Så den genomsnittliga utspänningen kommer att vara 50% av batterispänningen.
Detta är fallet under en sekund och vi kan se att lysdioden är släckt i halv sekund och lysdiod lyser den andra halva sekunden. Om frekvensen för PÅ och AV-tider ökade från '1 per sekund' till '50 per sekund '. Det mänskliga ögat kan inte fånga denna frekvens. För ett normalt öga kommer lysdioden att ses som lysande med hälften av ljusstyrkan. Så med ytterligare minskning av PÅ-tiden verkar lysdioden mycket ljusare.
Vi kommer att programmera PI för att få en PWM och ansluta en LED för att visa hur den fungerar.
Det finns 40 GPIO-utgångar i Raspberry Pi. Men av 40 kan endast 26 GPIO-stift (GPIO2 till GPIO27) programmeras. För att veta mer om GPIO-stift, gå igenom: LED blinkar med Raspberry Pi
Komponenter som krävs:
Här använder vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alla grundläggande hårdvaru- och mjukvarukrav har tidigare diskuterats, du kan slå upp det i Raspberry Pi Introduktion, annat än vad vi behöver:
- Anslutningsstift
- 220Ω eller 1KΩ motstånd
- LED
- Brödbräda
Kretsförklaring:
Som visas i kretsschemat ska vi ansluta en lysdiod mellan PIN35 (GPIO19) och PIN39 (jord). Som sagt tidigare kan vi inte dra mer än 15mA från någon av dessa stift, så för att begränsa strömmen ansluter vi ett 220Ω eller 1KΩ motstånd i serie med lysdioden.
Arbetsförklaring:
När allt är anslutet kan vi sätta på Raspberry Pi för att skriva programmet i PYHTON och köra det.
Vi kommer att prata om några kommandon som vi ska använda i PYHTON-programmet.
Vi ska importera GPIO-filer från biblioteket, nedanstående funktion gör att vi kan programmera GPIO-stift av PI. Vi döper också om "GPIO" till "IO", så i programmet när vi vill hänvisa till GPIO-stift kommer vi att använda ordet "IO".
importera RPi.GPIO som IO
Ibland, när GPIO-stiften, som vi försöker använda, kan göra några andra funktioner. I så fall får vi varningar när vi kör programmet. Kommandot nedan ber PI att ignorera varningarna och fortsätta med programmet.
IO.setwarnings (False)
Vi kan hänvisa GPIO-stift på PI, antingen med stiftnummer ombord eller med deras funktionsnummer. I stiftdiagrammet kan du se 'PIN 35' på tavlan är 'GPIO19'. Så vi berättar här antingen att vi kommer att representera nålen här med '35' eller '19'.
IO.setmode (IO.BCM)
Vi ställer in GPIO19 (eller PIN35) som utgångsstift. Vi kommer att få PWM-utdata från denna stift.
IO.setup (19, IO.IN)
Efter att ha ställt in stiftet som utgång måste vi ställa in stiftet som PWM-utgångsstift, p = IO.PWM (utgångskanal, PWM-signalfrekvens)
Ovanstående kommando är för att ställa in kanalen och även för att ställa in frekvensen för PWM-signalen. 'p' här är en variabel det kan vara vad som helst. Vi använder GPIO19 som PWM- utgångskanal . ' frekvens av PWM-signal ' har valts 100, eftersom vi inte vill att lysdioden ska blinka.
Nedanstående kommando används för att starta PWM-signalgenerering, ' DUTYCYCLE ' är för att ställa in Turn On-förhållandet, 0 betyder att LED kommer att vara PÅ i 0% av tiden, 30 betyder LED kommer att vara PÅ i 30% av tiden och 100 betyder helt PÅ.
p.start (DUTYCYCLE)
Detta kommando kör slingan 50 gånger, x ökas från 0 till 49.
för x i intervallet (50):
Medan 1: används för infinity loop. Med detta kommando kommer uttalandena i den här slingan att köras kontinuerligt.
När programmet körs ökar arbetscykeln för PWM-signalen. Och minskar sedan efter att ha nått 100%. När en lysdiod är ansluten till denna PIN-kod ökar lysdioden först och minskar sedan.