Доброго времени суток. Я в Ардуино начинающий. При попытке написания скетча для ШИМ управления двумя кнопками с использованием библиотеки Bounce, вылезли интересные проблемы. 1 В глобальной функции не могу назначать порты через #define 2 При попытке записать bouncer.read в какую нибудь переменную сильно ругается (пробовал boolean и int) выдает cannot convert 'Bounce::read' from type 'bool (Bounce:()' to type 'bool' UPD 2 второй вопрос решил и довел код до полностью работоспособного. Но вот что за беда с # define? Проблемные места в коде пометил комментариями. Код (C++): #include <Bounce2.h> //скетч разрабатывается для ШИМ управления светодиодом двумя кнопками "+" и "-" по однократному нажатию int buttonPin_1 = 2; // не дает почему-то поставить #define buttonPin_1 2 int buttonPin_2 = 4; // не дает почему-то поставить #define buttonPin_2 4 int ledPin = 9; // не дает почему-то поставить #define ledPin 9 int ledStatus = 0; #define ledStep 51; #define buttonTime 50 Bounce bouncer1 = Bounce(); Bounce bouncer2 = Bounce(); boolean StatePin_1 = 0; boolean StatePin_2 = 0; void setup() { ledStatus = 0; analogWrite(ledPin, ledStatus); pinMode(buttonPin_1, INPUT_PULLUP); bouncer1.attach(buttonPin_1); bouncer1.interval(buttonTime); pinMode(buttonPin_2, INPUT_PULLUP); bouncer2.attach(buttonPin_2); bouncer2.interval(buttonTime); } void loop() { bouncer1.update(); bouncer2.update(); boolean val1 =!bouncer1.read(); boolean val2 =!bouncer2.read(); if ( val1 == HIGH && val2 == LOW ){ if (ledStatus<255 && val1 !=StatePin_1){ ledStatus = ledStatus+ledStep; StatePin_1=HIGH; if (ledStatus>255){ ledStatus = 255; } } } if ( val2 == HIGH && val1 == LOW ){ if (ledStatus>0 && val2 !=StatePin_2){ ledStatus = ledStatus-ledStep; StatePin_2=HIGH; if (ledStatus<0){ ledStatus = 0; } } } if(val1 == LOW && val2 == LOW){ StatePin_1=LOW; StatePin_2=LOW; } analogWrite(ledPin, ledStatus); }
Так это компилятор скушал и не подавился UPD все косяки исправил. немного усовершенствовал код на проверку одновременного нажатия кнопок. Все гуд. Тему можно удалять.