Entra

Visualizza la versione completa : Alternativa alle dosomotriche


dr.jekyll
01-09-2014, 19:56
Secondo voi è possibile trovare un'alternativa alle costose dosometriche???

Io pensavo a delle elettrovalvole più claber(per il goccia goccia), il tutto gestito da arduino con un programma molto semplice...

Il contenitore messo in alto e per gravità il liquido cade in vasca all'aprirsi della valvola...però ho i miei dubbi perchè penso che con lo svuotarsi del contenitore la pressione esercitata dal liquido sulla claber scendi ed anche il dosaggio...

che ne pensate? #24

fito_89
02-09-2014, 13:40
ciao,
stavo pensando anche io a qualcosa di simile, dato che ho intenzione anche io di gestire la mia vasca con arduino.
però io a differenza tua stavo pensando di realizzare qualcosa con dei motori passo-passo, verrebbe moooolto più semplice la gestione dei ml.
se vuoi potremmo realizzare qualcosa assieme..
ciao
Andrea

dr.jekyll
02-09-2014, 14:14
si con grande piacere possiamo progettarla insieme la cosa ;) Io il 17 ho l'ultimo esame del semestre dopo di che posso dedicarmi al progettino...

con i motori passo passo sicuro è più semplice dosare, ma la parte meccanica per trasformare il motore in dosometrica? Hai già in mente qualcosa?

Girando su amazon ho trovato questo che potrebbe essere modificato ed usato per il nostro scopo:

http://www.amazon.it/Dispenser-per-sapone-elettronico-BEPER/dp/B00AJN1TRQ/ref=sr_1_1?ie=UTF8&qid=1409659993&sr=8-1&keywords=sapone+automatico

che pensi potrebbe andare? o è un assurdità? :-D

fito_89
02-09-2014, 15:17
ciao io sarò in cina fino al 28/09 quindi direi che si può fare dal 29 in poi...
comunque stavo pensando si usare un microflussometro per delle pompe peristatiche per il controllo del flussaggio e delle pompe dosometriche anzi che i passo-passo (sono gia pronte..)
ho visto in giro e trovi motori pre-assemblati a prezzi bassi.. (10-15 euro..)
penso che il prezzo finito tra arduino ecc si aggiri su una 50ina di euro.. non di più....
------------------------------------------------------------------------
http://www.banggood.com/buy/peristaltic-pump.html

dr.jekyll
02-09-2014, 15:32
------------------------------------------------------------------------
http://www.banggood.com/buy/peristaltic-pump.html


Appena possibile ne ordiniamo una e facciamo le prove. si potrebbe pensare di automatizzare completamente le somministrazioni in vasca...Alimenti per coralli e triade

fito_89
02-09-2014, 15:57
è quello che volevo fare..
tu come te la cavi con la programmazione?
io vorrei gestire tutto con arduino..
------------------------------------------------------------------------
http://www.acquariofilia.biz/showthread.php?t=468413

dr.jekyll
02-09-2014, 16:03
è quello che volevo fare..
tu come te la cavi con la programmazione?
io vorrei gestire tutto con arduino..
------------------------------------------------------------------------
http://www.acquariofilia.biz/showthread.php?t=468413


ho fatto l'esame di programmazione all'università (c++)...Me la cavo ma ho le basi non sono un grande programmatore....

Arduino c'è l'ho già...ho provato già a fare qualcosa per gestire le pompe non serve chissà che programma...Il difficile sta nel fare l'interfaccia con display...ma io mi accontenterei di qualcosa di molto più semplice senza display

tu come stai messo?

fito_89
02-09-2014, 16:05
a livello di programmazione non ho un gran che di esperienza.. ho fatto anche io qualcosina ma nulla di che.
adesso io e un mio collega stiamo ''cercando'' di creare un interfaccia display... non è facile..

dr.jekyll
02-09-2014, 16:07
a livello di programmazione non ho un gran che di esperienza.. ho fatto anche io qualcosina ma nulla di che.
adesso io e un mio collega stiamo ''cercando'' di creare un interfaccia display... non è facile..

sai secondo me sarebbe molto più semplice gestire il controller con un dispositivo android che comunichi con arduino

