Go Down

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

Etemenanki


io immagino che il motivo sia che l'acqua è un isolante differente dall'aria, e di molto, e questo influsce molto. Il cavo è "isolato"dalla guaina, che però da un contributo "fisso". Alla fine stai sfruttando il femomeno antenna e/o trasformatore, credo, e dunque la conducibilità dell'acqua incide sulle varie letture.


La conducibilita' dell'acqua incide, ovviamente, ma solo in modo marginale, perche' stiamo parlando di radiofrequenza (o comunque frequenze abbastanza alte da rientrare nelle RF) ... il conduttore che fa da sonda agisce come condensatore variabile in un'oscillatore libero ad alta impedenza, quindi anche solo la vicinanza di altri oggetti finisce per influenzarlo (ovviamente, piu l'oggetto e' elettricamente conduttore e piu l'influenza e' elevata, questo e' naturale, ma una volta "tarato" il tutto per il liquido che ti serve misurare, il problema e' relativamente poco importante) ... senza acqua intorno, la capacita' del conduttore e' quella data dall'isolante fra i due conduttori, man mano che l'acqua lo circonda, il valore aumenta, e quindi la frequenza diminuisce in proporzione ... ho provato anche con dell'olio, e funzionava lo stesso, anche se ovviamente con variazioni minori ...

Comunque, dato che si parla di acquari, se lo scopo e' solo quello di avere dei riferimenti per il rabbocco, complicandosi la vita il meno possibile, un reed ed un magnetino ti consentirebbero, se opportunamente posizionati, di avere due diverse indicazioni, semplicemente sfruttandone l'isteresi ... quando il contatto si chiude, c'e' una certa "corsa" di allontanamento prima che si riapra, se posizioni il magnete correttamente, puoi usare la chiusura come "pieno" e l'apertura come "vuoto" a due livelli diversi ... e lo stesso si puo fare con piu reed ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

lesto

Quote
ma solo in modo marginale, perche' stiamo parlando di radiofrequenza

in tal caso mi fido, non ne so una beneamata mazza :)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

michele73

#482
Jan 01, 2014, 07:30 pm Last Edit: Jan 02, 2014, 08:59 pm by michele73 Reason: 1
ciao a tutti e buon Anno,
sono riuscito a montare tutti i componenti del progetto di Riciweb e funziona alla grande e bello e la sonda di temperatura ho preso questa posto il link http://www.robot-italy.com/it/one-wire-temperature-sensor-ds18b20.html.
ora però le mie difficoltà sono quelle di programmazione e non per Hardware che qualcosa ne capisco qualcosina per il Ph controllo dosatori di liquidi e solidi settimanale e pompa primaria on/off e secondaria automatica ad vari periodi di tempo.
chi mi può aiutare grazie mille e un grande grazie a Riciweb
posto quello che ho potuto capire per modifiche sulla libreria che ha fatto Riciweb
grazie Ancora

michele73


PaoloP

No. Ma forse sono tutti in ferie.  :smiley-mr-green:
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

michele73

Ciao,
Etemenanki e Paolo Grazie per le risposte

riciweb

Ciao Michele73,
mi fa piacere leggere che ti funziona tutto, anche i sensori di temperatura, che confermo essere quelli che hai linkato, anche se a breve forse verranno sostituiti con altri più performanti.
Per ciò che riguarda le modifiche che chiedi, il primo consiglio che ti do è di iniziare a testare le cose che vuoi implementare separatamente e solo quando avrai le funzioni/procedure definitive integrarle nel progetto, è quello che faccio sempre ed anche il modo migliore di procedere, altro consiglio è di attivare la pompa tramite menù senza aggiungere un altro tasto.
Il discorso dosatori mi intriga parecchio, non ho mai approfondito più di tanto, ma so che ne esistono di diversi tipi con modi di funzionamento diversi, aiutarti quindi diventa difficile, ho visto quello che hai fatto tentando di modificare il mio sketch e fin da ora ti dico di evitare come la peste il "delay()" perché letteralmente blocca il flusso dello sketch per il tempo che imposti, nell'IDE File/Esempi/02.Digital/BlinkWithoutDelay trovi un bell'esempio su come fare, ma anche il Ns. buon Leo72 ha scritto un bellissimo articolo http://www.leonardomiliani.com/2013/programmiamo-i-compiti-con-millis/ dove impari anche come evitare l'overflow di millis(), rimane il fatto che essendo io ora impegnato su ben altri fronti, compreso il dover far entrare tutto nella poca flash di Arduino, non ti posso essere molto di aiuto...
Il discorso PH è a divenire, appena definito l'uso dei nuovi sensori di temperatura, con Leouz stiamo valutando come procedere.

Ciao, tienici aggiornati sui tuoi progressi.  :)

Riccardo.
Riccardo

michele73

Ciao Riciweb,
grazie per il consiglio ho provato a capire come implementare il menù ma mi da errori da tutte le parti nella programmazione errori di java mi da, sono all'inizio sono una schiappa mi puoi indicare come ampliare il tuo menù, appena finisco posto lo schema elettrico di tutto quello che penso di fare.
ti ringrazio ancora

riciweb

