Buongiorno, avrei bisogno di un supporto per un problema che credo sia banale, ma sono ancora troppo principiante per risolverlo da solo. Sto seguendo il corso di Paul McWhorter su YouTube.
Problema: c’è un led che si brucia e non ne comprendo il motivo.
Cosa vorrei fare: un led che cambia brillantezza in base ad un potenziometro
Cosa ho fatto:
C’è un potenziometro da 10KOhm collegato ad un led tramite una resistenza da 220Ohm come da schema seguente: Nuova-immagine-bitmap hosted at ImgBB — ImgBB
Sul centrale del potenziometro ho collegato anche un cavo per verificare il voltaggio tramite l’ingresso analogico A0 e il comando analogRead.
Il polo positivo collegato sui 5V di Arduino.
Arduino collegato ad un PC tramite porta USB.
Domanda: perché devo usare anche una resistenza da 220 Ohm prima del LED?
Se non la metto, il led brucia quando il potenziometro è “al massimo”, ma non ne comprendo il motivo.
Se calcolo l’intensità di corrente tramite la I° legge di Ohm, osservo che:
I = V/R = 5V / 10000Ohm = 0.5mA
Quindi la corrente è troppo bassa per bruciare il led, eppure accade.
Inoltre, da analogRead vedo che il voltaggio diminuisce quindi significa che la resistenza funziona (nonostante il multimetro indichi che in realtà abbia un massimo di 8k anziché 10k, ma non dovrebbe fare differenza, in questo caso).
Dove sbaglio?
Di seguito anche il codice:
Semplice, quando metti il potenziometro "al massimo" e' come se collegassi il led direttamente fra massa e VCC ... i led funzionano in corrente, se non la limiti con una resistenza, assorbono quasi come un corto e si bruciano ...
Leggendo la tua risposta, mi rendo conto di quanto il ragionamento sia effettivamente banale.
Devo "ragionare al contrario" in un certo senso. Ovvero, quando leggo 0V sul monitor tramite analogRead è perché sto applicando il massimo della resistenza (10KOhm) mentre quando leggo 5V è perché girando la rotellina ho "annullato" l'effetto della resistenza.
Quindi, sorge spontanea una domanda: quanti mA passano nel circuito di Arduino quando non vi è alcuna resistenza? Ho letto in alcune parti 200mA, in altre 500mA e in altre ancora 900mA.
E di conseguenza: come faccio a sapere l'amperaggio massimo tollerato da un LED?
Le porte analogiche di Arduino (quelle con cui leggi una tensione) sono ad altissima impedenza, quindi ... la corrente che ci scorre è infinitesimale e di nessun interesse.
Ogni LED ha un datasheet in cui sono riportate le specifiche, comunque, in grandi linee, i comuni LED che monti sulla breadboard e con cui fai esperimenti, richiedono che, al massimo, si faccia scorre al loro interno 20mA ... meno ne scorrono, meno luminosi sono. La resistenza in serie si mette in funzione della tesnione di alimentazione applicando la legge di Ohm.
Gli altri valori che citi nulla hanno a che vedere con tutto questo, ma sono le correnti che, la massimo, ciascun pin di Arduino, usato come output digitale, può fornire. In pratica, ogni pin di Arduino (quando impostato come output digitale) può dare al massimo, a Vcc, 40 mA (... ma quello è veramente un limite, nel normale funzionamento occorre stare al 60-70% di detto valore) ed inoltre la somma di tutti i pin e dell'assorbimento del chip, non deve superare al massimo i 200 mA (... e anche qui massimo va considerato come valore limite, ma nel normale funzionamento occorre stare al 60-70% di detto valore). Assorbimenti oltre detti limiti possono danneggiare irrimediabilmente il chip.
Grazie, Guglielmo! Si dipana qualche nebbia nella mia mente.
Mi rendo conto di dover studiare ancora tanto! Questo è un forum di persone pazienti.
Vengo da un mondo completamente diverso: ho speso 15 anni nel settore biotech\genetica, pubblicato articoli di genomica, tenuto conferenze di miglioramento genetico, bla bla bla... per poi accorgermi di aver tralasciato del tutto un settore così affascinante e importante come quello dell'elettronica.