fito_89
02-09-2014, 16:16
a livello di programmazione non ho un gran che di esperienza.. ho fatto anche io qualcosina ma nulla di che.
adesso io e un mio collega stiamo ''cercando'' di creare un interfaccia display... non è facile..

sai secondo me sarebbe molto più semplice gestire il controller con un dispositivo android che comunichi con arduino

cioè?

dr.jekyll
02-09-2014, 16:20
a livello di programmazione non ho un gran che di esperienza.. ho fatto anche io qualcosina ma nulla di che.
adesso io e un mio collega stiamo ''cercando'' di creare un interfaccia display... non è facile..

sai secondo me sarebbe molto più semplice gestire il controller con un dispositivo android che comunichi con arduino

cioè?

https://www.youtube.com/watch?v=50IjNjiNWew

giusto per dare un'idea...

L'applicazione è stata fatta con l'MIT app inventor che è molto semplice da usare basta avere un po' di basi (for, if, while....)

Una volta dato l'esame mi metto a studiare, ora meglio non avere distrazioni :-))

fito_89
02-09-2014, 16:38
mmmm..
io inizio a comprare la pompa e giocarci un po.. poi vediamo che succede..
ti aggiorno..
ti lascio il mio n in MP fammi sapere se hai news

dr.jekyll
02-09-2014, 16:44
mmmm..
io inizio a comprare la pompa e giocarci un po.. poi vediamo che succede..
ti aggiorno..
ti lascio il mio n in MP fammi sapere se hai news

ok ora ho il cell spento. Quando lo accendo ti invio un sms col mio...Teniamoci aggiornati ;)

fito_89
03-09-2014, 08:55
news dell'ultima ora, c'è un mio amico che ''lo fa di lavoro'' e ci darebbe una mano con la progettazione del display touch LCD da 3.5''...
si potrebbe valutare

dr.jekyll
03-09-2014, 09:14
news dell'ultima ora, c'è un mio amico che ''lo fa di lavoro'' e ci darebbe una mano con la progettazione del display touch LCD da 3.5''...
si potrebbe valutare
ottima notizia

dr.jekyll
06-09-2014, 22:53
AGGIORNAMENTO

programmino semplice semplice, giusto quello che mi serve per dosare l'xtra in automatico. Spegne la risalita dosa, aspetta un'ora, riaccende la risalita. Mi sa che per la triade tornerò al reattore di calcio. Tu hai ordinato la pompa?

ecco il codice. Sai se il delay può essere usato anche per intervalli lunghi? (23 ore)
------------------------------------

int doso = 12;
int pump =11;
int ver= 10;



void setup() {
// initialize the digital pin as an output.
pinMode(doso, OUTPUT);
pinMode(pump, OUTPUT);
pinMode(ver, INPUT);




};

// the loop routine runs over and over again forever:
void loop() {


digitalWrite(pump, HIGH);

if(digitalRead(ver)==HIGH){


while(1<2){
digitalWrite(pump, LOW);
delay(2000); //Tempo scesa acqua
digitalWrite(doso, HIGH);
delay(8000); //tempo necessario al dosaggio (calcolare tempi)
digitalWrite(doso, LOW);
delay(10000); //tempo assorbimento
digitalWrite(pump, HIGH);
delay(800000000);
};
};

};
-----------------------------

SirNino
08-09-2014, 00:11
ecco il codice. Sai se il delay può essere usato anche per intervalli lunghi? (23 ore)
------------------------------------

int doso = 12;
int pump =11;
int ver= 10;



void setup() {
// initialize the digital pin as an output.
pinMode(doso, OUTPUT);
pinMode(pump, OUTPUT);
pinMode(ver, INPUT);




};

// the loop routine runs over and over again forever:
void loop() {


digitalWrite(pump, HIGH);

if(digitalRead(ver)==HIGH){


while(1<2){
digitalWrite(pump, LOW);
delay(2000); //Tempo scesa acqua
digitalWrite(doso, HIGH);
delay(8000); //tempo necessario al dosaggio (calcolare tempi)
digitalWrite(doso, LOW);
delay(10000); //tempo assorbimento
digitalWrite(pump, HIGH);
delay(800000000);
};
};

};
-----------------------------

Se non ho capito male questo programmino dovrebbe essere per Arduino.

