Sensore co2 mh-z14a

Buonasera a tutti ragazzi!!!
Stavo completando il prototipo quando mi sono accorto che qualcosa non andava.... dopo varie prove, un regolatore di tensione bruciato, una scheda UNO fritta, un relè arrostito sono arrivato alla fine... C'è ancora un problemuccio... quando accendo la retroilluminazione del display Lcd keypad l'alimentatore scalda tantissimo, penso che sia stata questa la causa della frittura di UNO. durante la sperimentazione quando tutto era collegato alla basetta non mi sembrava scaldare tanto... può darsi che si sia rotta la R interna al keypad?? Come posso ovviare?

Controlla tutte le tensioni e controlla eventuali cortocircuiti.

Alcuni di questi shield LCD+Keypad hanno un baco hardware proprio sulla retroilluminazione

https://forum.arduino.cc/index.php?topic=96747.0

Possibile che assorbe oltre 200mA?
Ma alimentando Arduino dal Pin 5V è possibile prendere i 3.3V?

Dal pin 3.3V puoi prendere massimo 50mA qualsiasi alimentazione usi.

A questo punto penso che l' Lcd keypad sia danneggiato... ho smontato tutto, controllato, messo una R da 330 in serie al led della retroilluminazione, verificato il funzionamento, collegato tutto in modo volante e funzionava come doveva. Poi rismonto, metto tutto nel case, ricollego tutto, e di nuovo l'alimentatore scalda e il programma non è reattivo a differenza di prima che quando pigiavo un pulsante il valore subito variava, adesso invece ci mette tempo.... alimentando da solo lo scudo l'alimentatore non scalda, quando collego Arduino inizia il programma quindi le scritte e inizia a scaldare, anche senza collegare il resto delle utenze...

A questo punto penso che l' Lcd keypad sia danneggiato... ho smontato tutto, controllato, messo una R da 330 in serie al led della retroilluminazione, verificato il funzionamento, collegato tutto in modo volante e funzionava come doveva. Poi rismonto, metto tutto nel case, ricollego tutto, e di nuovo l'alimentatore scalda e il programma non è reattivo a differenza di prima che quando pigiavo un pulsante il valore subito variava, adesso invece ci mette tempo.... alimentando da solo lo scudo l'alimentatore non scalda, quando collego Arduino inizia il programma quindi le scritte e inizia a scaldare, anche senza collegare il resto delle utenze...

Ho una domanda..
Ma Arduino si impalla se esegue il programma ma non ha collegato il sensore? Ho notato che provando il codice senza aver collegato il sensore di co2 ma solo Lcd keypad Arduino non era reattivo. Poi commentando la parte di codice che "legge"il sensore diventa di nuovo reattivo... può essere?

Dipende dal codice, il tuo o quello della libreria. Se non sbaglio questo sensore dialoga via seriale. Se il codice che attende la risposta è bloccante allora il programma si bloccherà altrimenti no.

zoomx:
Dipende dal codice, il tuo o quello della libreria. Se non sbaglio questo sensore dialoga via seriale. Se il codice che attende la risposta è bloccante allora il programma si bloccherà altrimenti no.

Definisci bloccante...

megaciro:
Definisci bloccante...

es. una funzione che una volta chiamata NON ritorna al chiamante sino a quando non ha un valore da restituire. Se tale valore NON arriva, la funzione non torna mai al chiamante ed il codice resta "bloccato" in attesa del valore di ritono dalla funzione.

La funzione delay(), sempre ad esempio, è bloccante, perché, una volta chiamata il tuo programma si ferma e, sino a quando non è passato il tempo richiesto, la funzione delay() non torna al chiamante il quale resta fermo ad attendere.

Guglielmo

Nel caso di cui stiamo parlando la libreria o il codice aspetta all'infinito una risposta dal sensore senza un tempo massimo.

Mmmm... capisco...
La questione è che non resta bloccato, ma rallenta.. esempio se pigio il pulsante giu diminuisce il valore del set-point. Se commento la parte di codice che legge il sensore il valore del set point diminuisce istantaneamente, se il codice è tutto attivo il valore diminuisce molto lentamente tenendo premuto il pulsante... come se ci fosse un ritardo.

... in tal caso, probabilmente, la funzione che chiami, ha comunque un "timeout" e, passato un certo tempo in cui sta ferma, comunque ritorna al chiamante (... forse restituendo un codice di errore).

Guglielmo

Grazie Guglielmo, provo a collegare il sensore in modo "volante" e vedo che succede..

Prova fatta.... effettivamente quando il sensore non è collegato Arduino presenta un certo "ritardo ", collegando il sensore ritorna reattivo.

Un altro fenomeno mi tormenta... alimentando solo il display keypad senza Arduino il regolatore di tensione dell'alimentatore non riscalda più di tanto, nonostante la retroilluminazione sia accesa, quando collego Arduino allo shield Lcd il regolatore si fa caldissimo ... non si riesce a tenere il dito sopra... anche se spengo la retroilluminazione o la attenuo con resistori, possibile che quando parte il programma Arduino succhi in modo da far scottare il regolatore?
Parliamo di un classico ams1117

Un ams1117 dovrebbe fornire 800mA, poco più di una USB2.0
Però non ho chiari i collegamenti che usi.

Nella mia mente ci dovrebbe essere un alimentatore a 9V che alimenta Arduino e lo shield, oppure anche uno a 5 ma bisogna cambiare l'ingresso. Lo stesso alimentatore dovrebbe andare ad uno stepdown a 3.3V per alimentare il sensore CO2.
Se non mi sono perso.

Allora ... uso un alimentatore 12v 2ª collegato ad uno step down tipo quello delle basette 1000 fori, da cui prendo 5v per alimentare Arduino dal Pin 5v che a sua volta alimenta lo shield Lcd keypad. Poi sempre dallo step down prendo altri 5v per il sensore ed il convertitore logico, ed i 3.3v per l'altro lato del convertitore logico per la comunicazione UART.

Quello che si scalda è lo step down? Se si, forse dovresti alimentarlo a 9V invece che a 12, l'ams1117 porta i 12 a 5V producendo calore. Oppure puoi montare un piccolo dissipatore. O usare uno step down buck con LM2596 o altro chip e un bel induttore.

Proverò ad alimentare con 9v per vedere se cambia la situazione, altrimenti metto un dissipatorino..