Не могу написать программу тк недавно на Ардуино
Суть
3 кнопки
Функции
1 кнопка ок
2кн -60сек
3кн +60сек
После нажатия “ок”
Идет обратный отсчёт
таки программы тут не пишут.
Алиса сможет бесплатно написать если ее хорошенько попросить, а я за денежку могу с ней договориться:smiley_cat:
И что же в конце? Бах?
1 лайк
С такими вопросами можно и к нейронкам сходить. Это бесплатно.
Вот, например, ответ DeepSeek.
Для реализации программы на Arduino, которая будет управлять обратным таймером с использованием трех кнопок, можно использовать следующий код:
// Определяем пины для кнопок
const int buttonPlusPin = 2;
const int buttonMinusPin = 3;
const int buttonStartPin = 4;
// Переменные для хранения состояния кнопок
int buttonPlusState = 0;
int buttonMinusState = 0;
int buttonStartState = 0;
// Переменная для хранения заданного времени
unsigned long interval = 0;
// Флаг для отслеживания состояния таймера
bool timerRunning = false;
void setup() {
// Настраиваем пины кнопок как входы
pinMode(buttonPlusPin, INPUT);
pinMode(buttonMinusPin, INPUT);
pinMode(buttonStartPin, INPUT);
// Инициализируем последовательный порт для отладки
Serial.begin(9600);
}
void loop() {
// Считываем состояние кнопок
buttonPlusState = digitalRead(buttonPlusPin);
buttonMinusState = digitalRead(buttonMinusPin);
buttonStartState = digitalRead(buttonStartPin);
// Если таймер не запущен, обрабатываем нажатия кнопок
if (!timerRunning) {
if (buttonPlusState == HIGH) {
interval += 60; // Увеличиваем интервал на 60 секунд
Serial.print("Интервал увеличен: ");
Serial.println(interval);
delay(200); // Задержка для предотвращения множественных срабатываний
}
if (buttonMinusState == HIGH) {
if (interval >= 60) {
interval -= 60; // Уменьшаем интервал на 60 секунд
Serial.print("Интервал уменьшен: ");
Serial.println(interval);
} else {
interval = 0; // Не даем интервалу стать отрицательным
}
delay(200); // Задержка для предотвращения множественных срабатываний
}
if (buttonStartState == HIGH) {
if (interval > 0) {
timerRunning = true; // Запускаем таймер
Serial.println("Таймер запущен!");
}
delay(200); // Задержка для предотвращения множественных срабатываний
}
}
// Если таймер запущен, начинаем обратный отсчет
if (timerRunning) {
while (interval > 0) {
Serial.print("Осталось времени: ");
Serial.println(interval);
delay(1000); // Ждем 1 секунду
interval--; // Уменьшаем интервал на 1 секунду
}
// Когда таймер завершился
Serial.println("Время вышло!");
timerRunning = false; // Останавливаем таймер
}
}
Описание программы:
-
Кнопки:
- Кнопка на пине 2 увеличивает интервал на 60 секунд.
- Кнопка на пине 3 уменьшает интервал на 60 секунд.
- Кнопка на пине 4 запускает обратный отсчет.
-
Таймер:
- После нажатия кнопки “Пуск” начинается обратный отсчет от заданного интервала.
- Каждую секунду интервал уменьшается на 1 секунду.
- Когда интервал достигает 0, таймер останавливается, и выводится сообщение “Время вышло!”.
-
Защита от дребезга:
- Добавлены задержки (
delay(200)
) после нажатия кнопок для предотвращения множественных срабатываний.
- Добавлены задержки (
Подключение:
- Подключите кнопки к пинам 2, 3 и 4 на Arduino.
- Подключите другой конец каждой кнопки к земле (GND).
- Используйте подтягивающие резисторы (внутренние или внешние) для стабилизации сигнала.
Примечание:
- Программа использует последовательный порт для вывода отладочной информации. Вы можете открыть монитор порта в Arduino IDE для просмотра сообщений.
Этот код можно адаптировать под конкретные требования, например, добавить индикацию на дисплее или звуковой сигнал по окончании таймера.
Товарищ майор уже выехал ))
2 лайка
А ТС-у больше не наливать. Уже начал буровить в соседней теме.(