Teoricamente si potrebbe programmare un delay di 23 ore ma praticamente non ha senso.
durante il delay TUTTO il programma si ferma, quindi se questo codice viene inserito nel contesto di una gestione globale si bloccherebbe tutto e non andrebbe più nulla (no touch, no livelli, no luci...niente!).
Invece del delay dovreste creare delle variabili su cui scrivere il valore di millis() e confrontarlo col valore corrente ad ogni ciclo.

PS: non credo che il codice che hai postato funzioni, ci sono parecchi errori.

dr.jekyll
08-09-2014, 00:16
ciao, l'apparato deve gestire solo la somministrazione di un unico liquido.

Stacca la risalita => versa il liquido => aspetta un po' => riaccende la risalita

quali sono gli errori? Ho provato il tutto su breadbord con due led al posto delle pompe ed ha funzionato #24

SirNino
08-09-2014, 07:47
Ho provato il tutto su breadbord con due led al posto delle pompe ed ha funzionato #24

Si scusa l'ho guardato ieri dal cell e non essendo indentato mi sono confuso.
Poi ho notato che usi il ; dopo la chiusura delle graffe...perché? non serve.

Come dicevo però nel messaggio di prima il problema del delay è che blocca il listato quindi, visto che state parlando anche di inserire un touch e non so cos'altro credo che dovreste provare a rivedere il listato sulla base di tempi e non di attese.
Dovendo dosare, immagino, giornalmente, non potreste provare con la libreria timealarm.h?

Ciao

dr.jekyll
08-09-2014, 15:11
si grazie per le dritte. Comunque è l'atro ragazzo che vuole usare un TFT...Per ora il mio deve gestire solo una dosometrica e nient altro. Forse le ventole la prossima estate ed allora modificherò il codice

dr.jekyll
16-10-2014, 16:43
mmmm..
io inizio a comprare la pompa e giocarci un po.. poi vediamo che succede..
ti aggiorno..
ti lascio il mio n in MP fammi sapere se hai news


ieri ho ordinato questa http://www.ebay.it/itm/191123453039?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649


a te è arrivata?

fito_89
16-10-2014, 16:50
Si si ho già tutto a casa anche il potenziometro per regolarla.. Lunedì inizio a programmare il tutto


Sent from my iPhone using Tapatalk
------------------------------------------------------------------------
mmmm..

io inizio a comprare la pompa e giocarci un po.. poi vediamo che succede..

ti aggiorno..

ti lascio il mio n in MP fammi sapere se hai news





ieri ho ordinato questa http://www.ebay.it/itm/191123453039?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649





a te è arrivata?


Poi ti aggiorno [emoji16]


Sent from my iPhone using Tapatalk

dr.jekyll
16-10-2014, 16:52
Che potenziometro hai preso?

Ste80
16-10-2014, 17:24
Scusate se m'intrometto, ma ho visto che da un paio d'anni sono in commercio le pompe dosatrici "aqua1 PD-2 0 0 1 e PD-2 0 0 2" che costano davvero poco e da quel che ho letto, sono molto valide... perché dannarsi a costruirne una da zero?
Un conto ci fossero in commercio solo pompe da 200 - 300 o 1000 €, ma le Aqua costano sui 40€ l'una ... :)

dr.jekyll
16-10-2014, 17:36
Oltre il risparmio che c'è, considera anche il divertimento nel progettare e realizzare

Ste80
16-10-2014, 17:39
Sul divertirsi nel progettare e realizzare posso essere d'accordo :) ma sul risparmio non saprei. Sicuramente ci sarà risparmio sulle dosatrici di fascia alta, ma su quelle da 40€ ....

dr.jekyll
16-10-2014, 17:46
Considera il balling sono tre pompe da 40 euro l'una = 120 €

Col fai da te:

3 pome circa 30€
1 arduino 25€
4 relè poco più di 4 euro

siamo a 59€ , inoltre tieni conto che con arduino puoi gestire anche altre cose

Ste80
16-10-2014, 17:50
Ah ok, allora le cose cambiano :)
A me invece ne servirebbe solo una per dosare il fitoplancton in acquario e in questo caso risparmierei ad acquistarne una gia pronta e finita (parlando delle Aqua1 ovviamente, non di quelle in vendita su coral-shop che pur stupende, costano un capitale)

