Stavo guardando il mio Arduino Uno e ho notato che il simbolo da pin digitali 11
, 10
, 9
, 6
, 5
, e 3
. Cosa significano questi? Ciò influisce sul modo in cui funziona? Non posso usare questi pin in determinate situazioni?
Stavo guardando il mio Arduino Uno e ho notato che il simbolo da pin digitali 11
, 10
, 9
, 6
, 5
, e 3
. Cosa significano questi? Ciò influisce sul modo in cui funziona? Non posso usare questi pin in determinate situazioni?
Risposte:
Rilassare. Non ti preoccupare. Questi pin sono chiamati PWM
e sono uguali agli altri pin, tranne per il fatto che hanno un "bonus aggiunto".
Alcuni usi dal sito Web di Arduino :
- Dimmerare un LED
- Simula un'uscita analogica. L'uscita continua a passare digitalmente da 0 V a 5 V. Tuttavia, filtro passa basso (condensatore e resistenza) per simulare tensioni analogiche.
- Generazione di segnali audio.
- Fornire controllo di velocità variabile per i motori.
- Generazione di un segnale modulato, ad esempio per pilotare un LED a infrarossi per un telecomando.
Come funziona:
I pin PWM sono controllati da timer on-chip che attivano / disattivano i pin automaticamente a una velocità di circa 490Hz. La "Pulse Width Modulation" (PWM) indica per quanto tempo il pin rimane acceso o spento per un singolo ciclo di quella frequenza. Questo può oscurare un LED dando l'illusione che sia a metà della luminosità di prima, dove sta davvero lampeggiando molto rapidamente.
Quando è presente un ciclo di funzionamento del 25%, è attivo un quarto del tempo. Se lo utilizzassi per un LED, sembrerebbe circa 1/4 come luminoso [dare o prendere]. (Nota: come alcune persone hanno sottolineato, questo non è veramente proporzionale, ma lasciamolo così per semplicità. ES: il 25% non è sempre 1/4 della luminosità.)
(Se sei veramente esperto di elettricità, probabilmente potresti aggiungere un condensatore per renderlo anche un'uscita analogica.)
Come utilizzare questi pin per l'output:
Innanzitutto, è necessario definire il pin come output. Quindi, lo usi
analogWrite(ledPin, 128);
per avviarlo. Il ledPin
è il perno PWM che si desidera avviare PWM e 128
dovrebbe essere sostituito con un numero compreso tra 0
e 255
; 0
: 0% duty cycle
(Trasforma il perno completamente spento) e 255
: 100% duty cycle
. (accende il perno completamente)
Fonte: http://www.arduino-tutorials.com/arduino-pwm/
Perché non posso semplicemente accendere e spegnere la luce molto velocemente nel mio codice ?:
Tecnicamente, tuttavia, ci sono alcuni problemi:
Non farà davvero molta differenza se l'unico scopo dell'Arduino è generare segnali PWM. Tuttavia, se si inseriscono ritardi più lunghi di 50 MS nel loop principale, si rovinano i tempi. Con l'approccio software si vorrebbe eliminare qualsiasi funzione di "ritardo" poiché Arduino funziona solo su un thread (può fare solo una cosa alla volta). Se sai cosa stai facendo, non farà molta differenza attenuare la luce, ma se hai un pin extra con PWM, stai solo perdendo tempo con un approccio software.
Come altri hanno sottolineato:
Hai ancora bisogno di una resistenza per i tuoi circuiti per limitare la corrente e la tensione. Non puoi saltare questo.
Un malinteso comune sui pin PWM è che quando si utilizza PWM, non è necessario utilizzare resistori di limitazione della corrente (con LED, ad esempio).
Questo non è vero. I pin PWM dovrebbero essere pensati come pin digitali, che si accendono e si spengono automaticamente. Ciò significa che vanno alla stessa ALTA tensione di tutti gli altri pin.
Quando si utilizzano LED con PWM, è necessario utilizzare ancora resistori di limitazione della corrente. Quando si utilizzano motori con PWM, è consigliabile (quasi sempre) utilizzare un transistor.