Go Down

Topic: Ardu-Aquarium Controller v. 3.3.1 (Read 77203 times) previous topic - next topic

danidiscus

Quoto dandovino per la gestione temperatura, una sonda potrebbe bastare per monitorare, inserendo dei range per attivare un max di temperatura e superato quello potrebbe staccare la corrente del riscaldatore, visto che il termostato interno funziona con cotatto a lamelle ci potrebbe sessere il rischio che si saldino rimanendo sempre acceso, "esperienza vissuta".
Per il resto dei pin liberi come gia detto da riciweb si fara presto a occuparli visto che tutto èin fase di espansione

mdoc

Ciao,
anche io sto realizzando un controller per un acquario....
Per adesso ho scritto solo la parte di gestione dei menù con la libreria MENWIZ (complimenti all'autore).
Mi devono arrivare i vari "pezzi" per proseguire.
Comunque seguo con interesse il post.
Ciao
Marco

riciweb

Ciao,
grazie per aver scritto, come intendi gestirlo l'acquario?
Hai già degli schemi?
Seguici pure, ci fa sicuramente piacere  :)

Ciao Riccardo
Riccardo

mdoc

Ciao,
il controller è per un acquario marino, per il momento servirà solo per le funzioni base:
- Controllo luci Led con PWM
- Rabbocco automatico
- Alternanza pompe movimento
- Controllo temperatura

Hardware:
- Arduino Mega
- Display
- Scheda relè (4)
- RTC
- Sensore livello
- Sensore temperatura
- 6 pulsanti
- 4 deviatori
- Varie (scatola quadro elettrico, connettori, alimentatore, ecc.)

Utilizzerò la libreria MENWIZ per creare menù su LCD.
E' una libreria veramente fatta bene, facile da usare, con molte opzioni che possono essere utili.

Gli schemi per il momento li ho solo in testa e devo ancora scriverli.
Ci saranno 4 prese controllate da Arduino (pompa movimento Sx, pompa di movimento DX, pompa rabbocco, Termoriscaldatore).
Il segnale di comando proveniente da Arduino sarà interrotto da un deviatore per avere la possibilità di controllare il relè dal controller, manuale ON e manuale OFF.

I sensori temperatura per l'acqua e forse per la plafoniera saranno tipo DS18B20.
Il sensore di livello è quello utilizzato in questo progetto :
http://www.acquaportal.it/nanoportal/Articoli/fai_da_te/FDTOsmoregolatoreAresistenza/default.asp

Questo è quello che ho in mente, se vuoi sapere altro chiedi pure.

Ciao
Marco


riciweb

#64
Feb 27, 2013, 01:07 pm Last Edit: Feb 27, 2013, 07:07 pm by riciweb Reason: 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  ;)

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/   ;)
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  :)

Riccardo.

EDIT 27/02/2013 19,07: Caricato per errore uno sketch errato, ora è giusto...  :smiley-red:
Riccardo

leouz

Ho aperto un topic nella sezione Software per riuscire a sistemare l'acquisizione dei dati Luci utilizzando array.
Link http://arduino.cc/forum/index.php/topic,151218.0.html

il tutto per rendere il tutto più comodo e facilmente gestibile.  :P

riciweb

Ciao a tutti,
ho un problemino, sto cercando di usare questo sensore di livello:
http://www.milonetech.com/About_eTape.php
e di fatto ho già letto, utilizzando il circuito con divisore di tensione, i valori in analogread ed ho ottenuto già dei buoni risultati, nel senso che usando una R da 560 Ohm, le letture variano da 790 (acqua a livello minimo) a 512 (acqua a livello 20cm del sensore), quindi 278 rampe pari ad una rampa ogni 0,71mm che già è una buona precisione, solo che siccome usero il sensore in acquario, con acqua relativamente calda circa 28/29°, vorrei usarei il cicuito con amplificatore operazionale, che mi permette di usare anche la rref per compensare la temperatura ed anche per aumentare il range di lettura in modo da ottenere una precisione maggiore ( il terzo circuito)



il problema è che non ho la più pallida idea di quale ic dovrei usare, mi aiutate per favore?  :D