dr.jekyll
16-10-2014, 17:55
Si ti conviene anche perchè non è detto che queste pompe cinesi funzionino bene. Io avendo già arduino, ho deciso di provare....Male che va butto 10 euro, se va bene ne risparmio 30

dr.jekyll
18-10-2014, 15:29
Per ora sono a arrivato a questo:

Ho qualche problemino di rimbalzo con i tasti, qualcuno mi può aiutare?



d4BZ8H8lSzM

SirNino
18-10-2014, 20:41
Per ora sono a arrivato a questo:

Ho qualche problemino di rimbalzo con i tasti, qualcuno mi può aiutare?



d4BZ8H8lSzM
Fin dove riesco ad arrivare posso provare io.
cosa ti succede? Hai inserito un tempo di rimbalzo?

dr.jekyll
18-10-2014, 20:51
Ho risolto il problema scrivendo questa funzione

void bounc(){
for (int bounc=0; bounc==0; bounc++){ delay(300);};


che parte ogni qual volta si preme un tasto. Solo vorrei risolvere il problema elettronicamente, senza dover ricorrere a codice. In giro ho letto che si può utilizzare un condensatore messo in parallelo sul pulsante. Tu ne sai qualcosa?


Seconda cosa, posso usare un qualsiasi transistor per misurare la temperatura?


Grazie, alla fine il tuo consiglio di basare il programma su millis() e non su delay si è rilevato fondamentale ;-)

SirNino
18-10-2014, 23:41
Il problema del pulsante è che ti da un delay all'inizio da quanto ricordo (tu schiacci e quando il condensatore è carico il segnale di arduino va su).(comunque domani controllo meglio).

Ma alla fine la funzione che t'ha risolto il problema si basa sul delay!!
ahahah!!

dr.jekyll
19-10-2014, 03:46
Il problema del pulsante è che ti da un delay all'inizio da quanto ricordo (tu schiacci e quando il condensatore è carico il segnale di arduino va su).(comunque domani controllo meglio).

Ma alla fine la funzione che t'ha risolto il problema si basa sul delay!!
ahahah!!
ok grazie


ahahah si però credimi in tutto il programma il delay compare solo in quella funzione.....solo che mi sembrava veramente esagerato usare la millis() [emoji23] [emoji23] [emoji23]

Inviato dal mio GT-I9505 utilizzando Tapatalk

dr.jekyll
19-10-2014, 19:24
Aggiornamento

L'interfaccia utente è quasi completa, manca solo la parte di gestione della temperatura. La implementerò appena mi arriverà il sensore.


L'interfaccia è di facile programmazione e si gestisce con 4 pulsantini nel seguente modo

dalla home

[dx] sfogli set
[sx] torni home
[+] enti nel set

Una volta nel set:

[dx] selezione variabile da modificare
[sx] esci dal set
[+] incrementi variabile set
[-] diminuisci variabile set

m-gNjeDb6kQ

// DR.JEKYLL ENRICOVELA@GMAIL.COM





#include <LiquidCrystal.h>


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);



//VARIBILI tempo
int s=0;
int m=0;
int h=0;
int ktime=1;


//VARIABILI neon

int m_on=0;
int h_on=0;
int m_off=0;
int h_off=0;


//VARIABILI doso

int m_stop=0;
int h_stop=0;
int m_period=0;
int h_period=0;
float ml=0;



//VARIABILI controller

boolean pinsx;
boolean pindx;
boolean pinp;
boolean pinm;
int cas=0;
int cas1=0;






// STAMPA ORARIO variabili: ore, minuti, secondi
void printime(int, int, int){

lcd.setCursor(0, 0);lcd.print("Time ");
lcd.setCursor(5, 0); lcd.print(h);
lcd.setCursor(7, 0);lcd.print(":");
lcd.setCursor(8, 0);lcd.print(m);
lcd.setCursor(10, 0);lcd.print(":");
lcd.setCursor(11, 0);lcd.print(s);

}

// SET NEON h_on, s, m_on, h_off, m_off

