#include <Arduino.h>
//Определим используемые пины
#define LED_PIN 39 //Пин диода
#define BUT_PIN 18 //Пин кнопки
//Определим переменные которые будут меняться во время выполнения программы
int button_push = 0; //Актуальное состояние кнопки
int button_push_number = 1; /*Счётчик нажатий кнопки. Начальное значение = 1,
иначе изначально будет выполняться условие для того что бы светил диод
(0%n=0 в строке #46)*/
void setup() {
pinMode(LED_PIN, OUTPUT); //Инициализируем пин диода ( измеряет напряжение на выходе с пина )
pinMode(BUT_PIN, INPUT); //Инициализируем пин кнопки ( измеряет напряжение, которое поступает на пин )
Serial.begin(9600); /*Инициализируем вывод данных на дисплей
(иначе я бы никогда не узнал что за один клик совершаю несколько нажатий кнопки)*/
}
void loop() {
//***БЛОК СЧЕТЧИКА***//
//Проверяем актуальное состояние кнопки, оно зависит от того поступает ли напряжение на пин кнопки (18)
button_push=digitalRead(18);
//Если сейчас кнопка включена, то есть на пин 18 поступает высокое напряжение
if (button_push == HIGH)
{
//Прибавим 1 к счётчику нажатий
button_push_number++;
//Выводим на дисплей состояние счётчика нажатий
Serial.print("Количество нажатий: ");
//Выводим "количество нажатий -1", что бы компенсировать начальное значение счетчика =1
Serial.println(button_push_number-1);
}
//Пауза для избежания многократного нажатия за один клик по кнопке
delay(200);
//***БЛОК ВКЛЮЧЕНИЯ СВЕТОДИОДА***//
/*Проверяем кратно ли число в счётчике, числу, которое необходимо для включения светодиода +1.
Например, для включения на 5-ое нажатие, число должно быть кратно 6
(из-за начального значения счётчика + перескока через одно нажатие в случае кратности)*/
if (button_push_number%6 == 0)
{
digitalWrite(LED_PIN, HIGH); //Подадим напряжение на пин светодиода
delay(1000); //Время свечения светодиода
button_push_number++; /*Увеличим счётчик на 1, иначе
в счётчике останется число кратное 6 и светодиод не погаснет*/
}
else
{
digitalWrite(LED_PIN, LOW); /*В случае если число нажатий не кратно необходимому числу,
напряжение на пин светодиода не подается*/
}
}