PWM med Arduino
PWM i Arduino har et bredt spekter av applikasjoner som brukes til å kontrollere analoge enheter ved hjelp av digitale signaler. Arduino digitale pinsutgang kan kategoriseres i to spenningsnivåer enten høye, som er 5V eller lavt som betegner 0v. Ved hjelp av PWM i Arduino kan vi generere et signal med konstant frekvens, men med variabel bredde på puls. Det vanligste eksemplet på PWM -bruk i Arduino kontrollerer lysstyrken til en LED og kontrollerer hastigheten på en motor.
Pulsbreddemodulasjonssignal har følgende to egenskaper:
PWM -pinner på Arduino Uno
Arduino UNO har totalt 14 digitale inngangsutgangspinner, av disse digitale pinnene 6 PWM -pinner er tilgjengelige på Arduino Uno Board. På Arduino Uno Digital I/O -pinner 3, 5, 6, 9, 10 og 11 er PWM -pinner. Antall PWM -pinner varierer fra ett brett til et annet.
Mothastighet i Arduino bestemmer hyppigheten av PWM -signaler. I Arduino er UNO -tellerklokke lik systemklokke delt på prescalers verdi. Tre prescalers lagrer verdien av motregisteret. Disse tre prescalers er kjent som: CS02, CS01 og CS00. Ettersom det totale antallet PWM -pinner er 6, så brukes tre motregistre i Arduino Uno som har separate prescalers for å kontrollere PWM -pinner.
Timer/teller registre | PWM -pinner |
---|---|
Tccr0b | Kontroller pinne 6 og 5 |
Tccr1b | Kontroller pinne 9 og 10 |
Tccr2b | Kontroller pinne 11 og 3 |
Hver av disse tre registerene kan konfigurere tre forskjellige frekvensområder for PWM -signaler. Normalt som standard har en Arduino Uno følgende frekvenser for PWM -pinner:
Arduino -pinner | PWM -frekvens |
---|---|
5 og 6 | 980MHz |
9, 10,11 og 3 | 500MHz |
Hvordan bruke PWM -pinner i Arduino
Digitale pinner på Arduino kan konfigureres ved hjelp av pinmode (), DigitalRead () og DigitalWrite (). Her angir PinMode () -funksjonen en pinne som inngang og utgang. Når vi konfigurerer digitale pinner som input digitalRead () brukes funksjonen mens du setter en PIN -kode som Output DigitalWrite () -funksjonen brukes.
AnalogWrite ()
For å konfigurere PWM -pinner vi bruker AnalogWrite () funksjon. Denne funksjonen skriver en analog verdi til en digital pin. Det kan angi PWM -signalpliktsyklus. Når analogwrite -funksjonen blir kalt på en spesifikk pinne, genereres en jevn firkantbølge med definert pliktsyklus. Denne firkantede bølgen vil forbli der til vi kaller en ny analogWrite () -funksjon for den pinnen eller skriver en ny verdi ved hjelp av DigitalRead () eller DigitalWrite () -funksjonen.
Syntaks
AnalogWrite (pin, verdi)
AnalogWrite () -funksjonen tar to argumenter:
Et annet argument som er valgfritt i tilfelle av PWM er frekvens. Hvis dette ikke er spesifisert som standard, er det 500Hz.
AnalogWrite () -verdien definerer pliktsyklusen for PWM -signaler:
Konklusjon
PWM i Arduino er en teknikk eller metode for å kontrollere analoge enheter ved hjelp av digitale signaler. Alle Arduino -tavlene har PWM -pinner om bord. 6 PWM -pinner er til stede i Uno av totalt 14 digitale pinner. Her diskuterte vi hvordan vi kan konfigurere disse pinnene ved å bruke analogWrite () -funksjonen i Arduino Uno.