Код для ардуино. Включение лампочки при нажатии на кнопку. Другая лампочка мигает 3 раза в секунду.
// Подключение пинов
const int buttonPin = 2;
const int ledPin1 = 3;
const int ledPin2 = 4;
// Переменные состояния кнопки и лампочек
int buttonState = HIGH;
int lastButtonState = HIGH;
int ledState1 = LOW;
int ledState2 = LOW;
// Переменные для мигания лампочки
unsigned long previousMillis = 0;
const long interval = 333; // интервал времени (в миллисекундах) для мигания
void setup() {
// Настройка пинов ввода/вывода
pinMode(buttonPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop() {
// Чтение состояния кнопки
buttonState = digitalRead(buttonPin);
// Проверка нажатия кнопки
if (buttonState == LOW && lastButtonState == HIGH) {
// Изменение состояния первой лампочки
ledState1 = !ledState1;
digitalWrite(ledPin1, ledState1);
}
// Обновление состояния кнопки
lastButtonState = buttonState;
// Мигание второй лампочки
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
ledState2 = !ledState2;
digitalWrite(ledPin2, ledState2);
previousMillis = currentMillis;
}
}
Прежде всего, объявляем пины для кнопки и двух лампочек с помощью констант. Затем объявляем переменные состояния кнопки и лампочек.
Функция `setup()` используется для настройки пинов ввода/вывода. Мы устанавливаем пин кнопки (buttonPin) в режим входа (INPUT) и пины двух лампочек (ledPin1 и ledPin2) в режим выхода (OUTPUT).
Главная циклическая функция `loop()` периодически проверяет состояние кнопки и обновляет состояние лампочек.
Сначала мы считываем текущее состояние кнопки с помощью функции `digitalRead()`. Затем проверяем изменение состояния кнопки. Если кнопка была нажата (buttonState стало LOW) и в предыдущий момент кнопка была отпущена (lastButtonState было HIGH), мы меняем состояние первой лампочки с помощью переменной ledState1 и функции `digitalWrite()`. Таким образом, при каждом нажатии на кнопку первая лампочка будет включаться и выключаться.
Далее мы обновляем состояние кнопки (lastButtonState) для следующей итерации цикла.
Затем мы добавляем мигание второй лампочки. Вводим переменные currentMillis и previousMillis для отслеживания времени. В каждой итерации цикла сравниваем разницу между текущим временем (currentMillis) и предыдущим временем (previousMillis) с интервалом времени (interval). Если прошло достаточно времени (interval), то меняем состояние второй лампочки (ledState2) с помощью переменной ledState2 и функции `digitalWrite()`. Таким образом, вторая лампочка будет мигать с частотой 3 раза в секунду.
Наконец, обновляем значение previousMillis, чтобы учесть текущее время для следующей итерации цикла.
Таким образом, данный код позволяет включить одну лампочку при нажатии на кнопку и мигать другой лампочкой с заданной частотой (3 раза в секунду).Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет