Две кнопки, Bounce и проблема
- Войдите на сайт для отправки комментариев
Ср, 06/03/2013 - 22:21
Написал скетч для управления драйвером светодиода. Использовал Bounce, потомучто впоследствии хочу дописать шим управление в зависимости от длительности нажатия (ну или количества нажатий). Но пока даже не могу реализовать выключение по нажатию кнопки 2. Но вот Включать получается по нажатию кнопки 1. В чем-то косяк, подскажите где?
//подключаем библиотеку Bounce #include <Bounce.h> //дефайним значения пинов с кнопкой и со светодиодом #define BUTTON1 2 #define BUTTON2 3 #define LED 9 //создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс. Bounce bouncer1 = Bounce(BUTTON1,5); // включение Bounce bouncer2 = Bounce(BUTTON2,5); // выключение //задаем начальное состояние светодиода "выключен" int ledValue = LOW; void setup() { //определяем режимы работы пинов pinMode(BUTTON1,INPUT); pinMode(BUTTON2,INPUT); pinMode(LED,OUTPUT); } void loop() { //если сменилось состояние кнопки1 if ( bouncer1.update() ) { //если считано значение 1 if ( bouncer1.read() == HIGH ) { //если свет был выключен, будем его включать if ( ledValue == LOW ) { ledValue = HIGH; } } } //если сменилось состояние кнопки2 if ( bouncer2.update() ) { //если считано значение 1 if ( bouncer2.read() == HIGH ) { //если свет был включен, будем его вsключать if ( ledValue == HIGH ) { ledValue = LOW; } } } //записываем значение вкл/выкл на пин со светодиодом digitalWrite(LED,ledValue); }
Ну а так работает?
Да, с digitalread работает. я такой скетч находил в примерах от конструктора SIK там это circuit5. Мне хотелось с перспективой на длительность нажатия. Поэтому я написал с bounce