Visualizza un messaggio singolo
Vecchio 13-08-2014, 16:51   #23
SirNino
Ciclide
 
L'avatar di SirNino
 
Registrato: Oct 2010
Città: Carpi (MO)
Acquariofilo: Dolce
N° Acquari: 1
Età : 47
Messaggi: 1.239
Foto: 0 Albums: 1
Post "Grazie" / "Mi Piace"
Grazie (Dati):
Grazie (Ricev.):
Mi piace (Dati):
Mi piace (Ricev.):
Mentioned: 45 Post(s)
Feedback 7/100%
Invia un messaggio tramite MSN a SirNino Invia un messaggio tramite Skype a SirNino

Annunci Mercatino: 0
Purtroppo ho dovuto "tagliare" in due il codice perché troppo lungo per essere pubblicato intero.

Quello che segue è solo il completamento del codice precedente.

codice:
  void loop(void)
  {
    char buffer[10] = ""; 
    DateTime now = RTC.now();
    readButtons();  
    navigateMenus();
    rilevTemp();

    if (temperatura > (tRefrig + dRefrig)){
      digitalWrite(refrig,HIGH);
    }
    else {
      digitalWrite(refrig,LOW);
    }
    if (temperatura < (tRisc - dRisc)){
      digitalWrite(risc,HIGH);
    }
    else {
      digitalWrite(risc,LOW);
      
    }     
    if (now.hour() == ACH1h && now.minute() == ACH1m){
      tramonto1 = false;
      alba1 = true;
    }
    if (now.hour() == TCH1h && now.minute() == TCH1m) {
      alba1 = false;
    }  
    if (now.hour() == ACH2h && now.minute() == ACH2m){
      tramonto2 = false;
      alba2 = true;
    }
    if (now.hour() == TCH2h && now.minute() == TCH2m) {
      alba2 = false;
    }   
    if (now.hour() == ACH3h && now.minute() == ACH3m){
      tramonto3 = false;
      alba3 = true;
    }
    if (now.hour() == TCH3h && now.minute() == TCH3m) {
      alba3 = false;
    }    
    if (now.hour() == ACH4h && now.minute() == ACH4m){
      tramonto4 = false;
      alba4 = true;
    }
    if (now.hour() == TCH4h && now.minute() == TCH4m) {
      alba4 = false;
    }    
    if (now.hour() == ACH5h && now.minute() == ACH5m){
      tramonto5 = false;
      alba5 = true;
    }
    if (now.hour() == TCH5h && now.minute() == TCH5m) {
      alba5 = false;
    }    
    if (now.hour() == ACH6h && now.minute() == ACH6m){
      tramonto6 = false;
      alba6 = true;
    }
    if (now.hour() == TCH6h && now.minute() == TCH6m) {
      alba6 = false;
    }    
    if (now.hour() == ACH7h && now.minute() == ACH7m){
      tramonto7 = false;
      alba7 = true;
    }
    if (now.hour() == TCH7h && now.minute() == TCH7m) {
      alba7 = false;
    }    
    if (now.hour() == ACH8h && now.minute() == ACH8m){
      tramonto8 = false;
      alba8 = true;
    }
    if (now.hour() == TCH8h && now.minute() == TCH8m) {
      alba8 = false;
    } 
    //                                                                              INIZIO IF   ALBA CANALE1
    if (now.hour() >= ACH1h && now.minute() >= ACH1m && tramonto1 == false ) {
      //fnAlba1();
    x1++;
    analogWrite(LED1, x1);
    if (x1 == 255){
      tramonto1=true;
    }
    stepA11 = stepA11 + stepA1;
    }
    else{
      stepA11 = millis();
    }                                                                          //    FINE IF   ALBA CANALE1
                                                                              //     INIZIO IF TRAMONTO CANALE1
    
    if (now.hour() >= TCH1h && now.minute() >= TCH1m && alba1 == false ) {
    x1--;
    analogWrite(LED1, x1);
    if (x1 == 0){;
      alba1=true;
    }
    stepT11 = stepT11 + stepT1;
    }
    else{
      stepT11 = millis();
    }                                                                             //  FINE IF   TRAMONTO CANALE1
    
    
    //                                                                              INIZIO IF   ALBA CANALE2
    if (now.hour() >= ACH2h && now.minute() >= ACH2m && tramonto2 == false ) {
      //fnAlba1();
    x2++;
    analogWrite(LED2, x2);
    if (x2 == 255){
      tramonto2=true;
    }
    stepA22 = stepA22 + stepA2;
    }
    else{
      stepA22 = millis();
    }                                                                          //    FINE IF   ALBA CANALE2
                                                                              //     INIZIO IF TRAMONTO CANALE2
    
    if (now.hour() >= TCH2h && now.minute() >= TCH2m && alba2 == false ) {
    x2--;
    analogWrite(LED2, x2);
    if (x2 == 0){;
      alba2=true;
    }
    stepT22 = stepT22 + stepT2;
    }
    else{
      stepT22 = millis();
    }                                                                             //  FINE IF   TRAMONTO CANALE2
    
    //                                                                              INIZIO IF   ALBA CANALE3
    if (now.hour() >= ACH3h && now.minute() >= ACH3m && tramonto3 == false ) {
      //fnAlba1();
    x3++;
    analogWrite(LED3, x3);
    if (x3 == 255){
      tramonto3=true;
    }
    stepA33 = stepA33 + stepA3;
    }
    else{
      stepA33 = millis();
    }                                                                          //    FINE IF   ALBA CANALE3
                                                                              //     INIZIO IF TRAMONTO CANALE3
    
    if (now.hour() >= TCH3h && now.minute() >= TCH3m && alba3 == false ) {
    x3--;
    analogWrite(LED3, x3);
    if (x3 == 0){;
      alba3=true;
    }
    stepT33 = stepT33 + stepT3;
    }
    else{
      stepT33 = millis();
    }                                                                             //  FINE IF   TRAMONTO CANALE3
    
    //                                                                              INIZIO IF   ALBA CANALE4
    if (now.hour() >= ACH4h && now.minute() >= ACH4m && tramonto4 == false ) {
      //fnAlba1();
    x4++;
    analogWrite(LED4, x4);
    if (x4 == 255){
      tramonto4=true;
    }
    stepA44 = stepA44 + stepA4;
    }
    else{
      stepA44 = millis();
    }                                                                          //    FINE IF   ALBA CANALE4
                                                                              //     INIZIO IF TRAMONTO CANALE4
    
    if (now.hour() >= TCH4h && now.minute() >= TCH4m && alba4 == false ) {
    x4--;
    analogWrite(LED4, x4);
    if (x4 == 0){;
      alba4=true;
    }
    stepT44 = stepT44 + stepT4;
    }
    else{
      stepT44 = millis();
    }                                                                             //  FINE IF   TRAMONTO CANALE4
    
    //                                                                              INIZIO IF   ALBA CANALE5
    if (now.hour() >= ACH5h && now.minute() >= ACH5m && tramonto5 == false ) {
      //fnAlba1();
    x5++;
    analogWrite(LED5, x5);
    if (x5 == 255){
      tramonto5 = true;
    }
    stepA55 = stepA55 + stepA5;
    }
    else{
      stepA55 = millis();
    }                                                                          //    FINE IF   ALBA CANALE5
                                                                              //     INIZIO IF TRAMONTO CANALE5
    
    if (now.hour() >= TCH5h && now.minute() >= TCH5m && alba5 == false ) {
    x5--;
    analogWrite(LED5, x5);
    if (x5 == 0){;
      alba5=true;
    }
    stepT55 = stepT55 + stepT5;
    }
    else{
      stepT55 = millis();
    }                                                                             //  FINE IF   TRAMONTO CANALE5
    
    //                                                                              INIZIO IF   ALBA CANALE6
    if (now.hour() >= ACH6h && now.minute() >= ACH6m && tramonto6 == false ) {
      //fnAlba1();
    x6++;
    analogWrite(LED6, x6);
    if (x6 == 255){
      tramonto6 = true;
    }
    stepA66 = stepA66 + stepA6;
    }
    else{
      stepA66 = millis();
    }                                                                          //    FINE IF   ALBA CANALE6
                                                                              //     INIZIO IF TRAMONTO CANALE6
    
    if (now.hour() >= TCH6h && now.minute() >= TCH6m && alba6 == false ) {
    x6--;
    analogWrite(LED6, x6);
    if (x6 == 0){;
      alba6 = true;
    }
    stepT66 = stepT66 + stepT6;
    }
    else{
      stepT66 = millis();
    }                                                                             //  FINE IF   TRAMONTO CANALE6
    
    //                                                                              INIZIO IF   ALBA CANALE7
    if (now.hour() >= ACH7h && now.minute() >= ACH7m && tramonto7 == false ) {
      //fnAlba1();
    x7++;
    analogWrite(LED7, x7);
    if (x7 == 255){
      tramonto7=true;
    }
    stepA77 = stepA77 + stepA7;
    }
    else{
      stepA77 = millis();
    }                                                                          //    FINE IF   ALBA CANALE7
                                                                              //     INIZIO IF TRAMONTO CANALE7
    
    if (now.hour() >= TCH7h && now.minute() >= TCH7m && alba7 == false ) {
    x7--;
    analogWrite(LED7, x7);
    if (x7 == 0){;
      alba7=true;
    }
    stepT77 = stepT77 + stepT7;
    }
    else{
      stepT77 = millis();
    }                                                                             //  FINE IF   TRAMONTO CANALE7
    
    //                                                                              INIZIO IF   ALBA CANALE8
    if (now.hour() >= ACH8h && now.minute() >= ACH8m && tramonto8 == false ) {
      //fnAlba1();
    x8++;
    analogWrite(LED8, x8);
    if (x8 == 255){
      tramonto8=true;
    }
    stepA88 = stepA88 + stepA8;
    }
    else{
      stepA88 = millis();
    }                                                                          //    FINE IF   ALBA CANALE8
                                                                              //     INIZIO IF TRAMONTO CANALE8
    
    if (now.hour() >= TCH8h && now.minute() >= TCH8m && alba8 == false ) {
    x8--;
    analogWrite(LED8, x8);
    if (x8 == 0){;
      alba8=true;
    }
    stepT88 = stepT88 + stepT8;
    }
    else{
      stepT88 = millis();
    }                                                                             //  FINE IF   TRAMONTO CANALE8
    
    

  switch (nMenu){



  case 0:
    if ( digitalRead( buttonMeno ) == HIGH || ( digitalRead( buttonPiu )) == HIGH) { 
      time = millis(); 
    }

    
    lcd.clear();

    sprintf(buffer,  "%02d/%02d/%d", now.day(), now.month(), now.year());
    lcd.setCursor(0,0);
    lcd.print( buffer );


    sprintf(buffer,  "%02d:%02d", now.hour(), now.minute());
    lcd.setCursor(11,0);
    lcd.print( buffer );
    lcd.setCursor(0,1);
    lcd.print("Temperatura: ");
    lcd.setCursor(13,1);
    lcd.print(temperatura);
    lcd.setCursor(15,1);
    lcd.print(char(223));
    
    if (time > 0 && setModeTime < (millis() - time) ) { 
      setMode( now ); 
    }


    if ( digitalRead( buttonPinEsc ) == HIGH) { 

      lcd.setCursor(0,1);
      //sprintf( buffer); 
    }
    else if ( digitalRead( buttonPinEsc ) == LOW) {
      char buffer[10] = "";
      (buffer,  "%02d/%02d/%d", now.day(), now.month(), now.year());
    }


    //delay(1000);
    break;

  case 1:

    // char CH1ora[5]="";

    if (digitalRead(buttonPiu) == HIGH) {
      ACH1h = (ACH1h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      ACH1m = (ACH1m++);
      delay(200);
    }
    if (ACH1h > 23) { 
      ACH1h = 0; 
    }
    if (ACH1m > 59) { 
      ACH1m = 0; 
    }
    sprintf(CH1ora,"");
    sprintf(CH1ora,  "%02d:%02d", ACH1h, ACH1m);
    lcd.setCursor(0,1);
    lcd.print( CH1ora );  


    break;

  case 2:
    if (digitalRead(buttonPiu) == HIGH){
      FACH1=(FACH1++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH1);
    }
    if (digitalRead(buttonMeno) == HIGH && FACH1 >=1){
      FACH1=(FACH1--);
      delay(300);

      lcd.setCursor(0,1);
      lcd.print(FACH1);
    }
    stepA1 = ((FACH1 * 60000)/255);
    break;   

  case 3:

    if (digitalRead(buttonPiu) == HIGH) {
      TCH1h = (TCH1h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      TCH1m = (TCH1m++);
      delay(200);
    }
    if (TCH1h > 23) { 
      TCH1h = 0; 
    }
    if (TCH1m > 59) { 
      TCH1m = 0; 
    }
    sprintf(CH1ora,"");
    sprintf(CH1ora,  "%02d:%02d", TCH1h, TCH1m);
    lcd.setCursor(0,1);
    lcd.print( CH1ora ); 
    break;


  case 4:
    if (digitalRead(buttonPiu) == HIGH){
      FTCH1=(FTCH1++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH1);
    }
    if (digitalRead(buttonMeno) == HIGH){
      FTCH1=(FTCH1--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH1);
    }
    stepT2 = ((FTCH1*60000)/255);
    break;


  case 5:

    // char CH1ora[5]="";

    if (digitalRead(buttonPiu) == HIGH) {
      ACH2h = (ACH2h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      ACH2m = (ACH2m++);
      delay(200);
    }
    if (ACH2h > 23) { 
      ACH2h = 0; 
    }
    if (ACH2m > 59) { 
      ACH2m = 0; 
    }
    sprintf(CH2ora,"");
    sprintf(CH2ora,  "%02d:%02d", ACH2h, ACH2m);
    lcd.setCursor(0,1);
    lcd.print( CH2ora );  


    break;

  case 6:
    if (digitalRead(buttonPiu) == HIGH){
      FACH2=(FACH2++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH2);
    }
    if (digitalRead(buttonMeno) == HIGH){
      FACH2=(FACH2--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH2);
    }
    stepA2=((FACH2*60000)/255);
    break;    

  case 7:

    if (digitalRead(buttonPiu) == HIGH) {
      TCH2h = (TCH2h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      TCH2m = (TCH2m++);
      delay(200);
    }
    if (TCH2h > 23) { 
      TCH2h = 0; 
    }
    if (TCH2m > 59) { 
      TCH2m = 0; 
    }
    sprintf(CH2ora,"");
    sprintf(CH2ora,  "%02d:%02d", TCH2h, TCH2m);
    lcd.setCursor(0,1);
    lcd.print( CH2ora );  


    break;

  case 8:
    if (digitalRead(buttonPiu) == HIGH){
      FTCH2=(FTCH2++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH2);
    }
    if (digitalRead(buttonMeno) == HIGH){
      FTCH2=(FTCH2--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH2);
    }
    stepT2 = ((FTCH2*60000)/255);
    break;  


  case 9:

    // char CH1ora[5]="";

    if (digitalRead(buttonPiu) == HIGH) {
      ACH3h = (ACH3h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      ACH3m = (ACH3m++);
      delay(200);
    }
    if (ACH3h > 23) { 
      ACH3h = 0; 
    }
    if (ACH3m > 59) { 
      ACH3m = 0; 
    }
    sprintf(CH3ora,"");
    sprintf(CH3ora,  "%02d:%02d", ACH3h, ACH3m);
    lcd.setCursor(0,1);
    lcd.print( CH3ora );  


    break;

  case 10:
    if (digitalRead(buttonPiu) == HIGH){
      FACH3=(FACH3++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH3);
    }
    if (digitalRead(buttonMeno) == HIGH && FACH3 >=1){
      FACH3=(FACH3--);
      delay(300);

      lcd.setCursor(0,1);
      lcd.print(FACH3);
    }
    stepA3 = ((FACH3*60000)/255);
    break;   

  case 11:

    if (digitalRead(buttonPiu) == HIGH) {
      TCH3h = (TCH3h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      TCH3m = (TCH3m++);
      delay(200);
    }
    if (TCH3h > 23) { 
      TCH3h = 0; 
    }
    if (TCH3m > 59) { 
      TCH3m = 0; 
    }
    sprintf(CH3ora,"");
    sprintf(CH3ora,  "%02d:%02d", TCH3h, TCH3m);
    lcd.setCursor(0,1);
    lcd.print( CH3ora );  


    break;


  case 12:
    if (digitalRead(buttonPiu) == HIGH){
      FTCH3=(FTCH3++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH3);
    }
    if (digitalRead(buttonMeno) == HIGH){
      FTCH3=(FTCH3--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH3);
    }
    stepT3 = ((FTCH3*60000)/255);
    break;

  case 13:

    // char CH1ora[5]="";

    if (digitalRead(buttonPiu) == HIGH) {
      ACH4h = (ACH4h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      ACH4m = (ACH4m++);
      delay(200);
    }
    if (ACH4h > 23) { 
      ACH4h = 0; 
    }
    if (ACH4m > 59) { 
      ACH4m = 0; 
    }
    sprintf(CH4ora,"");
    sprintf(CH4ora,  "%02d:%02d", ACH4h, ACH4m);
    lcd.setCursor(0,1);
    lcd.print( CH4ora );  


    break;

  case 14:
    if (digitalRead(buttonPiu) == HIGH){
      (FACH4++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH4);
    }
    if (digitalRead(buttonMeno) == HIGH && FACH4 >=1){
      (FACH4--);
      delay(300);

      lcd.setCursor(0,1);
      lcd.print(FACH4);
    }
    stepA4 = ((FACH4*60000)/255);
    break;   

  case 15:

    if (digitalRead(buttonPiu) == HIGH) {
      TCH4h = (TCH4h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      TCH4m = (TCH4m++);
      delay(200);
    }
    if (TCH4h > 23) { 
      TCH4m = 0; 
    }
    if (TCH4m > 59) { 
      TCH4m = 0; 
    }
    sprintf(CH4ora,"");
    sprintf(CH4ora,  "%02d:%02d", TCH4h, TCH4m);
    lcd.setCursor(0,1);
    lcd.print( CH4ora ); 
    break;


  case 16:
    if (digitalRead(buttonPiu) == HIGH){
      (FTCH4++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH4);
    }
    if (digitalRead(buttonMeno) == HIGH){
      (FTCH4--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH4);
    }
    stepT4 = ((FTCH4*60000)/255);
    break;


  case 17:
    if (digitalRead(buttonPiu) == HIGH) {
      ACH5h = (ACH5h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      ACH5m = (ACH5m++);
      delay(200);
    }
    if (ACH5h > 23) { 
      ACH5h = 0; 
    }
    if (ACH5m > 59) { 
      ACH5m = 0; 
    }
    sprintf(CH5ora,"");
    sprintf(CH5ora,  "%02d:%02d", ACH5h, ACH5m);
    lcd.setCursor(0,1);
    lcd.print( CH5ora );  


    break;

  case 18:
    if (digitalRead(buttonPiu) == HIGH){
      (FACH5++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH5);
    }
    if (digitalRead(buttonMeno) == HIGH){
      (FACH5--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH5);
    }
    stepA5 = ((FACH5*60000)/255);
    break;    

  case 19:

    if (digitalRead(buttonPiu) == HIGH) {
      TCH5h = (TCH5h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      TCH5m = (TCH5m++);
      delay(200);
    }
    if (TCH5h > 23) { 
      TCH5h = 0; 
    }
    if (TCH5m > 59) { 
      TCH5m = 0; 
    }
    sprintf(CH5ora,"");
    sprintf(CH5ora,  "%02d:%02d", TCH5h, TCH5m);
    lcd.setCursor(0,1);
    lcd.print( CH5ora );  


    break;

  case 20:
    if (digitalRead(buttonPiu) == HIGH){
      (FTCH5++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH5);
    }
    if (digitalRead(buttonMeno) == HIGH){
      (FTCH5--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH5);
    }
    stepT5 = ((FTCH5*60000)/255);
    break;  


  case 21:
    if (digitalRead(buttonPiu) == HIGH) {
      (ACH6h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      (ACH6m++);
      delay(200);
    }
    if (ACH6h > 23) { 
      ACH6h = 0; 
    }
    if (ACH6m > 59) { 
      ACH6m = 0; 
    }
    sprintf(CH6ora,"");
    sprintf(CH6ora,  "%02d:%02d", ACH6h, ACH6m);
    lcd.setCursor(0,1);
    lcd.print( CH6ora );  


    break;

  case 22:
    if (digitalRead(buttonPiu) == HIGH){
      (FACH6++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH6);
    }
    if (digitalRead(buttonMeno) == HIGH){
      FACH6=(FACH6--);
      delay(300);

      lcd.setCursor(0,1);
      lcd.print(FACH6);
    }
    stepA6 = ((FACH6*60000)/255);
    break;   

  case 23:

    if (digitalRead(buttonPiu) == HIGH) {
      (TCH6h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      (TCH6m++);
      delay(200);
    }
    if (TCH6h > 23) { 
      TCH6h = 0; 
    }
    if (TCH6m > 59) { 
      TCH6m = 0; 
    }
    sprintf(CH6ora,"");
    sprintf(CH6ora,  "%02d:%02d", TCH6h, TCH6m);
    lcd.setCursor(0,1);
    lcd.print( CH6ora );  


    break;


  case 24:
    if (digitalRead(buttonPiu) == HIGH){
      (FTCH6++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH6);
    }
    if (digitalRead(buttonMeno) == HIGH){
      (FTCH6--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH6);
    }
    stepT6 = ((FTCH6*60000)/255);
    break;


  case 25:

    // char CH1ora[5]="";

    if (digitalRead(buttonPiu) == HIGH) {
      (ACH7h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      (ACH7m++);
      delay(200);
    }
    if (ACH7h > 23) { 
      ACH7h = 0; 
    }
    if (ACH7m > 59) { 
      ACH7m = 0; 
    }
    sprintf(CH7ora,"");
    sprintf(CH7ora,  "%02d:%02d", ACH7h, ACH7m);
    lcd.setCursor(0,1);
    lcd.print( CH7ora );  


    break;

  case 26:
    if (digitalRead(buttonPiu) == HIGH){
      (FACH7++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH7);
    }
    if (digitalRead(buttonMeno) == HIGH){
      (FACH7--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH7);
    }
    stepA7 = ((FACH7*60000)/255);
    break;    

  case 27:

    if (digitalRead(buttonPiu) == HIGH) {
      (TCH7h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      (TCH7m++);
      delay(200);
    }
    if (TCH7h > 23) { 
      TCH7h = 0; 
    }
    if (TCH7m > 59) { 
      TCH7m = 0; 
    }
    sprintf(CH7ora,"");
    sprintf(CH7ora,  "%02d:%02d", TCH7h, TCH7m);
    lcd.setCursor(0,1);
    lcd.print( CH7ora );  


    break;

  case 28:
    if (digitalRead(buttonPiu) == HIGH){
      (FTCH7++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH7);
    }
    if (digitalRead(buttonMeno) == HIGH){
      (FTCH7--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH7);
    }
    stepT7 = ((FTCH7*60000)/255);
    break;

  case 29:

    // char CH1ora[5]="";

    if (digitalRead(buttonPiu) == HIGH) {
      (ACH8h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      (ACH8m++);
      delay(200);
    }
    if (ACH8h > 23) { 
      ACH8h = 0; 
    }
    if (ACH8m > 59) { 
      ACH8m = 0; 
    }
    sprintf(CH8ora,"");
    sprintf(CH8ora,  "%02d:%02d", ACH8h, ACH8m);
    lcd.setCursor(0,1);
    lcd.print( CH8ora );  


    break;

  case 30:
    if (digitalRead(buttonPiu) == HIGH){
      (FACH8++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FACH8);
    }
    if (digitalRead(buttonMeno) == HIGH ){
      (FACH8--);
      delay(300);

      lcd.setCursor(0,1);
      lcd.print(FACH8);
    }
    stepA8 = ((FACH8*60000)/255);
    break;   

  case 31:

    if (digitalRead(buttonPiu) == HIGH) {
      (TCH8h++);
      delay(200);
    }
    if (digitalRead(buttonMeno) == HIGH) {
      (TCH8m++);
      delay(200);
    }
    if (TCH8h > 23) { 
      TCH8h = 0; 
    }
    if (TCH8m > 59) { 
      TCH8m = 0; 
    }
    sprintf(CH8ora,"");
    sprintf(CH8ora,  "%02d:%02d", TCH8h, TCH8m);
    lcd.setCursor(0,1);
    lcd.print( CH8ora ); 
    break;


  case 32:
    if (digitalRead(buttonPiu) == HIGH){
      (FTCH8++);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH8);
    }
    if (digitalRead(buttonMeno) == HIGH){
      (FTCH8--);
      delay(300);
      //lcd.clear;
      lcd.setCursor(0,1);
      lcd.print(FTCH8);
    }
    stepT8 = ((FTCH8*60000)/255);
    break;

  case 33:
    if (digitalRead(buttonPiu) == HIGH){
      tRisc=(tRisc+0.1);
      delay(300);
      lcd.setCursor(0,1);
      lcd.print(tRisc);
    }
    if (digitalRead(buttonMeno) == HIGH){
      tRisc=(tRisc-0.1);
      delay(300);
      lcd.setCursor(0,1);
      lcd.print(tRisc);
    }
    break;

  case 34:
    if (digitalRead(buttonPiu) == HIGH){
      dRisc=(dRisc+0.1);
      delay(300);
      lcd.setCursor(0,1);
      lcd.print(dRisc);
    }
    if (digitalRead(buttonMeno) == HIGH){
      dRisc=(dRisc-0.1);
      delay(300);
      lcd.setCursor(0,1);
      lcd.print(dRisc);
    }
    break;

  case 35:
    if (digitalRead(buttonPiu) == HIGH){
      tRefrig=(tRefrig+0.1);
      delay(300);
      lcd.setCursor(0,1);
      lcd.print(tRefrig);
    }
    if (digitalRead(buttonMeno) == HIGH){
      tRefrig=(tRefrig-0.1);
      delay(300);
      lcd.setCursor(0,1);
      lcd.print(tRefrig);
    }
    break;

  case 36:
    if (digitalRead(buttonPiu) == HIGH){
      dRefrig=(dRefrig+0.1);
      delay(300);
      lcd.setCursor(0,1);
      lcd.print(dRefrig);
    }
    if (digitalRead(buttonMeno) == HIGH){
      dRefrig=(dRefrig-0.1);
      delay(300);
      lcd.setCursor(0,1);
      lcd.print(dRefrig);
    }
    break;
    
  case 100:
    if ( digitalRead( buttonMeno ) == HIGH || ( digitalRead( buttonPiu )) == HIGH) { 
      time = millis(); 
    }

    /*
    lcd.clear();

    sprintf(buffer,  "%02d/%02d/%d", now.day(), now.month(), now.year());
    lcd.setCursor(0,0);
    lcd.print( buffer );


    sprintf(buffer,  "%02d:%02d", now.hour(), now.minute());
    lcd.setCursor(11,0);
    lcd.print( buffer );
    lcd.setCursor(0,1);
    lcd.print("Temperatura: ");
    lcd.setCursor(13,1);
    lcd.print(temperatura);
    lcd.setCursor(15,1);
    lcd.print(char(223));
    */
    if (time > 0 && setModeTime < (millis() - time) ) { 
      setMode( now ); 
    }


    if ( digitalRead( buttonPinEsc ) == HIGH) { 

      lcd.setCursor(0,1);
      //sprintf( buffer); 
    }
    else if ( digitalRead( buttonPinEsc ) == LOW) {
      char buffer[10] = "";
      (buffer,  "%02d/%02d/%d", now.day(), now.month(), now.year());
    }


    delay(1000);
    break;






  }   //  SWITCH
} //loop()... 

void setMode( DateTime now ) {
  boolean setMode = true;
  int setModeLevel = 0;

  int _day = now.day();
  int _month = now.month();
  int _year = now.year();
  int _hour = now.hour();
  int _min = now.minute();
  int _sec = now.second();

  lcd.clear();
  lcd.setCursor(0,0);
  sprintf(buffer,  "%s: %02d", "Giorno", _day);
  delay( 1000 );
  timeSet = millis();

  while ( setMode ) {
    if ( digitalRead(buttonPinEnter) == HIGH || digitalRead(buttonPiu) == HIGH || digitalRead(buttonMeno) == HIGH ) { 
      timeSet = millis(); 
    }

    lcd.setCursor(0,0);

    // Set Day
    if ( setModeLevel == 0 ) {
      if ( digitalRead(buttonPiu) == HIGH && _day < 31) { 
        _day++; 
      }
      if ( digitalRead(buttonMeno) == HIGH && _day > 1) { 
        _day--; 
      }

      sprintf(buffer,  "%s: %02d", "Giorno", _day);
    }
    // Set Month
    if ( setModeLevel == 1 ) {
      if ( digitalRead(buttonPiu) == HIGH && _month < 12) { 
        _month++; 
      }
      if ( digitalRead(buttonMeno) == HIGH && _month > 1) { 
        _month--; 
      }

      sprintf(buffer,  "%s: %02d", "Mese", _month);
    }
    // Set Year
    if ( setModeLevel == 2 ) {
      if ( digitalRead(buttonPiu) == HIGH && _year < 9999) { 
        _year++; 
      }
      if ( digitalRead(buttonMeno) == HIGH && _year > 1900) { 
        _year--; 
      }

      sprintf(buffer,  "%s: %02d", "Anno", _year);
    }
    // Set Hour
    if ( setModeLevel == 3 ) {
      if ( digitalRead(buttonPiu) == HIGH && _hour < 24) { 
        _hour++; 
      }
      if ( digitalRead(buttonMeno) == HIGH && _hour > 1) { 
        _hour--; 
      }

      sprintf(buffer,  "%s: %02d", "Ora", _hour);
    }
    // Set Minute
    if ( setModeLevel == 4 ) {
      if ( digitalRead(buttonPiu) == HIGH && _min < 60) { 
        _min++; 
      }
      if ( digitalRead(buttonMeno) == HIGH && _min > 1) { 
        _min--; 
      }

      sprintf(buffer,  "%s: %02d", "Minuti", _min);
    }
    // Set Second
    if ( setModeLevel == 5 ) {
      if ( digitalRead(buttonPiu) == HIGH && _sec < 60) { 
        _sec++; 
      }
      if ( digitalRead(buttonMeno) == HIGH && _sec > 0) { 
        _sec--; 
      }

      sprintf(buffer,  "%s: %02d", "Secondi", _sec);
    }

    lcd.print( buffer );
    if ( digitalRead(buttonPinEnter) == HIGH ) { 
      lcd.clear(); 
      setModeLevel++;  
    }
    if ( setModeLevel > 5 ) { 
      nMenu=0; 
      setMode = false;
      break;
    }

    if (timeSet > 0 && (setModeTime*2) < (millis() - timeSet) ) {
      RTC.adjust(DateTime(_year, _month, _day, _hour, _min, _sec));
      setMode = false;
    }
    delay(200);
  }
}


void menuChanged(MenuChangeEvent changed){

  MenuItem newMenuItem=changed.to; 

  lcd.setCursor(0,1);

  if(newMenuItem.getName()==menu.getRoot()){
    pulischermo();
  }
  else if(newMenuItem.getName()=="Item1"){
    setLCD();
    lcd.print("ILLUMINAZIONE");
    selOpt();
    nMenu=100;
  }
  else if(newMenuItem.getName()=="CH1"){
    setLCD();
    lcd.print("CANALE 1");
    selOpt();
  }
  else if(newMenuItem.getName()=="CH2"){
    setLCD();
    lcd.print("CANALE 2");
    selOpt();
  }
  else if(newMenuItem.getName()=="CH3"){
    setLCD();
    lcd.print("CANALE 3");
    selOpt();
  }
  else if(newMenuItem.getName()=="CH4"){
    setLCD();
    lcd.print("CANALE 4");
    selOpt();
  }
  else if(newMenuItem.getName()=="CH5"){
    setLCD();
    lcd.print("CANALE 5");
    selOpt();
  }
  else if(newMenuItem.getName()=="CH6"){
    setLCD();
    lcd.print("CANALE 6");
    selOpt();
  }
  else if(newMenuItem.getName()=="CH7"){
    setLCD();
    lcd.print("CANALE 7");
    selOpt();
  }
  else if(newMenuItem.getName()=="CH8"){
    setLCD();
    lcd.print("CANALE 8");
    selOpt();
  }
  else if(newMenuItem.getName()=="ACH1"){
    ach();
    nMenu=1;
  }
  else if(newMenuItem.getName()=="FACH1"){
    fach();
    lcd.print(FACH1);
    nMenu=2;
  }
  else if(newMenuItem.getName()=="TCH1"){
    tch();
    nMenu=3;
  }
  else if(newMenuItem.getName()=="FTCH1"){
    ftch();
    lcd.print(FTCH1);
    nMenu=4;
  }
  else if(newMenuItem.getName()=="ACH2"){
    ach();
    nMenu=5;
  }
  else if(newMenuItem.getName()=="FACH2"){
    fach();
    lcd.print(FACH2);
    nMenu=6;
  }
  else if(newMenuItem.getName()=="TCH2"){
    tch();
    nMenu=7;
  }
  else if(newMenuItem.getName()=="FTCH2"){
    ftch();
    lcd.print(FTCH2);
    nMenu=8;
  }
  else if(newMenuItem.getName()=="ACH3"){
    ach();
    nMenu=9;
  }
  else if(newMenuItem.getName()=="FACH3"){
    fach();
    lcd.print(FACH3);
    nMenu=10;
  }
  else if(newMenuItem.getName()=="TCH3"){
    tch();
    nMenu=11;
  }
  else if(newMenuItem.getName()=="FTCH3"){
    ftch();
    lcd.print(FTCH3);
    nMenu=12;
  }
  else if(newMenuItem.getName()=="ACH4"){
    ach();
    nMenu=13;
  }
  else if(newMenuItem.getName()=="FACH4"){
    fach();
    lcd.print(FACH4);
    nMenu=14;
  }
  else if(newMenuItem.getName()=="TCH4"){
    tch();
    nMenu=15;
  }
  else if(newMenuItem.getName()=="FTCH4"){
    ftch();
    lcd.print(FTCH4);
    nMenu=16;
  }
  else if(newMenuItem.getName()=="ACH5"){
    ach();
    nMenu=17;
  }
  else if(newMenuItem.getName()=="FACH5"){
    fach();
    lcd.print(FACH5);
    nMenu=18;
  }
  else if(newMenuItem.getName()=="TCH5"){
    tch();
    nMenu=19;
  }
  else if(newMenuItem.getName()=="FTCH5"){
    ftch();
    lcd.print(FTCH5);
    nMenu=20;
  }
  else if(newMenuItem.getName()=="ACH6"){
    ach();
    nMenu=21;
  }
  else if(newMenuItem.getName()=="FACH6"){
    fach();
    lcd.print(FACH6);
    nMenu=22;
  }
  else if(newMenuItem.getName()=="TCH6"){
    tch();
    nMenu=23;
  }
  else if(newMenuItem.getName()=="FTCH6"){
    ftch();
    lcd.print(FTCH6);
    nMenu=24;
  }
  else if(newMenuItem.getName()=="ACH7"){
    ach();
    nMenu=25;
  }
  else if(newMenuItem.getName()=="FACH7"){
    fach();
    lcd.print(FACH7);
    nMenu=26;
  }
  else if(newMenuItem.getName()=="TCH7"){
    tch();
    nMenu=27;
  }
  else if(newMenuItem.getName()=="FTCH7"){
    ftch();
    lcd.print(FTCH7);
    nMenu=28;
  }
  else if(newMenuItem.getName()=="ACH8"){
    ach();
    nMenu=29;
  }
  else if(newMenuItem.getName()=="FACH8"){
    fach();
    lcd.print(FACH8);
    nMenu=30;
  }
  else if(newMenuItem.getName()=="TCH8"){
    tch();
    nMenu=31;
  }
  else if(newMenuItem.getName()=="FTCH8"){
    ftch();
    lcd.print(FTCH8);
    nMenu=32;
  }
  else if(newMenuItem.getName()=="Item2"){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("TEMPERATURE");
    selOpt();
  }
  else if(newMenuItem.getName()=="Riscaldatore"){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("RISCALDATORE");
    selOpt();
  }
  else if(newMenuItem.getName()=="tRisc"){
    lcd.clear();
    lcd.setCursor(0,0);      
    lcd.print("Temp.Riferimento");
    lcd.setCursor(0,1);
    lcd.print(tRisc);      
    nMenu=33;
  }
  else if(newMenuItem.getName()=="dRisc"){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Delta intervento");
    lcd.setCursor(0,1);
    lcd.print(dRisc);
    nMenu=34;
  }
  else if(newMenuItem.getName()=="Refrigeratore"){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("REFRIGERATORE");
    selOpt();
  }
  else if(newMenuItem.getName()=="tRefrig"){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Temp.Riferimento");
    lcd.setCursor(0,1);
    lcd.print(tRefrig);
    nMenu=35;
  }
  else if(newMenuItem.getName()=="dRefrig"){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Delta intervento");
    lcd.setCursor(0,1);
    lcd.print(dRefrig);
    nMenu=36;
  }
  else if(newMenuItem.getName()=="Item3"){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("IMPOSTAZIONI");
    selOpt();
  }
  else if(newMenuItem.getName()=="Data/Ora"){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Data/Ora");
    lcd.setCursor(0,1);
    lcd.print("Imposta");
    nMenu=100;

  }

  /*
  }else if(newMenuItem.getName()=="Ora"){
   lcd.clear();
   lcd.setCursor(0,0);
   lcd.print("Ora");
   lcd.setCursor(0,1);
   lcd.print("Ora");
   }
   */
}

void menuUsed(MenuUseEvent used){
  lcd.setCursor(0,0);  
  lcd.print("Confermato      ");
  //lcd.setCursor(0,1); 
  //lcd.print(used.item.getName());
  delay(3000);  //Ritardo prima del ritorno Home
  nMenu=0;
  pulischermo();
  menu.toRoot();  //Ritorno Home
}


void  readButtons(){  //lettura dello stato dei puls
  int reading;
  int buttonEnterState=LOW;         
  int buttonEscState=LOW;           
  int buttonLeftState=LOW;          
  int buttonRightState=LOW;         

  //Enter button

  reading = digitalRead(buttonPinEnter);



  if (reading != lastButtonEnterState) {

    lastEnterDebounceTime = millis();

  } 

  if ((millis() - lastEnterDebounceTime) > debounceDelay) {

    buttonEnterState=reading;
    lastEnterDebounceTime=millis();
  }


  lastButtonEnterState = reading;


  //Esc button               

  reading = digitalRead(buttonPinEsc);



  if (reading != lastButtonEscState) {

    lastEscDebounceTime = millis();
  } 

  if ((millis() - lastEscDebounceTime) > debounceDelay) {

    buttonEscState = reading;
    lastEscDebounceTime=millis();
  }


  lastButtonEscState = reading; 


  //Down button               

  reading = digitalRead(buttonPinRight);


  // If the switch changed, due to noise or pressing:
  if (reading != lastButtonRightState) {
    // resetta il tempo di rimbalzo
    lastRightDebounceTime = millis();
  } 

  if ((millis() - lastRightDebounceTime) > debounceDelay) {

    buttonRightState = reading;
    lastRightDebounceTime =millis();
  }

  lastButtonRightState = reading;                  


  //Up button               
  // scrive lo stato dell'ingresso in una variabile
  reading = digitalRead(buttonPinLeft);


  if (reading != lastButtonLeftState) {
    // resetta il tempo di rimbalzo
    lastLeftDebounceTime = millis();
  } 

  if ((millis() - lastLeftDebounceTime) > debounceDelay) {

    buttonLeftState = reading;
    lastLeftDebounceTime=millis();
    ;
  }


  lastButtonLeftState = reading;  

  //Registra il puls schiacciato
  if (buttonEnterState==HIGH){
    lastButtonPushed=buttonPinEnter;

  }
  else if(buttonEscState==HIGH){
    lastButtonPushed=buttonPinEsc;

  }
  else if(buttonRightState==HIGH){
    lastButtonPushed=buttonPinRight;

  }
  else if(buttonLeftState==HIGH){
    lastButtonPushed=buttonPinLeft;

  }
  else{
    lastButtonPushed=0;
  }                  
}

void navigateMenus() {
  MenuItem currentMenu=menu.getCurrent();

  switch (lastButtonPushed){
  case buttonPinEnter:
    if(!(currentMenu.moveDown())){  
      menu.use();
    }
    else{  
      menu.moveDown();
    } 
    break;
  case buttonPinEsc:
    menu.toRoot();  //ritorno home
    break;
  case buttonPinRight:
    menu.moveRight();
    break;      
  case buttonPinLeft:
    menu.moveLeft();
    break;      
  }

  lastButtonPushed=0; //reset della variabile
}
comunque sto lavorando per ridurlo ulteriormente

stay tunned

Gaetano

EDIT: in allegato la libreria modificata. Basta inserirla nella cartella Programmi>Arduino>Libreries>Cartella_a_scelta
rinominandolo MenuBackend.h e riavviare Arduino
File allegati
Tipo di file: txt MenuBackend.txt‎ (6,4 KB, 41 visite)
__________________
Chi non ride mai non è una persona seria - (Chopin)
...La sobrietà và presa con moderazione... - (Jax - Brillo ma da lucido)

La mia vasca - RITORNO AL DOLCE

Ultima modifica di SirNino; 19-08-2014 alle ore 18:59. Motivo: Rilevato errore nel codice void loop()+allegato
SirNino non è in linea   Rispondi quotando
 
Page generated in 0,13868 seconds with 15 queries