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?
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ì:
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.
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.
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)?