Ошибка при использовании библиотеки Bounce
- Войдите на сайт для отправки комментариев
Пт, 07/04/2017 - 19:33
Доброго времени суток.
При попытке запилить код на ШИМ управление двумя кнопками с использованием библиотеки bounce вылезли непонятные проблемы.
1 Не дает через #define назначить переменные для портов
2 Не дает назначить в переменную bouncer.read (пробовал и в int и в boolean)
Проблемы я пометил в коде комментариями.
#include <Bounce2.h> // изначально скетч разрабатывается для ШИМ управления светодиодом двумя кнопками "+" и "-" и без прерывания цикла программы int buttonPin_1 = 2; // не дает почему-то поставить #define int buttonPin_2 = 4; // не дает почему-то поставить #define int ledPin = 9; // не дает почему-то поставить #define int ledStatus = 0; int ledPreStatus = 0; // #define ledStep 51; #define buttonTime 10 Bounce bouncer1 = Bounce(); Bounce bouncer2 = Bounce(); void setup() { 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(); int val1 = !bouncer1.read ; // не может преобразовать ни в int ни в boolean int val2 = !bouncer2.read ; // не может преобразовать ни в int ни в boolean if ( val1 == HIGH && val2 == LOW ){ if (ledPreStatus<255){ ledPreStatus = ledPreStatus+ledStep; if (ledPreStatus>255){ ledPreStatus = 255; } } } if ( val2 == HIGH && val1 == LOW){ if (ledPreStatus>0){ ledPreStatus = ledPreStatus-ledStep; if (ledPreStatus<0){ ledPreStatus = 0; } } } ledStatus=ledPreStatus }
Правильный дефайн у вас в 10 строке - делайте подобным образом.
По поводу 30 и 31 строки - смотрите описание вашей библиотеки как с ней правльно работать.
В строках 5, 6, 7 я пробовал ставить #define. но компилятор ругался.
Update. Довел код до работоспособного (как всегда невнимательность) . но проблема с #define осталась
Проверил ваш скетч у себя все с дефайнами компилируется без проблем.
Лучший "bounce" это конденсатор.
Проблемы я пометил в коде комментариями.
Лучше б Вы ообщения компилятора привели!
Не ставьте ; после определяемого числа в #define и будет Вам счастье.
#define reffery 321
Вот как-то так
Клапауций не спать!!
Запрети нах этот bounce, он не только хрень дебильная, он даже хуже твоего титанового самоката.
Клапауций не спать!!
Запрети нах этот bounce, он не только хрень дебильная, он даже хуже твоего титанового самоката.
я не вникал в bounce, но за тупой базар нужно отвечать - ходи в тему класс титановый велосипед для тактовой кнопки. и обоснуй там, что дребезг в моём коде обрабатывается некорректно. иначе, ты - балабол.
Logik, в чем проблема использования библиотеки bounce?
Быстро и без лишних заморочек позволяет решать задачу. Значит, как минимум, годно для начинающих.
Logik, в чем проблема использования библиотеки bounce?
логик отправлен в питушатню за балабольство.
Logik, в чем проблема использования библиотеки bounce?
Быстро и без лишних заморочек позволяет решать задачу. Значит, как минимум, годно для начинающих.
Так ведь есть такие "начинающие", что которым до статуса начинающих как до Луны пехом. А библитеку bounce я посылаю к Джереми Блуму вместе с теми кто ее юзает.
Хе-хе
- ходи в тему класс титановый велосипед для тактовой кнопки. и обоснуй
логик отправлен в питушатню за балабольство.
Теперь я знаю где на форуме петушатня. Самокритчно ты Клапауций, к своей теме относишся )) Но справедливо.
Logik, в чем проблема использования библиотеки bounce?
Быстро и без лишних заморочек позволяет решать задачу. Значит, как минимум, годно для начинающих.
Не годно. Потому что верное решение будет выглядеть дето так.
Теперь о преимуществах этого кода.
1. Расширен востребованый функционал, добавлен автоповтор.
2. Обем написания меньше.
3. Обем скомпилировеного кода меньше.
4. Использует озу меньше. Пункты 2-4 можете проверить сами, а заодно сходить в "петушатню" по ссылке выше и сравнить с тамошним.
5. Загружвет процессор меньше.
6. Не требует наличия сторонней библиотеки. Проект собирается на любой версии без выкачки либы.
7. При разработке не требует времени на изучение интерфейса сторонней библиотеки. Использованы только широко известные функции.
8. Не зависит от качества сторонней библиотеки, её глюков, наличия делея, версионной политики, использования ценных аппаратных ресурсов.
9. Расширяемость. Любой требуемый функционал самой экзотичной фантазии (например двойной клик одной кнопки при долгом удержании второй при потушеном светодиоде) достаточно легко добавляется. Причем ровно в том обеме, в котором сочтете нужным.
10. Знание общего подхода (формирован временных интервалов без делея) избавляет от необходимости знания многих частных (набора библиотек на каждый пук). Для новичка это скорость освоения ардуины, для старпера - меньше хлама в голове.
ПС. Искал в Вашем коде непосредственно установку ledPin, не нашел, ну и себе не стал писать.
Теперь я знаю где на форуме петушатня. Самокритчно ты Клапауций, к своей теме относишся )) Но справедливо.
поздно отмазываться от звания питушиного балабола - ты не ответил за свои слова.
Теперь я знаю где на форуме петушатня. Самокритчно ты Клапауций, к своей теме относишся )) Но справедливо.
поздно отмазываться от звания питушиного балабола - ты не ответил за свои слова.
Не. На твой пожизненый титул я не претендую. Хотяб потому что в
и обоснуй там, что дребезг в моём коде обрабатывается некорректно.
нет важной штучки - ссылки на то, где я такое утверждал. Но так-как ты балабол то шо с тя взять..
ПС. Такого "дребезг в моём коде обрабатывается некорректно" я даже в принципе знать не могу, я её не пользовал и не буду. Никогда. Потому про ней, как и про эту bounce, пишу просто и конкретно - ненужная и даже вредная хрень. Обоснования - см. на пару постов выше, целых 10 пунктов.
я даже в принципе знать не могу, я её не пользовал и не буду.
не читал, но осуждаю(с) - скройся в ужосе, чепуха бессмысленная.