Сделать поворот светодиода
//Сделать так, чтобы светодиод включился после пятикратного нажатия на кнопочный выключатель. Добавьте переключатель сброса чтобы выключить светодиод всякий раз когда он будет нажат
**void setup()
{
pinMode(11, OUTPUT);
pinMode (4,INPUT);
}
void loop()
{
int y= digitalRead(6); // push кнопка 2
static int counter {} ;
int x= digitalRead(4);// push кнопка 1
if (x==1&& y==0 )
counter++;
else if (counter == 5) // If counter is pressed 5 times
{
digitalWrite(11, HIGH); // Turn on the LED
}
if (counter >= 5) // If counter is greater than 5 led will still on
{
digitalWrite (11, 1);
}
else if
(y==1&& x==0 ) // if pressed push button 2 led of
{
digitalWrite(11,0);
}
counter = 0; // Make counter variable = 0
}
1 ответ
Лучший ответ:
Вы можете попробовать внедрить систему счетчиков в свою программу Arduino.
Например, если это ваша функция loop ():
void loop(){
int buttonState = digitalRead(1); //Дайте переменной buttonState значение pin 1, или независимо от того, что ваша кнопка подключена
static int counter{}; // Имейте переменную счетчика. Статический означает, что он не сбрасывается на 0 после перезапуска функции loop()
if (buttonState == HIGH) // Если кнопка нажата
{
++counter; // Увеличить значение счетчика на 1
}
else if (counter == 5) // Если счетчик нажат 5 раз
{
digitalWrite(11, HIGH); // Включить светодиод
}
// RESET:
if (counter > 5) // Если счетчик больше 5 (вы снова нажали кнопку)
{
digitalWrite (11, LOW);
counter = 0; // Make counter variable = 0
}
}
Правка В комментариях, Python Schlage сделал очень хорошие предложения: изменить buttonState
на логический и изменить int
на byte
, чтобы сэкономить место на борту Arduino
Попробуйте следовать этому руководству: https://www.arduino.cc/en/Tutorial/BuiltInExamples/Button и модифицируя его для работы со счетчиком. Надеюсь, это поможет! Пожалуйста, дайте нам знать, если вам нужна помощь с функцией setup() или если что-то неясно.
Для сохранения памяти, buttonState
может быть изменен на логическое и счетчик может быть " байт.
Другая` часть довольно бесполезна, потому что она просто выключит светодиод все время, хотя он уже включен "НИЗКО"., @Python Schlange
Хорошие моменты! Я добавлю измененную версию с вашими предложениями, @Sony
- Как я могу прервать задержку() при нажатии кнопки?
- Объявление переменной внутри основного цикла
- Светодиод мигает с помощью кнопки
- в то время как (1) внутри, если условно
- HTML-страница переменной ESP8266 Webserver ESP8266WebServer (не как один постоянный символ)
- ESP8266 Webserver ESP8266WebS сервер перемещает функцию обработчика в отдельный файл .h .c
- Понимание кода Debounce
- Как использовать передатчик и приемник для условной отправки строковых сообщений получателю?
Это школьное задание? Что вы пробовали до сих пор? Где именно ваша проблема в реализации этого? Вы посмотрели некоторые из многочисленных учебных пособий в Интернете, которые учат, как мигать светодиодом и как читать кнопки? Кстати: Для чтения кнопок я могу предложить библиотеку Bounce2, которая действительно полезна, @chrisl
моя проблема я не знаю, как сделать светодиод после нажатия кнопок пять раз, @Ibraheem Mohammed Saleh
Не забудьте использовать либо подтягивающий резистор, либо "INPUT_PULLUP` в разделе "настройка"., @Python Schlange