Ardu-Aquarium Controller v. 3.3.1

Ciao a tutti,
abbiamo fatto dei passi avanti, sia sul lato HW che SW, così volevo aggiornarvi e chiedere alcune delucidazioni e consigli…

Per cominciare, si è formato un allegro gruppetto di persone, che via whatsapp comunica senza inquinare questo topic con post superflui, ma che tra fare solo test, proporre modifiche, ma anche intervenendo sul codice ha fatto si che il progetto sia andato avanti.

Sul lato HW, abbiamo seguito le segnalazioni di brunello sull’utilizzo del 7805, ed effettivamente tutti quei fotoaccoppiatori, lo mettevano a dura prova, provando ad attivarli tutti, diventava una vera e propria stufetta, anche aumentando il valore delle R, migliorava solo leggermente, così ho ordinato gli IC-inverter che mi ha segnalato i 74HC540N ed effettivamente è tutta un’altra cosa, sia come semplificazione circuitale che come assorbimenti. Grazie Brunello! XD

Abbiamo poi deciso di aumentare a tre il numero delle linee luci.

E di aggiungere un 6° tasto per l'ESC per migliorare l'utilizzo del controller :wink:

Sul lato SW, invece si può dire che siamo a dama sulla gestione delle luci:
Abbiamo semplificato e snellito la funzione di acquisizione dei dati utili/necessari e trovato un buon compromesso poi per la gestione dei singoli fotoperiodi, in pratica inizialmente abbiamo cercato di usare una funzione che in ogni momento in base all’ora corrente fosse in grado di calcolare e decidere cosa e quanto accendere per tutte e tre le linee, ma il povero Arduino sudava ben più delle proverbiali 7 camice, così abbiamo scritto una funzione che in caso di cambiamento dei dati da parte dell’utente o di riavvio/reset/black-out, ricalcola i valori di fading, di intervallo di fading ed altro e da poi in pasto i dati ad un’altra funzioncina che a questo punto esegue semplicissimi confronti temporali utilizzando millis(), che non ci fa più paura con i suoi overflow, dopo aver letto l’articolo di Leo72 http://www.leonardomiliani.com/2012/come-gestire-loverflow-di-millis/ :wink:
Abbiamo anche aggiunto una schermata per monitorare lo stato delle luci, e nella schermata principale visualizziamo la media in percentuale dei fading sulle tre linee.

Per la temperatura dell’acqua invece, abbiamo scritto due righe di codice per far si che se la temperatura sale o scende oltre un certo range (1,5°), il valore della temp inizi a lampeggiare sul display e si senta un allarme sonoro, disattivabile quest’ultimo premendo ESC.
Purtroppo siamo quasi al limite con la flash, pensando anche a quanto ancora vogliamo far fare al controller, così in questo momento oltre a pensare di implementare altre funzioni, stiamo cercando di capire come riscrivere tutto, mantenendo la funzionalità del codice ed allo stesso tempo alleggerendolo….

Più tardi uno di noi proverà a spiegare meglio che strada stiamo cercando di percorrere…

Nel frattempo allego sia qui che nei post di presentazione lo sketch ed il nuovo schema, dove è ancora in sospeso l’uso del trimmer sulla backlight del display.

Grazie in anticipo a chiunque voglia perdere un po’ di tempo per aiutarci a migliorare :slight_smile:

Riccardo.

EDIT 27/02/2013 19,07: Caricato per errore uno sketch errato, ora è giusto... :blush:

acquarium_controller_v2_1.ino (54.8 KB)