// 10 задание
int buttonState = 0;
int lastButtonState = HIGH;
int mode = 1;
unsigned long lastDebounceTime = 0;
unsigned long previousMillis = 0;
const long interval = 500;
bool ledBlinkState = LOW;
void setup() {
pinMode(13, OUTPUT);
pinMode(2, INPUT_PULLUP);
}
void loop() {
int reading = digitalRead(2);
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > 50) {
if (reading != buttonState) {
buttonState = reading;
if (buttonState == LOW) {
mode++;
if (mode > 4) {
mode = 1;
}
digitalWrite(13, LOW);
}
}
}
lastButtonState = reading;
switch (mode) {
case 1:
digitalWrite(13, LOW);
break;
case 2:
{
int ldrValue = analogRead(A0);
int brightness = map(ldrValue, 0, 1023, 255, 0);
brightness = constrain(brightness, 0, 255);
analogWrite(13, brightness);
}
break;
case 3:
{
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledBlinkState = !ledBlinkState;
digitalWrite(13, ledBlinkState);
}
}
break;
case 4:
digitalWrite(13, HIGH);
break;
}
delay(10);
}