Digital Pin e Analog Pin su Arduino Nano

Ciao a tutti!!!
Oggi vorrei porre una domanda per risolvere una mia confusione.
Fortunatamente non ho mai avuto mai bisogno fino ad oggi della funzione analogWrite(), ed ho sempre usato digitalWrite per attuatori e cose varie...
Oggi capito su un semplice tutorial per comandare le strisce led facendo uso di analogWrite(),
per l'esattezza questo:

Ed ho notato che usa come pin i pin digitali cioè quelli da d2 a d13, e non quelli analogici utilizzando la funzione analogWrite(). Ora sarò tardo io, ma ho sempre interpretato le I/O analogiche come I/O variabili, mentre i digitali hai I/O che ricevono/mandano o 5v o niente, tanto quanto 1 e 0.
Ma come è possibile variare un valore su un uscita digitale? devo comprendere quelle uscite digitali come un emulazione virtuale di un I/O analogica? e analogWrite() fa esattamente questa emulazione? scusate la domanda, ma ovviamente mi son trovato in una situazione di spiazzo e di incertezza.

NON esistono I/O analogiche, esistono solo dei pin che possono essere usati come INPUT analogico, ma nessun pin di Arduino UNO/Nano/Micro/Mini/MEGA è un vero OUTPUT analogico.

L'output viene simulato con dei pin PWM e con la funzione analogWrite() (... che sarebbe stato molto più corretto chiamare pwmWrite(), dato che di analogico non ha nulla).

Guglielmo

gpb01:
NON esistono I/O analogiche, esistono solo dei pin che possono essere usati come INPUT analogico, ma nessun pin di Arduino UNO/Nano/Micro/Mini/MEGA è un vero OUTPUT analogico.

L'output viene simulato con dei pin PWM e con la funzione analogWrite() (... che sarebbe stato molto più corretto chiamare pwmWrite(), dato che di analogico non ha nulla).

Guglielmo

Ah ok! grazie per la risposta! quindi alla fine concettualmente i vari D(2-13) ed A(1-7) alla fine è solo frutto di una scelta di nomenclatura stilistica, giusto?

phyr080:
Ah ok! grazie per la risposta! quindi alla fine concettualmente i vari D(2-13) ed A(1-7) alla fine è solo frutto di una scelta di nomenclatura stilistica, giusto?

Non esattamnete, SOLO i pin identificati come A0 .. An hanno la doppia possibilità di essere usati sia come I/O digitali che come input analogici, gli altri pin possono SOLO fare da I/O digitale.

Guglielmo

Adesso non so a quale progetto di quella pagina ti riferisci. Non ho trovato nessun progetto che usa tutti quei pin in modo PWM.
Arduino UNO ha 6 Pin che via Hardware con i 3 Time hanno la funzione PWM. Si puó anche simulare tale funzionalitá via Software e percui abilitare tutti i pin o anche un Shiftregister (c'é la libreria che fa quasto)

Un altra cosa sono i Ws2812. sono LED con un controller integrato che si pilotano con un pin e tutti messi in serie.

Ciao Uwe

uwefed:
Adesso non so a quale progetto di quella pagina ti riferisci. Non ho trovato nessun progetto che usa tutti quei pin in modo PWM.
Arduino UNO ha 6 Pin che via Hardware con i 3 Time hanno la funzione PWM. Si puó anche simulare tale funzionalitá via Software e percui abilitare tutti i pin o anche un Shiftregister (c'é la libreria che fa quasto)

Un altra cosa sono i Ws2812. sono LED con un controller integrato che si pilotano con un pin e tutti messi in serie.

Ciao Uwe

Ciao Uwe, allora come ho detto quella pagina praticamente tratta di un unico progetto per pilotare una striscia led RGB, e se leggi nel codice vedi che definisce i pin

#define RED_LED 6
#define BLUE_LED 5
#define GREEN_LED 9

E anche sull'imagine Fritzing vedi che i pin utilizzati son quelli in cima alla scheda, mentre gli analog sono in basso.
Ammetto di non averlo mai notato, seppur avendo un arduino uno dove è scritto in grande "Digital PWM", questa scheda mi è sempre rimasta chiusa nel cassetto, dato che in questi mesi mi son sempre lanciato in piccoli esperimenti sulle molteplici arduino nano in mio possesso.
A questo punto chiedo sempre se non disturbo con le mie domande da newbie elettronico(ho un passato da informatico/programmatore, ma nullo in elettronico), se avreste una bella fonte da passarmi(anche per nuiubbi) per comprendere al meglio il mondo PWM.
Ringrazio in Anticipo :slight_smile:

gpb01:
Non esattamnete, SOLO i pin identificati come A0 .. An hanno la doppia possibilità di essere usati sia come I/O digitali che come input analogici, gli altri pin possono SOLO fare da I/O digitale.

Guglielmo

Grazie ancora!!!

phyr080:
.... se avreste una bella fonte da passarmi(anche per nuiubbi) per comprendere al meglio il mondo PWM.

Puoi leggere QUI ... non è molto, ma spiega cosa è :wink:

Tutti gli altri approfondimenti sono ... piuttosto "tecnici" e richiedono una discreta conoscenza dell'HW della MCU ... ::slight_smile:

Guglielmo

gpb01:
Puoi leggere QUI ... non è molto, ma spiega cosa è :wink:

Tutti gli altri approfondimenti sono ... piuttosto "tecnici" e richiedono una discreta conoscenza dell'HW della MCU ... ::slight_smile:

Guglielmo

Ora leggo(e divoro), ma nel frattempo ho ricercato ed ho trovato questa "lezione" che tratta appunto abbastanza in maniera comprensibile:

Quindi, se ho ben capito alla fine la regolazione della luminosità del led, usando il duty cycle alla fine gioca solo su una illusione ottica percepita, giusto?

phyr080:
Quindi, se ho ben capito alla fine la regolazione della luminosità del led, usando il duty cycle alla fine gioca solo su una illusione ottica percepita, giusto?

Esatto … per la luce è così, per un motore gioca sull’inerzia, sulla potenza, ecc. ecc.

Guglielmo

gpb01:
Esatto ... per la luce è così, per un motore gioca sull'inerzia, sulla potenza, ecc. ecc.

Guglielmo

Grazie veramente tantissimo! cristallino!!!
belin mi hai cancellato ogni dubbio! bene bene, sperimento subito!
Ho finito con le domande :slight_smile:

gpb01:
Esatto ... per la luce è così, per un motore gioca sull'inerzia, sulla potenza, ecc. ecc.

Guglielmo

@phyr anche i motorini Lego si regolano la velocità con il pwm.