Domandina "didattica" da profano

Ok, abbiamo tutti imparato che i piedini PWM possono simulare una porta analogica con il comando analogwrite.
Il nostro led riesce a fare il fading e siamo tutti contenti di sfruttare un piedino digitale piuttosto che quelli analogici che sono di meno... ma c'è un motivo che non conosco per non usare un reale piedino analogico?

Inoltre provando lo sketch di esempio per il fade di un led, ho banalmente sostituito nel codice il pin digitale con il pin analogico A0. Provato con il tester il pin digitale mi da valori da 0v a 5v che crescono progressivamente e viceversa, mentre con il pin analogico ottengo 0v o 5v senza fading... cosa non ho capito?

Che i pin analogici funzionano in analogico solo in lettura. In uscita diventano digitali, 0 e 1, 0 e 5V, come hai constatato tu stesso.

probabilmente il pin digitale non era in output settato con low o high, e quindi leggi valori "strani"
il PWM non è un'uscita veramente analogica, ma tanti impulsi da 0 a 5V
di sefault la durata dell'impulso è 500Hz.
dai un'occhiata quì:

Ciao mechrekt

Il PWM é un segnale rettangolare con 490 Hz (nel caso del Arduino) dove la parte High deel segnale ha diverse durate ( da 0 a tutto il tempo). A metá ( valore 128) il rapporto HIGH e LOW é 50 %; metá tempo HIGH e metá tempo LOW. Se fai la media sul tempo la tensione varia da 0 a 5V in 256 passi o gradini. L' arduino UNO ha 6 Uscite "analogiche" PWM ( i Pin 3, 5, 6, 9, 10, e 11).
Per pilotare motori e LED é meglio un segnale PWM, perché la corrente elettrica viene sempre accesa e spenta e percui il transistore di potenza dissipa poco calore.

Per avere un reale uscita analogica che puó assumere tutti (tanti) valori di tensione tra 0 e 5V serve un Covertitore Digitale Analogico (DAC). L' arduino non ha un DAC integrato. Puoi comprarti uno e pilotarlo con Arduino.

Ciao Uwe

se ti stai chiedendo perché il tuo multimetro legge una tensione analogica, anziché saltare da 0V a 5V, quando misuri un pin PWM la spiegazione sta nel fatto che i multimetri per misurare le tensioni usano una tecnica chiamata a "doppia rampa" che non è velocissima e la lettura visualizzata è una sorta di media del segnale che stai misurando.

Grazie a tutti, adesso è tutto più chiaro.

Aggiungo questa cosa per chiarmi definitivamente l'aspetto: se devo collegare un led che lavora es. a 3v ad un pin digitale pwm, devo comunque mettere una resistenza perchè non lavori a 5V (anche se ad intervalli velocissimi di tempo) o posso regolare direttamente la tensione con una opportuna digitalwrite(153)?

up

puoi farlo ma non è consigliato, meglio usare il pin in "binario" (0-5V) e mettere una resistenza :wink:

Un LED ha (quasi) sempre bisogno di una resistenza per limitare la corrente. Eccezione solo se l' uscita funge da stabilizzatore di corrente.
Ciao Uwe