void setneonprint_M_ON(int,int,int,int,int){

lcd.setCursor(0, 0);lcd.print("Inzio ") ;
lcd.setCursor(10, 0);lcd.print(h_on) ;
lcd.setCursor(12, 0); lcd.print(":");
if((s%2)==0){ lcd.setCursor(13, 0);lcd.print(m_on);}
if((s%2)!=0){ lcd.setCursor(13, 0);lcd.print(" ");}
lcd.setCursor(15, 0);lcd.print("<");
lcd.setCursor(0, 1);lcd.print("Fine ") ;
lcd.setCursor(10, 1);lcd.print(h_off) ;
lcd.setCursor(12, 1); lcd.print(":");
lcd.setCursor(13, 1);lcd.print(m_off);
}

void setneonprint_H_ON(int,int,int,int,int){

lcd.setCursor(0, 0);lcd.print("Inzio ") ;
if((s%2)==0){ lcd.setCursor(10, 0);lcd.print(h_on);}
if((s%2)!=0){ lcd.setCursor(10, 0);lcd.print(" ");}
lcd.setCursor(12, 0); lcd.print(":");
lcd.setCursor(13, 0);lcd.print(m_on);
lcd.setCursor(15, 0);lcd.print("<");
lcd.setCursor(0, 1);lcd.print("Fine ") ;
lcd.setCursor(10, 1);lcd.print(h_off) ;
lcd.setCursor(12, 1); lcd.print(":");
lcd.setCursor(13, 1);lcd.print(m_off);
}


void setneonprint_M_OFF(int,int,int,int,int){

lcd.setCursor(0, 0);lcd.print("Inzio ") ;
lcd.setCursor(10, 0);lcd.print(h_on) ;
lcd.setCursor(12, 0); lcd.print(":");
lcd.setCursor(13, 0);lcd.print(m_on);
lcd.setCursor(15, 1);lcd.print("<");
lcd.setCursor(0, 1);lcd.print("Fine ") ;
lcd.setCursor(10, 1);lcd.print(h_off) ;
lcd.setCursor(12, 1); lcd.print(":");
if((s%2)==0){ lcd.setCursor(13, 1);lcd.print(m_off);}
if((s%2)!=0){ lcd.setCursor(13, 1);lcd.print(" ");}


}

void setneonprint_H_OFF(int,int,int,int,int){

lcd.setCursor(0, 0);lcd.print("Inzio ") ;
lcd.setCursor(10, 0);lcd.print(h_on) ;
lcd.setCursor(12, 0); lcd.print(":");
lcd.setCursor(13, 0);lcd.print(m_on);
lcd.setCursor(15, 1);lcd.print("<");
lcd.setCursor(0, 1);lcd.print("Fine ") ;
if((s%2)==0){ lcd.setCursor(10, 1);lcd.print(h_off);}
if((s%2)!=0){ lcd.setCursor(10, 1);lcd.print(" ");}
lcd.setCursor(12, 1); lcd.print(":");
lcd.setCursor(13, 1);lcd.print(m_off);


}


// STAMPA SET M ORARIO variabili: ore, minuti, secondi
void setprintime_M(int, int, int){
lcd.setCursor(0, 0);lcd.print("Set time ") ;
lcd.setCursor(11, 0);lcd.print("_") ;
lcd.setCursor(8, 1); lcd.print(h);
lcd.setCursor(10, 1);lcd.print(":");
lcd.setCursor(11, 1);lcd.print(m);
lcd.setCursor(13, 1);lcd.print(":");
lcd.setCursor(14, 1);lcd.print(s);
}


// STAMPA SET H ORARIO variabili: ore, minuti, secondi
void setprintime_H(int, int, int){
lcd.setCursor(0, 0);lcd.print("Set time ") ;
lcd.setCursor(8, 0);lcd.print("_") ;
lcd.setCursor(8, 1); lcd.print(h);
lcd.setCursor(10, 1);lcd.print(":");
lcd.setCursor(11, 1);lcd.print(m);
lcd.setCursor(13, 1);lcd.print(":");
lcd.setCursor(14, 1);lcd.print(s);
}



// STAMPA SET DOSO START STOP H s, h_start, m_start

