Visualizza un messaggio singolo
Vecchio 19-10-2014, 19:24   #35
dr.jekyll
Ospite
 
Messaggi: n/a
Foto: Albums:
Post "Grazie" / "Mi Piace"
Grazie (Dati):
Grazie (Ricev.):
Mi piace (Dati):
Mi piace (Ricev.):
Mentioned: Post(s)

Annunci Mercatino:
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

Clicca per vedere il video su YouTube Video

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


}
}
}













  Rispondi quotando
 
Page generated in 0,20788 seconds with 12 queries