Hvor mange PWM -pinner på Arduino Uno

Hvor mange PWM -pinner på Arduino Uno
PWM er et forkortelse av pulsbreddemodulasjon som brukes til å få produksjon i pulserende signaler eller for å lage en firkantet bølgeutgang. Ved hjelp av denne teknikken kan vi grensesnittanaloge enheter med Arduino gjennom digitale midler. Arduino tilbyr flere måter å grensesnitt periferiutstyr med det. PWM er en av dem som skal kontrollere enheter som Servo Motors, DC Motors og andre analoge moduler.

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:

  • Frekvens: PWM -signalfrekvens betegner hvor rask en syklus vil være fullført. Alternativt bestemmer frekvensen av PWM hvor raskt utgangssignalet vil veksle mellom høy og lav tilstand.
  • Duty Cycle: Den beskriver hvor mye tid som et utgangssignal forblir i høy tilstand i prosent av total tid som kreves for å fullføre en syklus.

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:

  • Pin: Pin hvis verdi skal settes.
  • Verdi: Den beskriver pliktsyklusen mellom 0 som er lav tilstand og 255 som er høy eller på staten.

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:

  • AnalogWrite (0) betyr et PWM -signal som har 0% driftssyklus.
  • AnalogWrite (127) betyr et PWM -signal som har 50% pliktsyklus.
  • AnalogWrite (255) betyr et PWM -signal som har 100% driftssyklus.

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.