void setprintdoso_stop_H(int, int, int){

lcd.setCursor(0, 0);lcd.print("Set time stop ");
if((s%2)==0){ lcd.setCursor(0, 1);lcd.print(h_stop);}
if((s%2)!=0){ lcd.setCursor(0, 1);lcd.print(" ");}
lcd.setCursor(2,1); lcd.print(":");
lcd.setCursor(3,1);lcd.print(m_stop);

}

// STAMPA SET DOSO START M h_start, s, m_start,



void setprintdoso_stop_M(int, int, int){

lcd.setCursor(0, 0);lcd.print("Set time stop ");
lcd.setCursor(0,1);lcd.print(h_stop);
lcd.setCursor(2,1); lcd.print(":");
if((s%2)==0){ lcd.setCursor(3, 1);lcd.print(m_stop);}
if((s%2)!=0){ lcd.setCursor(3, 1);lcd.print(" ");}
}


// SET DOSO PERIODO H s, h_period, m_period


void setprintdoso_period_H(int, int, int){

lcd.setCursor(0, 0);lcd.print("Set period ");
if((s%2)==0){ lcd.setCursor(0, 1);lcd.print(h_period);}
if((s%2)!=0){ lcd.setCursor(0, 1);lcd.print(" ");}
lcd.setCursor(2,1); lcd.print(":");
lcd.setCursor(3,1);lcd.print(m_period);

}


// SET DOSO PERIODO M h_period, s, m_period


void setprintdoso_period_M(int, int, int){

lcd.setCursor(0, 0);lcd.print("Set period");
lcd.setCursor(0,1);lcd.print(h_period);
lcd.setCursor(2,1); lcd.print(":");
if((s%2)==0){ lcd.setCursor(3, 1);lcd.print(m_period);}
if((s%2)!=0){ lcd.setCursor(3, 1);lcd.print(" ");}

}



// SET DOSO ML

void setprintdoso_ML(int, float){

lcd.setCursor(0, 0);lcd.print("Set ml per day ");
if((s%2)==0){ lcd.setCursor(0, 1);lcd.print(ml);}
if((s%2)!=0){ lcd.setCursor(0, 1);lcd.print(" ");}
}








// OROLOGIO vaiabili: millis, ktime, secondi, muniti, ore

void clock(int, int, int, int){
long ctime=millis()/1000;

if (ctime-(ktime*1)==0){ s++; ktime++;}
if(s==60){ lcd.begin(16, 2); m++; s=00;}
if(m==60){ lcd.begin(16, 2); h++; m=0;}
if(m==-1){ lcd.begin(16, 2); m=59;}
if(h==24){lcd.begin(16, 2); h=0;}
if(h==-1){lcd.begin(16, 2); h=23;}

}

//SET VARIABILI TEMPO

void h24(int, int){
if (m_on==-1)
{m_on=59;}
if (h_on==-1)
{h_on=23;}

}





//ELIMINA IN RIMBALZO DEI TASTI
void bounc(){
for (int bounc=0; bounc==0; bounc++){ delay(300);};
}

//LEGGE TUTTI GLI INGRESSI DEL CONTROLL tasti: +, -, sinistra, destra

void allread(boolean, boolean, boolean, boolean){

pinp=digitalRead(6);
pinm=digitalRead(7);
pindx=digitalRead(8);
pinsx=digitalRead(9);
}



void setup() {

// controller
pinMode(6, INPUT); // +
pinMode(7, INPUT); // -
pinMode(8, INPUT); // destra
pinMode(9, INPUT); // sinistra
lcd.begin(16,2);



}




void loop() {



lcd.setCursor(0, 0);
printime(h, m, s);
clock(ktime, s, m, h);

pindx=digitalRead(8);


if(pindx==HIGH){cas=1; lcd.begin(16,2);}




/*SET TIME*/ while (cas==1){
clock(ktime, s, m, h);
lcd.setCursor(2, 0);
lcd.print("Set time(1/4)");
lcd.setCursor(0, 1);
lcd.print("x");
lcd.setCursor(14, 1);
lcd.print("=>");
bounc();
pinp=digitalRead(6);
pindx=digitalRead(8);
pinsx=digitalRead(9);
if (pindx==HIGH){cas=cas+1;}
if (pinsx==HIGH){lcd.begin(16,2) ;cas=0;}
if (pinp==HIGH){lcd.begin(16,2); cas1=1; bounc();}
while(cas1==1){
clock(ktime, s, m, h);
setprintime_M(h, m, s);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){m=m+1;bounc();}
if(pinm==HIGH){m=m-1;bounc();}
if (pindx==HIGH){bounc();cas1=2; lcd.begin(16,2);}
while(cas1==2){
clock(ktime, s, m, h);
setprintime_H(h, m, s);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){h=h+1;bounc();}
if(pinm==HIGH){h=h-1;bounc();}
if (pindx==HIGH){bounc();cas1=1; lcd.begin(16,2);}
}

}