Ciao Michele,
scusa se ci metto tanto a rispondere, ma il tempo è sempre scarsissimo, iniziamo:
se vai a riga 1092 dello sketch, trovi un esempio di menù, come vedi si tratta di dichiarare un array di stringhe, dove la prima voce (blocco 0 dell'array) è l'intestazione del menù stesso, nonché l'intestazione della schermata dove scorre il menù, a seguire poi tutte le voci che ti servono per quel menù, ad esempio:

Code: [Select]
char* VociMenuDosatori[] ={"    IMP. DOSATORI",       // Intestazione e voci del menu luci
"Dosatore 1 ",
" Dosatore 2 ",
" Dosatore 3 ",
" Dosatore 4",
};


Quando richiami la funzione del menù, devi passare nell'esatto ordine questi parametri:

  • variabile che conterrà il valore scelto nel menù

  • numero delle voci del menù

  • il vettore di strighe che hai creato


In questo modo:

Code: [Select]
Scorrimenu (MenuDosatori, 4, VociMenuDosatori);

Ma lo devi fare nel loop all'interno di una struttura switch case:
Code: [Select]
switch (MenuDosatori)
{ case 0:
Scorrimenu (MenuDosatori, 4, VociMenuDosatori);
break;

case 1:
ImpostaDosatore (dosatore1);
break;

case 2:
ImpostaDosatore (dosatore2);
break;

case 3:
ImpostaDosatore (dosatore3); 
break;

case 4:
ImpostaDosatore (dosatore4);
break;
}


E'  importante che sia la variabile "MenuDosatori" che quella "Avvio" siano inizializzate a 0, la prima perché altrimenti non entri nello switch case, la seconda perché fa eseguire all'interno della funzione "Scorrimenu" la prima if, che è quella che popola il display la prima volta.
Nel display vedrai nella prima riga l'intestazione della schermata e poi le voci che scorrono quando premi i tasti su o giù, quando premi ok, "Scorrimenu" assegna alla variabile "MenuDosatori" il  valore che stai puntando ed automaticamente viene eseguito il codice all'interno di quel case.
Va da se che poi la procedura o funzione ImpostaDosatore(); te la devi creare da solo.
Spero di esserti stato utile.
Ciao.
Riccardo

michele73

Ciao Riciweb,
grazie mille per la spiegazione e per il ritardo domani mattina ci provo sia il menù che quello che mi avevi detto l'altra volta ancora grazie
:)

elleeffe

Ciao a tutti, volevo innanzitutto farvi i complimenti per lo splendido progetto che state realizzando.           
Mi sono iscritto in questo forum per cercare di imparare a programmare arduino, visto che sono proprio alle primissime armi e non ho proprio idea di come fare.                                                                                                   
Mi sono documentato e ho acquistato "Arduino la guida ufficiale" creando tutti i progetti al suo interno, (se avete altri libri da consigliarmi, ben venga).
Durante la mia documentazione ho potuto imbattermi in questo progetto davvero molto interessante, visto che sono un appassionato di acquari marini, e che il mio è già automatizzato; usa un PIC della Motorola PIC16F873 programmato da un mio amico e la scheda progettata e costruita completamente da me con fotoincisione e acido per lo sviluppo.
Chiedo anche se è possibile usare l'Arduino Mega invece che l'Arduino Uno.
Ho potuto leggere tutte le pagine di questo progetto e se mi è permesso vorrei capire il perché è stato pensato di usare quel sistema di controllo livelli, non era più semplice mettere un sensore di massima e uno di minima per eseguire i rabbocchi? E perché, visto il sistema usato, non far scrivere nel display una barra di livello? Attualmente nel mio acquario ho adottato il sistema a due sonde, una di massima e una di minima. Ho provato a ricreare un controllo di livello con delle astine di metallo ma abbandonato perché creava isteresi ed inquinava l'acqua dei miei pesciolini.
La mia non vuole assolutamente essere una critica, ma visto che il progetto è ancora in fase di collaudo fate le giuste scelte.
Complimenti ancora, ciao

Etemenanki

"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

michele73

Ciao Etemenanki,
bel progetto mi piace molto bello

riciweb

Ciao elleffe,


Chiedo anche se è possibile usare l'Arduino Mega invece che l'Arduino Uno.


Si è possibile devi solo combiare i pin di SDA e SCL che sulla UNO corrispondono ai pin A4 e A5, mentre sulla mega corrispondono ai pin 20 e 21, naturalmente poi devi compilare per la mega, non credo che serva latro, magari se qualche guru ti legge ti saprà dire meglio.


Ho potuto leggere tutte le pagine di questo progetto e se mi è permesso vorrei capire il perché è stato pensato di usare quel sistema di controllo livelli, non era più semplice mettere un sensore di massima e uno di minima per eseguire i rabbocchi?


Con il tuo sistema hai un unico rabbocco fisso, e se vuoi cambiare, devi regolare fisicamente i sensori in vasca, con il ns sistema invece hai lettura in continuo del livello dell'acqua qualunque esso sia, quindi si può usare come osmo regolatore, o per programmare cambi di diverse quantità schedulando nel tempo parziali giornalieri o settimanali cambiando a piacimento via software le quantità d'acqua e tutto con un unico sensore...


La mia non vuole assolutamente essere una critica, ma visto che il progetto è ancora in fase di collaudo fate le giuste scelte.


Ogni critica o suggerimento, sono sempre bene accetti, quindi non farti scrupoli se ti viene in mente altro  :)


Vuoi esagerare ?
http://forum.arduino.cc/index.php?topic=197758.msg1507801#msg1507801
:P :smiley-yell: :smiley-mr-green: :smiley-mr-green: :smiley-mr-green:


Accipicchia Etemenanki questo mi era sfuggito, vedo di guardarmelo bene bene, grazie infinite per averlo condiviso.  :D

Riccardo.

Riccardo

Etemenanki

Guarda che e' solo una shield che avevo progettato, non c'e' alcuno sketch (non sono un programmatore) ... se la vuoi usare fai pure, ma il software dovresti riscrivertelo tutto tu ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

Go Up