void setup() {
pinMode(A0, OUTPUT);
pinMode(12, INPUT);
}
int sw = 1 ;
int krok = 5 ;
int poziom = 0 ;
unsigned long previousMillis = 0;
//0-255
void loop() {
unsigned long currentMillis = millis();
if (digitalRead(12) == HIGH) {
sw=sw+1;
delay(500);
}
switch (sw) {
case 1:
if((poziom >= 230) && (currentMillis - previousMillis >= 4000))
{
poziom = 0;
previousMillis = currentMillis;
analogWrite(A0,poziom);
}
else if ((poziom <= 30) && (currentMillis - previousMillis >= 4000))
{
poziom = 255;
previousMillis = currentMillis;
analogWrite(A0,poziom);
}
// analogWrite(A0,255);
// delay(1000);
// analogWrite(A0,0);
// delay(1000);
break;
case 2:
if((poziom >= 230) && (currentMillis - previousMillis >= 2000))
{
poziom = 0;
previousMillis = currentMillis;
analogWrite(A0,poziom);
}
else if ((poziom <= 30) && (currentMillis - previousMillis >= 2000))
{
poziom = 255;
previousMillis = currentMillis;
analogWrite(A0,poziom);
}
break;
case 3:
if((poziom >= 250) && (currentMillis - previousMillis >= 10))
{
krok = -5;
poziom = poziom + krok;
previousMillis = currentMillis;
analogWrite(A0,poziom);
}
else if ((poziom <= 5) && (currentMillis - previousMillis >= 10))
{
krok = 5;
poziom = poziom + krok;
previousMillis = currentMillis;
analogWrite(A0,poziom);
}else if(currentMillis - previousMillis >= 10)
{
poziom = poziom + krok;
previousMillis = currentMillis;
analogWrite(A0,poziom);
}
// analogWrite(A0, poziom);
// poziom = poziom + krok;
// if (poziom <= 0 || poziom >= 255) {
// krok = -krok;
// }
// delay(80);
break;
case 4:
sw=1;
// delay(50);
break;
}
}