questa è la funzione che controlla i led...
la plafoniera, ovviamente, funziona... ma mi chiedevo se si potesse far nulla per migliorare il "segnale"!
void chkPlafo(){
DateTime now = RTC.now();
if (plafoStatus == 0){
switch(now.hour()){
case 11:
fadeValue = 50;
break;
case 12:
fadeValue = 90;
break;
case 13:
fadeValue = 130;
break;
case 14:
fadeValue = 170;
break;
case 15:
fadeValue = 210;
break;
case 16:
fadeValue = 255;
break;
case 17:
fadeValue = 235;
break;
case 18:
fadeValue = 175;
break;
case 19:
fadeValue = 115;
lcd.setCursor(10,0);
lcd.print(19);
break;
case 20:
fadeValue = 55;
lcd.setCursor(10,0);
lcd.print(20);
break;
default:
fadeValue = 0;
}
if(now.hour() >= 11 && now.hour() <= 15){
if(now.minute() >= 10 && now.minute() < 15)
fadeValue += 10;
else if(now.minute() >= 15 && now.minute() < 30)
fadeValue += 20;
else if(now.minute() >= 30 && now.minute() < 45)
fadeValue += 30;
else if(now.minute() >= 45 && now.minute() < 60)
fadeValue += 40;
}
if(now.hour() >= 17 && now.hour() <= 20){
if(now.minute() >= 10 && now.minute() < 15)
fadeValue -= 10;
else if(now.minute() >= 15 && now.minute() < 30)
fadeValue -= 20;
else if(now.minute() >= 30 && now.minute() < 45)
fadeValue -= 30;
else if(now.minute() >= 45 && now.minute() < 60)
fadeValue -= 40;
}
}
else if (plafoStatus == 1)
fadeValue = 255;
else if (plafoStatus == 2)
fadeValue = 0;
analogWrite(ledPin, fadeValue);
}
void stampaPWM(int x, int y){
lcd.setCursor(x,y);
lcd.print("PWM:");
if(plafoStatus == 2)
lcd.print("off ");
else if (plafoStatus == 1)
lcd.print("on ");
else if(plafoStatus == 0){
float val = fadeValue*100/255;
lcd.setCursor(x + 4, y);
lcd.print(val,0);
lcd.print("%");
}
}
il driver è questo:
http://www.bizetashop.it/shop/20000-alimentazioneeaccessori/24000-driverled/24200-inputdc/driver-lineare-cc-1000ma-drv-uldo-1000ma
è valido? o è meglio quello switching?
grazie ![]()