Go Down

Topic: Arduino Uno si riavvia da solo (Read 361 times) previous topic - next topic

adm91

Egregi,
vi ringrazio per tutti i contributi costruttivi utili alla risoluzione del seguente problema:

la scheda di ARDUINO UNO si riavvia da sola.
la configurazione Hardware è la seguente:
---------------------------------------------------------------------------------------------------------
ai pin dal  2 al 7 (compresi) sono pilotati direttamente 1 led per ogni pin (6 led)
da questo deduco --> la corrente assorbita da un led dovrebbe essere circa 15 mA, totale =15*6 = 90 mA.

sul pin 10 è invece pilotato un tranistor BJT. esso pilota una striscia di led e sul collettore del transitor scorrono 0,6 ampere.

in totale quindi, dovrei avere un cosumo totale di 100 mA da parte dell'ATmega328. Questo mi porterebbe ad escludere che il problema del riavvio possa essere dovuto ad un'eccessiva erogazione di corrente, che ne pensate?


ai pin 12 e 13 invece sono collegati 2 tasti (uno per ogni pin) che servono da ingresso (switchano lo stato dei led e della striscia di led).
per evitare corto circuiti questi ultimi sono dichiarati come INPUT_PULLUP senza resistenza di PULL_UP appunto.
-------------------------------------------------------------------------------------------------------------------

Unica nota SOFTWARE degna di nota:
ho 2 variabili dichiarate globalmente impostate a TRUE (quando sono vere i led e la striscia di led sono accesi) perchè ho bisogno che appena inizia il void loop (appena accendo arduino) di default i led e la striscia di led siano ACCESI.
queste 2 variabili però cambiano stato in base alla pressione dei tasti normalmente aperti poco fa citati (ho tolto il problema delle alee meccaniche con un delay di 250 ms dopo il digitalRead sul pulsante).
vi chiedo quindi: una volta entrato nel void loop il processore non tenta mai più di riportare le variabili allo stato globale (true) andando in conflitto con la lettura dei tasti N/O? è corretto come ho fatto io di dichiararle globalmente? se le avessi dichiarate = true nel void loop avrei avuto il problema che ad ogni ciclo di void loop le due variabili sarebbero tornate true causando l'errata accensione dei led e della striscia di led.


ultima considerazione: sulla base del transistor che pilota la striscia di led ho messo una resistenza da 1MOhm, potrebbe essere troppo elevata e quindi la corrente sulla base non manda in saturazione il transitor?
il transitor lo piloto con un analogWrite per usufruire della PWM con conseguente regolazione della luminosità sulla striscia di led.


vi ringrazio molto!

nid69ita

#1
Mar 20, 2019, 06:32 pm Last Edit: Mar 20, 2019, 06:32 pm by nid69ita
Si riavvia da sola ogni quanto ?  E' regolare o con tempi a caso ?

Inoltre utile uno schema dei collegamenti e lo sketch.
my name is IGOR, not AIGOR

fabpolli

Concordo con quanto espresso da nid69ita ma nel frattempo mi è balzata all'occhio questa tua frase
ai pin dal  2 al 7 (compresi) sono pilotati direttamente 1 led per ogni pin (6 led)
da questo deduco --> la corrente assorbita da un led dovrebbe essere circa 15 mA, totale =15*6 = 90 mA.
D'accordo i calcoli ma quel "pilotati direttamente" mi fa pensare, hai messo le resistenze o davvero piloti direttamente i led?

adm91

Si riavvia da sola ogni quanto ?  E' regolare o con tempi a caso ?

Inoltre utile uno schema dei collegamenti e lo sketch.
si riavvia ogni 15 - 20 secondi circa,
appena posso posto lo sketch, grazie

adm91

Concordo con quanto espresso da nid69ita ma nel frattempo mi è balzata all'occhio questa tua fraseD'accordo i calcoli ma quel "pilotati direttamente" mi fa pensare, hai messo le resistenze o davvero piloti direttamente i led?
si cerrto, ho messo resistenze da 240 ohm,
per pilotati direttamente intendo alimentati direttamente dai pin di Arduino

gpb01

#5
Mar 21, 2019, 02:50 pm Last Edit: Mar 21, 2019, 02:53 pm by gpb01
QUANTI led comunque piloti con Arduno? Che assorbimenti hai sia per singolo pin che complessivamente che sulla linea +5V?