/*SET NEON*/ while (cas==2){
clock(ktime, s, m, h);
lcd.setCursor(2, 0);
lcd.print("Set neon(2/4)");
lcd.setCursor(0, 1);
lcd.print("x");
lcd.setCursor(14, 1);
lcd.print("=>");
bounc();
pinp=digitalRead(6);
pindx=digitalRead(8);
pinsx=digitalRead(9);
if (pindx==HIGH){cas=cas+1;}
if (pinsx==HIGH){lcd.begin(16,2); cas=0;}

if (pinp==HIGH){lcd.begin(16,2); cas1=1; bounc();}

/*m on */ while(cas1==1){
clock(ktime,s,m,h);
setneonprint_M_ON(h_on,s,m_on,h_off,m_off);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){m_on=m_on+1;bounc();}
if(pinm==HIGH){m_on=m_on-1;bounc();}
if (m_on==-1){m_on=59;}
if (pindx==HIGH){bounc();cas1=2; lcd.begin(16,2);}

/*h on*/ while(cas1==2){
clock(ktime, s, m, h);
setneonprint_H_ON(s,h_on,m_on,h_off,m_off);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){h_on=h_on+1;bounc();}
if(pinm==HIGH){h_on=h_on-1;bounc();}
if (h_on==-1){h_on=23;}
if (pindx==HIGH){bounc();cas1=3; lcd.begin(16,2);}

/*m off*/ while(cas1==3){
clock(ktime,s,m,h);
setneonprint_M_OFF(h_on,m_on,h_off,s,m_off);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){m_off=m_off+1;bounc();}
if(pinm==HIGH){m_off=m_off-1;bounc();}
if (m_off==-1){m_off=59;}
if (pindx==HIGH){bounc();cas1=4; lcd.begin(16,2);}

/*h off*/ while(cas1==4){
clock(ktime,s,m,h);
setneonprint_H_OFF(h_on,m_on,s,h_off,m_off);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){h_off=h_off+1;bounc();}
if(pinm==HIGH){h_off=h_off-1;bounc();}
if (h_off==-1){h_off=23;}
if (pindx==HIGH){bounc();cas1=1; lcd.begin(16,2);}
}
}
}
}
}





/*SET DOSO*/ while (cas==3){
clock(ktime, s, m, h);
lcd.setCursor(2, 0);
lcd.print("Set doso(3/4)");
lcd.setCursor(0, 1);
lcd.print("x");
lcd.setCursor(14, 1);
lcd.print("=>");
bounc();
pinp=digitalRead(6);
pindx=digitalRead(8);
pinsx=digitalRead(9);
if (pindx==HIGH){cas=cas+1;}
if (pinsx==HIGH){cas=0; lcd.begin(16,2);}
if (pinp==HIGH){lcd.begin(16,2); cas1=1; bounc();}

/*m stop */ while(cas1==1){
clock(ktime,s,m,h);
setprintdoso_stop_M(h_stop, s, m_stop);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){m_stop=m_stop+1;bounc();}
if(pinm==HIGH){m_stop=m_stop-1;bounc();}
if (m_on==-1){m_stop=59;}
if (pindx==HIGH){bounc();cas1=2; lcd.begin(16,2);}


/*h sto*/ while(cas1==2){
clock(ktime, s, m, h);
setprintdoso_stop_H(s,h_stop, m_stop);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){h_stop=h_stop+1;bounc();}
if(pinm==HIGH){h_stop=h_stop-1;bounc();}
if (h_stop==-1){h_stop=23;}
if (pindx==HIGH){bounc();cas1=3; lcd.begin(16,2);}
/*period m*/

while(cas1==3){
clock(ktime,s,m,h);
setprintdoso_period_M(h_period,s,m_period);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){m_period=m_period+1;bounc();}
if(pinm==HIGH){m_period=m_period-1;bounc();}
if (m_period==-1){m_period=59;}
if (pindx==HIGH){bounc();cas1=4; lcd.begin(16,2);}
/*period h*/

while(cas1==4){
clock(ktime,s,m,h);
setprintdoso_period_H(s, h_period, m_period);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){h_period=h_period+1;bounc();}
if(pinm==HIGH){h_period=h_period-1;bounc();}
if (h_period==-1){h_period=23;}
if (pindx==HIGH){bounc();cas1=5; lcd.begin(16,2);}


while(cas1==5){
clock(ktime,s,m,h);
setprintdoso_ML(s, ml);
allread(pinp,pinm, pinsx,pindx);
if (pinsx==HIGH){cas1=0; lcd.begin(16,2);}
if(pinp==HIGH){ml=ml+0.25;bounc();}
if(pinm==HIGH){ml=ml-0.25;bounc();}
/* REGOLA ML MAX */ if (ml==-2){ml=10;}
if (pindx==HIGH){bounc();cas1=1; lcd.begin(16,2);}
}


}
}


}
}




