- Dimma upp/ner , klart
- Stanna på senaste värdet man dimmat till, klart
- Dimma ner till helt avstängt, klart
- Ligga kvar i avstängt läge, klart
- Från avstängt läge dimma upp till senaste värdet man dimmat till, den jobbar vi på.
Är jag på någorlunda rätt väg?
Lade till OFF_TO_PAUSE
enum dimmerStates {
OFF,
DIMMING,
PAUSE,
OFF_TO_PAUSE
};
I loopen har vi.
Kod: Markera allt
if(dimmerState == OFF){ //Turn it off with fade down effect
if(ledValue > 0){
ledValue--;
analogWrite(ledPin, ledValue);
}
}
if(dimmerState == PAUSE){ // Pause dimming, and hold value, can be empty for now..
}
if(dimmerState == DIMMING){
ledValue = ledValue + dimChange ;
if ( (ledValue > 255) || (ledValue < 0) ) {
dimChange = -dimChange; ; // byt håll
ledValue = ledValue + dimChange; // backa tillbaka ett snäpp...
}
analogWrite(ledPin, ledValue);
}
if(dimmerState == OFF_TO_PAUSE){
digitalWrite(9,HIGH);
delay(400); //Debugging only, remove later
digitalWrite(9,LOW);
delay(400); //Debugging only remove later
}
delay(5);
}
Och i void processCode(NewRemoteCode receivedCode)
Kod: Markera allt
if (receivedCode.switchType == 1) { // We are turning on
if( (dimmerState == PAUSE) || (dimmerState == OFF) ) {
dimmerState = DIMMING;
} else {
dimmerState = PAUSE;
}
if ( (dimmerState == DIMMING) || (dimmerState == OFF) ) { // Är jag någorlunda på rätt väg?
dimmerState = OFF_TO_PAUSE;
} else{
}
digitalWrite(13, HIGH);
}
else if (receivedCode.switchType == 0) {
dimmerState = OFF;
digitalWrite(13, LOW);
}
Edit ändrade till C++