PWM con Arduino
PWM in Arduino ha una vasta gamma di applicazioni utilizzate per controllare i dispositivi analogici utilizzando segnali digitali. L'output di Arduino Digital Pins può essere classificato in due livelli di tensione alti o bassi o bassi che indica 0V. Usando PWM in Arduino possiamo generare un segnale con frequenza costante ma con larghezza variabile di impulso. L'esempio più comune di uso di PWM in Arduino è il controllo della luminosità di un LED e il controllo della velocità di un motore.
Il segnale di modulazione della larghezza dell'impulso ha seguenti due caratteristiche:
Pin pwm su Arduino Uno
Arduino Uno ha un totale di 14 pin di uscita di input digitale, tra questi pin digitali 6 pin PWM sono disponibili su Arduino Uno Board. Su Arduino Uno Pins digitali I/O 3, 5, 6, 9, 10 e 11 sono pin PWM. Il numero di pin PWM varia da una tavola all'altra.
La contro -velocità in Arduino determina la frequenza dei segnali PWM. In Arduino Uno Counter Clock è uguale all'orologio di sistema diviso per il valore dei presiccatori. Tre prescaler immagazzinano il valore del contatore. Questi tre prescaler sono noti come: CS02, CS01 e CS00. Poiché il numero totale di pin PWM è 6, quindi tre registri contabili vengono utilizzati in Arduino Uno con prescaler separati per controllare i pin PWM.
Registri del timer/contatore | Pin pwm |
---|---|
TCCR0B | Controlla il pin 6 e 5 |
TCCR1B | Controlla il pin 9 e 10 |
TCCR2B | Controlla il pin 11 e 3 |
Ognuno di questi tre registri può configurare tre diversi intervalli di frequenza per i segnali PWM. Normalmente per impostazione predefinita un Arduino Uno ha le seguenti frequenze per i pin PWM:
Pins Arduino | Frequenza PWM |
---|---|
5 e 6 | 980MHz |
9, 10,11 e 3 | 500 MHz |
Come usare i pin PWM in Arduino
I pin digitali su Arduino possono essere configurati utilizzando pinMode (), DigitalRead () E DigitalWrite (). Qui la funzione pinMode () imposta un pin come input e output. Quando configuriamo i pin digitali come la funzione di input digitalRead () viene utilizzato durante l'impostazione di un pin come funzione DigitalWrite () di uscita.
AnalogWrite ()
Per configurare i pin PWM che utilizziamo AnalogWrite () funzione. Questa funzione scrive un valore analogico a un pin digitale. Può impostare il ciclo di servizio del segnale PWM. Quando la funzione AnalogWrite viene chiamata su un pin specifico, viene generata un'onda quadra costante con ciclo di lavoro definito. Questa ondata quadrata rimarrà lì fino a quando non chiamiamo una nuova funzione AnalogWrite () per quel pin o scriviamo un nuovo valore usando la funzione digitaleRead () o DigitalWrite ().
Sintassi
analogwrite (pin, valore)
La funzione AnalogWrite () richiede due argomenti:
Un altro argomento che è facoltativo in caso di PWM è la frequenza. Se questo non è specificato per impostazione predefinita, è 500Hz.
Il valore AnalogWrite () definisce il ciclo di lavoro per i segnali PWM:
Conclusione
PWM in Arduino è una tecnica o un metodo per controllare i dispositivi analogici utilizzando segnali digitali. Tutte le schede Arduino hanno pin PWM a bordo. Sono presenti 6 spille da pwm Uno tra i 14 pin digitali totali. Qui abbiamo discusso di come possiamo configurare questi pin usando la funzione AnalogWrite () in Arduino Uno.