/*SET TEMPERATURA*/ while (cas==4){
clock(ktime, s, m, h);
lcd.setCursor(2, 0);
lcd.print("Set temp(4/4)");
lcd.setCursor(0, 1);
lcd.print("x");
lcd.setCursor(14, 1);
lcd.print("=>");
bounc();
pindx=digitalRead(8);
pinsx=digitalRead(9);
if (pindx==HIGH){cas=1;}
if (pinsx==HIGH){cas=0; lcd.begin(16,2);}
}


}
}
}

fito_89
21-10-2014, 09:23
Scusate se m'intrometto, ma ho visto che da un paio d'anni sono in commercio le pompe dosatrici "aqua1 PD-2 0 0 1 e PD-2 0 0 2" che costano davvero poco e da quel che ho letto, sono molto valide... perché dannarsi a costruirne una da zero?
Un conto ci fossero in commercio solo pompe da 200 - 300 o 1000 €, ma le Aqua costano sui 40€ l'una ... :)

soddisfazione personale, e poi gia che sto gestendo tutto con arduino tanto vale gestire anche quelle no?

dr.jekyll
21-10-2014, 19:18
Scusate se m'intrometto, ma ho visto che da un paio d'anni sono in commercio le pompe dosatrici "aqua1 PD-2 0 0 1 e PD-2 0 0 2" che costano davvero poco e da quel che ho letto, sono molto valide... perché dannarsi a costruirne una da zero?
Un conto ci fossero in commercio solo pompe da 200 - 300 o 1000 €, ma le Aqua costano sui 40€ l'una ... :)

soddisfazione personale, e poi gia che sto gestendo tutto con arduino tanto vale gestire anche quelle no?

riesci a passarmi le dimensioni della pompa? Ho quasi finito il codice e vorrei iniziare a pensare al modi di sistemare il tutto

SirNino
21-10-2014, 21:24
Scusate se m'intrometto, ma ho visto che da un paio d'anni sono in commercio le pompe dosatrici "aqua1 PD-2 0 0 1 e PD-2 0 0 2" che costano davvero poco e da quel che ho letto, sono molto valide... perché dannarsi a costruirne una da zero?
Un conto ci fossero in commercio solo pompe da 200 - 300 o 1000 €, ma le Aqua costano sui 40€ l'una ... :)

soddisfazione personale, e poi gia che sto gestendo tutto con arduino tanto vale gestire anche quelle no?

riesci a passarmi le dimensioni della pompa? Ho quasi finito il codice e vorrei iniziare a pensare al modi di sistemare il tutto
Se intende quelle che vanno installate in batterie da 4 io le ho, sono cm 11x7x6h.
Non sono pompe normali peró, sono pompe "autogestione"; hanno la gestione della frequenza e degli ml più la taratura.
Per utilizzarle (io c'ho pensato per le mie) devi smontarle e modificarle.

dr.jekyll
22-10-2014, 00:49
No, io dico le cinesi che si trovano a sui 10 euro online

Inviato dal mio GT-I9505 utilizzando Tapatalk