Perché se si resetta, escludendo errori di programmazione, o disturbi eletromagetici (in caso di carichi induttivi), è perché si assorbe troppo, la tensione scende e interviene il BOD (Brown-Out Detector).

Guglielmo
Search is Your friend ... or I am Your enemy !

adm91

QUANTI led comunque piloti con Arduno? Che assorbimenti hai sia per singolo pin che complessivamente che sulla linea +5V?

Perché se si resetta, escludendo errori di programmazione, o disturbi eletromagetici (in caso di carichi induttivi), è perché si assorbe troppo, la tensione scende e interviene il BOD (Brown-Out Detector).

Guglielmo
Caro Guglielmo, intanto grazie della risposta, avevi ragione,
Il riavvio era dovuto ad un eccessivo assorbimento di corrente. Ieri sera tester alla mano ho constatato che 6 led mi consumavano 0,3 ampere 300 mA.
Ho staccato i led che ahimé erano già saldati alla scheda e tutto rifunziona.

Detto questo vorrei utilizzare un ULN2003 per i miei 6 led.
A questo punto chiedo: come funziona esattamente quel circuito integrato?
Ha bisogno di una resistenza su ogni ingresso dei pin di ingresso per regolare la corrente sulla base dei transistor?
Credi che sia la scelta giusta quel circuito integrato?



gpb01

#7
Mar 22, 2019, 03:35 pm Last Edit: Mar 22, 2019, 03:42 pm by gpb01
il ULN2003 lo colleghi direttamente lato Arduino mentre, ovviamente, in uscita, in serie ad ogni LED metti la sua resistenza. 

L'alimentazione dei LED la devi fornire direttamente e NON prelevarla dal pin 5V di Arduno, altrimenti hai sempre il problema dell'assorbimento. ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

adm91

il ULN2003 lo colleghi direttamente lato Arduino mentre, ovviamente, in uscita, in serie ad ogni LED metti la sua resistenza.

L'alimentazione dei LED la devi fornire direttamente e NON prelevarla dal pin 5V di Arduno, altrimenti hai sempre il problema dell'assorbimento. ;)

Guglielmo
Ok grazie ma all ingresso di ogni pin dell ULN serve la resistenza? Per la corrente sulla base del transistor.
Grazie ancora e buona Domenica

brunello22

Quote
ma all ingresso di ogni pin dell ULN serve la resistenza?
No, la resistenza va messa tra l'uscita e il Led, oppure tra il positivo e l'anodo del led e il catodo direttamente sull'uscita

gpb01

Ok grazie ma all ingresso di ogni pin dell ULN serve la resistenza? 
... scusa, ma io cosa ho scritto qui:  :o :o :o

il ULN2003 lo colleghi direttamente lato Arduino mentre, ovviamente, in uscita, in serie ad ogni LED metti la sua resistenza.
Guglielmo
Search is Your friend ... or I am Your enemy !

Claudio_FF

#11
Mar 24, 2019, 08:46 am Last Edit: Mar 24, 2019, 08:49 am by Claudio_FF
ma all ingresso di ogni pin dell ULN...
Si prende il datasheet (google: uln2003 pdf → secondo risultato)  e a pagina 2 si vede lo schema delle porte dove risulta già presente una resistenza da 2.7k sulla base dei transistor interni.







* * Post 1000  :smiley-mr-green: * *
* * * *    'if' e 'case' non sono cicli   * * * *
* * * Una domanda ben posta è già mezza risposta. * * *
* La corrente si misura in 'mA', la quantità di carica in 'mAh' *

gpb01

Search is Your friend ... or I am Your enemy !

adm91

#13
Mar 25, 2019, 05:32 pm Last Edit: Mar 25, 2019, 05:35 pm by adm91
... scusa, ma io cosa ho scritto qui:  :o :o :o
Guglielmo

si ok Guglielmo ma intentevo quella per i transistor, ho letto quello che ha scritto Claudio.. chiarissimo , grazie!

Si prende il datasheet (google: uln2003 pdf → secondo risultato)  e a pagina 2 si vede lo schema delle porte dove risulta già presente una resistenza da 2.7k sulla base dei transistor interni.








* * Post 1000  :smiley-mr-green: * *
ottimo era quello che cercavo,
scusate devo prendere il via a leggermi i datasheet!

grazie mille a tutti!!

Go Up