Alba tramonto striscia a led

Premessa: non so programmare oltre a if non so andare, è molto copia incolla.

A cosa mi serve: mi servirebbe una scheda arduino che mi piloti un tot di strisce a led monocolore accendendosi gradualmente all alba e che si spenga gradualmente al tramonto il tutto automaticamente calcolando l’ora di alba e di tramonto giorno per giorno in quanto dovrei fare un sistema di illuminazione per canarini da cova.

Che cosa uso: per ora uso un arduino Uno un RTC e un display collegati mediante i2c, un interruttore per selezionare pagina 1 e pagina 2, un potenziometro per visualizzare il valore da modificare e un pulsante per modificare il valore…

Il programma non è completo ma trovo degli errori non capisco…

#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
#include <SunLight.h>

#define interrpag 2  // assegnazione pin 2 interruttore pagina lcd
#define pulsante 3 // assegnazione pin 3 pulsante

SunLight mySun;
LiquidCrystal_I2C lcd(0x3f,16,2);
RTC_DS1307 RTC;

float myLongitude = 9.10;
float myLatitude = 45.58;
int Al, Tr, Gi, hG, mG, SET, sensor, T;
const int analogIn = A0;

uint8_t twilight_minutes = 0;
uint8_t day;
uint8_t month;
uint16_t year;

uint8_t timeArray[4]; // SUNRISE_H SUNRISE_M SUNSET_H SUNSET_M

void setup () {
   lcd.init(); 
  lcd.backlight();
  lcd.begin(16, 2);
    Wire.begin();
    
Wire.beginTransmission(0x68);
Wire.write(0x07);
Wire.write(0x10); 
Wire.endTransmission();

    RTC.begin();
  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
  
pinMode(interrpag , INPUT); //assegna  ingresso interruttore pag
pinMode(pulsante , INPUT); //assegna  ingresso pulsante selezionatore
digitalWrite(interrpag, HIGH); //Abilita res. pull-up
digitalWrite(pulsante, HIGH); //Abilita res. pull-up
}




void loop () {
   DateTime now = RTC.now();
   mySun.setPosition(myLatitude, myLongitude);
   boolean check = mySun.computeSR(timeArray, twilight_minutes, day, month, year);
   sensor = analogRead(analogIn);
   
    uint8_t day = now.day();
    uint8_t month = now.month();
    uint16_t year = now.year();
   
   //valore set lcd
   lcd.setCursor(11, 0);
   lcd.print("Set:");
   lcd.setCursor(15, 0);
  if(0<sensor<200)        //valore set
      { lcd.print("G");
         if (digitalRead(pulsante) == LOW)
             {now.day()++;}
      }
  else if(0<sensor<150)        //valore set giorno
      { lcd.print("G");
         if (digitalRead(pulsante) == LOW)
             {now.day()++;}
      }
       else if(151<sensor<300)        //valore set mese
      { lcd.print("M");
         if (digitalRead(pulsante) == LOW)
             {now.month()++;}
      }
       else if(301<sensor<450)        //valore set anno
      { lcd.print("A");
         if (digitalRead(pulsante) == LOW)
             {now.year()++;}
      }
       else if(451<sensor<600)        //valore set ora
      { lcd.print("h");
         if (digitalRead(pulsante) == LOW)
             {now.hour()++;}
      }
       else if(601<sensor<750)        //valore set minuti
      { lcd.print("m");
         if (digitalRead(pulsante) == LOW)
             {now.minute()++;}
      }
       else if(751<sensor<900)        //valore set tempo T
      { lcd.print("T");
         if (digitalRead(pulsante) == LOW)
             {T++;}
      }
       else if(901<sensor<1023)        //valore set vuoto
      { lcd.print("#");
      }
  
         
   if(digitalRead(interrpag) == LOW)
   {//pag1
 lcd.setCursor(0, 1);
   lcd.print(now.hour(), DEC);
   lcd.print(":");
   lcd.print(now.minute(), DEC);
   lcd.print(":");
   lcd.print(now.second(), DEC);
   lcd.print(" "); 
    
   lcd.setCursor(0, 0);
   lcd.print(now.day(), DEC);
   lcd.print("/");
   lcd.print(now.month(), DEC);
   lcd.print("/");
   lcd.print(now.year(), DEC);
   lcd.print(" ");
    }
  else{//pag2
   lcd.setCursor(0, 0);
   lcd.print("A");             //alba
   lcd.print(timeArray[SUNRISE_H], DEC);
   lcd.print(":");
   lcd.print(timeArray[SUNRISE_M], DEC);
        lcd.setCursor(7, 0);   //tempo latenza luce
   lcd.print("T:");
   lcd.print(T, DEC);                                                               //valore T
     lcd.setCursor(0, 1);
   lcd.print("T");             //tramonto
   lcd.print(timeArray[SUNSET_H], DEC);
   lcd.print(":");
   lcd.print(timeArray[SUNSET_M], DEC);
     lcd.setCursor(7, 1);
   lcd.print("Dur:");         //durata giorno
   
   //tempo di luce
   Al = (timeArray[SUNRISE_H] * 60) + timeArray[SUNRISE_M];
   Tr = (timeArray[SUNSET_H] * 60) + timeArray[SUNSET_M];
   Gi = Tr - Al;
   hG = Gi/60;
   mG = Gi - (hG*60);
   
   lcd.print(hG, DEC);
   lcd.print(":");
   lcd.print(mG, DEC);
  }
  
   delay(1000);
}

il programma non è completo ma questo è il messaggio di errore

solaire.ino: In function ‘void loop()’:
solaire:69: error: lvalue required as increment operand
solaire:74: error: lvalue required as increment operand
solaire:79: error: lvalue required as increment operand
solaire:84: error: lvalue required as increment operand
solaire:89: error: lvalue required as increment operand
solaire:94: error: lvalue required as increment operand

In conformità al regolamento, punto 7, edita (in basso a destra del post, bottone More → Modify) il tuo post e racchiudi il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra). Grazie.

Guglielmo

gpb01:
In conformità al regolamento, punto 7, edita (in basso a destra del post, bottone More → Modify) il tuo post e racchiudi il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra). Grazie.

Guglielmo

Chiedo scusa per la svista ho già corretto, ringrazio per la segnalazione

NON puoi incrementare dei "metodi" ...
... now.day() è un metodo che ritorna un valore, NON una variabile su cui puoi operare, e come lui tutti gli altri.

Guglielmo