Да Наверное
Профи
(628)
5 месяцев назад
#define GREEN_LED_PIN 7
#define YELLOW_LED_PIN 6
#define BUTTON_S1_PIN 5
#define BUTTON_S2_PIN 4
int s1_press_count = 0;
unsigned long lastDebounceTime = 0;
const unsigned long debounceDelay = 200;
void setup() {
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(YELLOW_LED_PIN, OUTPUT);
pinMode(BUTTON_S1_PIN, INPUT_PULLUP);
pinMode(BUTTON_S2_PIN, INPUT_PULLUP);
digitalWrite(GREEN_LED_PIN, HIGH);
}
void loop() {
if (digitalRead(BUTTON_S1_PIN) == LOW) {
if (millis() - lastDebounceTime > debounceDelay) {
lastDebounceTime = millis();
s1_press_count++;
if (s1_press_count == 3) {digitalWrite(YELLOW_LED_PIN, HIGH);}
}
}
if (digitalRead(BUTTON_S2_PIN) == LOW) {
if (millis() - lastDebounceTime > debounceDelay) {
lastDebounceTime = millis();
reset();
flashGreenLed(2);
digitalWrite(GREEN_LED_PIN, HIGH);
s1_press_count = 0;
}
}
}
void reset() {
digitalWrite(GREEN_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, LOW);
}
void flashGreenLed(int times) {
for (int i = 0; i < times; i++) {
digitalWrite(GREEN_LED_PIN, HIGH);
delay(500);
digitalWrite(GREEN_LED_PIN, LOW);
delay(500);
}
}
S1 загореться желтый светодиод, зеленый при этом не должен тухнуть, при нажатии на кнопку
S2 – все светодиоды тухнут, затем зеленый мигает 2 раза, а затем схема переходит в исходное
состояние и т.д.