Pages: [1] 2   Go Down
Author Topic: Problema di affidabilità  (Read 1954 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io uso un Arduino UNO per gestire un acquario e in particolare lo uso a monitorare la temperatura (Onowire), la corrente assorbita (sensore analogico) e a pilotare dei relè per accendere e spengere ventole, luci , ecc....
I dati li leggo su un display 20x4 con I2C.
Ho notato però che alcune volte che manca la corrente, alla riaccensione a volte "si pianta" e non riesce ad eseguire correttamente lo strach.
Avete qualche suggerimento su cosa verificare o qualche alternativa (tipo auto reset) ?
Grazie
Mauro
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 266
Posts: 21657
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sí ho un suggerimento:
Dacci lo schema del circuito e il sketch.
Ciao Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ecco il codice, purtoppo non ho uno schema da postare

* PWMLCD_UNO_V4.ino (10.68 KB - downloaded 25 times.)
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Intanto potresti dire ad esempio dove si pianta, esattamente.
Usi la seriale per il debug, ma il PC ha un gruppo di continuità o si spenge anch'esso se va via l'elettricità di casa?
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

è alimentato con un'alimentatore stabilizzato a 12 v , l'alimentazione 5V dell'LCD la prende direttamente da Arduino mentre i relè sono pilotati con un BC 317 e sono a 12v. Si pianta già nel loader e non logga nulla . Si verifica quasi sistematicamente quanto ritorna la corrente e si "risolve" facendo un reser con il tastino.
L'unica cosa che mi vene in mente è che ci possa essere una relazione con il fatto che uso uno secondo alimentatore a 48v per alimentare dei led attraverso dei driver PWM e per poterli gestire i due alimentatori hanno le masse in comune. La cosa strana ivece è che questo problema ha iniziato a manifestarsi solo quando ho aggiunto l'LDC. Ho un secondo arduino (mega) con lo stesso SW ma senza LCD e il problema non lo da
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 266
Posts: 21657
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Avevo problemi con la partenza di un Arduino NANO quando ho messo dei condensatori aggiuntivi da 470/1000µF sui 5V.
Come soluzione potresti prendere uno stabilizzatore da 5V e alimentare tramite quello il display.
Ciao Uwe
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cosa intendi per "loader" nel tuo programma? Il setup?
Hai provato a fare un pò di debug via seriale simulando l'assenza di alimentazione, ossia scollegando e ricollegando l'alimentatore dell'Arduino, per vedere cosa succede?
Potresti mettere un pò di Serial.print in vari punti del setup per capire dov'è che si pianta.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

di preciso non so dove si pianta, sul display non appare nulla, i vari print nel loop non loggano nulla. Provo a mettere un po di print su setup ..... :-(
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uwefed, scusa non ho capito se hai risolto il problema mettendo i condensatori o se sono stati la causa del problema
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 266
Posts: 21657
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il condensatore era la causa del problema. Lasciandolo via partiva bene.
Probabilmente se la tensione si alza troppo lentamente il circuito di reset di accensione non funziona in modo affidabile percui non lo resettava.
Ciao Uwe
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Provo a mettere un po di print su setup ..... :-(

E' lì che dicevo
Logged


Offline Offline
God Member
*****
Karma: 9
Posts: 550
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non so se ti può essere utile,ma diverse librerie per lcd tendono ad aspettare la risposta prima di inviare comandi,x evitare di intasare l'LCD di comandi..e possono piantarsi se l'arduino nn riceve risposte(es:arriva la corrente,l'arduino si accende,manda comandi allo schermo LCD che si sta accendendo,LCD nn manda indietro ack e tutto si pianta)..nn so se è il tuo caso
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12573
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non è da trascurare il picco di assorbimento dell'LCD, soprattutto della retroilluminazione; naturalmente ha ragione Uwe nel chiedere uno schema ma visto che non è disponibile, bisogna andare per tentativi. Quindi prova almeno a togliere la retroilluminazione e vedi cosa succede quando c'è un black-out
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Offline Offline
God Member
*****
Karma: 9
Posts: 550
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sì,può anche essere..
se vuoi un autoreset, basta che cerchi in giro watchdog..
oppure,una soluzione macchinosa:nel setup,leggi la tensione di alimentazione(collegandola ai pin analogici attraverso un partitore di tensione)..se è sotto una certa soglia,aspetti qlk secondo e poi continui(o resetti l'arduino giocando nuovamente col watchdog)
Logged

Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Imposta il watchdog ad 8 secondi, se effettivamente il codice entra in un loop infinito, questo risolverà il problema.

Saluti,
Dario.
Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Pages: [1] 2   Go Up
Jump to: