|
Originariamente inviata da Skynyrd
|
Luke per caso puoi passarmi il codice per alba e tramonto tramite pwm?
|
io uso questa....
sopra al void setup()
byte PWMSlope(byte startHour, byte startMinute, byte endHour, byte endMinute, byte startPWM, byte endPWM, byte Duration, byte oldValue)
{
int Now = NumMins(hour(), minute());
int Start = NumMins(startHour, startMinute);
int StartD = Start + Duration;
int End = NumMins(endHour, endMinute);
int StopD = End - Duration;
if ( Now >= Start && Now <= StartD )
return constrain(map(Now, Start, StartD, startPWM, endPWM), startPWM, endPWM);
else if ( Now >= StopD && Now <= End )
{
byte v = constrain(map(Now, StopD, End, startPWM, endPWM), startPWM, endPWM);
return endPWM - v;
}
else if ( Now > StartD && Now < StopD )
return endPWM;
// lastly return the existing value
return oldValue;
}
poi in void loop() ho aggiunto queste due linee....
ReefAngel.PWM.SetActinic(PWMSlope(12,15,23,45,0,In ternalMemory.LEDPWMActinic_read(),90,ReefAngel.PWM .GetActinicValue()));
ReefAngel.PWM.SetDaylight(PWMSlope(13,30,22,30,0,I nternalMemory.LEDPWMDaylight_read(),30,ReefAngel.P WM.GetDaylightValue()));
così facendo le attiniche si accendono alle 12:15 con una rampa progressiva x 90 minuti che và dal valore min (ZERO) al max impostato nel menu PWM del controller.... la rampa di discesa è l'inverso....
per i bianchi... partono alle 13:30 e la rampa dura 30 minuti....