il datasheet: http://www.milonetech.com/uploads/eTape_Datasheet_12110215TC-8.pdf

Grazie Riccardo.
Riccardo

Michele Menniti

L'LMV358 (disponibile sia in PDIP che in SOIC) va più che bene per questa applicazione, è lo stesso usato su Arduino per la com parazione di tenzione per la selezione della fonte di alimentazione.
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

riciweb

Ciao Michele,
grazie infinite per la segnalazione, sto cercando, ma in formato dip è introvabile, mi hanno proposto in alternativa l'NE5532AP o N finale, può andare bene?

Poi ho visto che vengono alimentati con vcc+ e vcc- , significa che ho bisogno anche dei -5v?
O lo collego a massa?

:smiley-red:Perdonatemi, ma non capisco molto/niente di queste cose...

Riccardo
Riccardo

lesto

s', quella 'A' in più significhe che è più immine al rumore (magari ti costa anche qualche centesimo iin più..)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Madwriter


L'LMV358 (disponibile sia in PDIP che in SOIC) va più che bene per questa applicazione, è lo stesso usato su Arduino per la com parazione di tenzione per la selezione della fonte di alimentazione.

infatti mike è un buon comporatore di tenZione!!  :smiley-yell:
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

riciweb


s', quella 'A' in più significhe che è più immine al rumore (magari ti costa anche qualche centesimo iin più..)


Si anche per la domanda sull'alimentazione? ovvero vanno alimentati a +5 e -5 ?

Grazie  :smiley-red:
Riccardo

riciweb

Ok, mi rispondo da solo e mi scuso per la domanda inutile, i datasheet sia del lmv358 che del NE5532AP parlano chiaro,
ora però ho un'altro problema, nel senso che ho i +12v ed i +5v, quindi non saprei da dove tirar fuori i meno -5v, a furia di googlare, avrei trovato il TC660, seccondo voi può fare al caso mio? (datasheet in allegato)
Altrimenti che alternativa avrei?

:smiley-red: Scusate ma sono in confusione, sono veramente ignorante in materia...

Grazie in anticipo per il tempo che vorrete dedicarmi

Riccardo

Riccardo

Michele Menniti


Ciao Michele,
grazie infinite per la segnalazione, sto cercando, ma in formato dip è introvabile

hai ragione, scusa, una mia svista; allora puoi:
1 - usare un adattatore SOIC->PDIP (ma in genere costa più dell'integrato)
2 - prendere l'LM358 standard, dovrebbe comunque andare più che bene per le tue esigenze (RS codice 810-194)

Quote

mi hanno proposto in alternativa l'NE5532AP o N finale, può andare bene?

ne ho sentito parlare bene, ma non l'ho mai usato

Quote

Poi ho visto che vengono alimentati con vcc+ e vcc- , significa che ho bisogno anche dei -5v?
O lo collego a massa?

queste le caratteristiche da data-sheet dell'LM358 (che contiene due op-amp):
Wide power supply range:
-- Single supply: 3V to 32V
-- or dual supplies: ±1.5V to ±16V
-- Very low supply current drain (500 ?A)
-- essentially independent of supply voltage
-- Low input offset voltage: 2 mV
-- Input common-mode voltage range includes ground
-- Differential input voltage range equal to the power supply voltage
-- Large output voltage swing
a mio modestissimo parere sono di tutto rispetto (l'LMV ha in più fondamentalmente il fatto di essere un rail-to-rail, se non ricordo male) e sufficienti per il tuo scopo.

@ mad: mi stai chiamando ignorante? in quella frase ci sono ben 4 "zione", è come la storia della panca e della capra. Invece spiegami tu cos'è un
Quote
buon comporatore
, io almeno scrivo cose buone oltre a commettere qualche errore veniale, tu la cag.. perfino con le strnzt :smiley-yell: :smiley-yell: :smiley-yell:
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

Michele Menniti

l'LMV358 opera a 2,7-5V tensione singola, ho detto che è usato su Arduino, dove la trovi su Arduino una tensione duale, Lesto è un seminatore di zizzania :smiley-mr-green:
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

Go Up