Ой, снова!
Нет. Это не так. У нас клубный форум. Не для обсуждения и уж точно не для"помогания".
Тогда извините, не правильно понял…
@Yakov , у Вас ничего не получится ни с библиотекой, ни без, пока Вы нормально не сформулируете требуемый алгоритм работы. Иначе говоря, пока Вы сами чётко не поймёте - как должно работать устройство. Исходное сообщение такого представления не даёт. Поэтому и предложенные варианты кода не работают, точнее, работают, но Вам не подходят. Потом оказывается, что и кнопка-то не кнопка…
Ну почему же, четко поставлена задача: считать только 2 нажатия кнопки независимо от последующих и зажечь и через секунду погасить светодиод. вот и все ну еще добавить 10 секунд паузы после выполнения кода со светодиодом
Сколько последующих игнорировать? В штуках или в секундах? Или и в том и в том?
Пример нормального ТЗ:
- Слушаем кнопку. При обнаружении двух последовательных нажатий с паузой между ними менее 1 сек - включаем светодиод на одну секунду.
- Последующие 8 нажатий игнорируем.
Или - последующие нажатия в течении 8 сек игнорируем.
Или - 8 нажатий но не долее 8 сек игнорируем.
Или - 8 сек, но не более 8 нажатий игнорируем.
Ясен вопрос?
Вы подтверждаете моё замечание о том, что сами не знаете, что Вам нужно. В этом сообщении уже пропало условие про секунду между нажатиями (Что, теперь уже можно сутки между нажатиями ждать? ), зато появились 10 секунд паузы (А что такое пауза? Игнорировать любые действия пользователя или всё-таки считать нажатия, но отреагировать на них через 10 секунд?). И это наверняка ещё не все возможные сценарии, которые могут произойти.
Вот когда у Вас всё сложится, тогда и перевести это в код не составит труда.
@kalapanga, беcтолку, они считают себя правыми и не слушают!
Я одному как-то пытался объяснить как формализовать хотелку, посмотрите, сколько букв набил с примерами и т.п… Так он просто слился. До сих пор жалко пальцы побитые об клавиiи
Хорошо я вас понял, исправляюсь в надежде на помощь…
1)1 кнопка нормально разомкнутая (программный антидребезг не нужен) подключена к пину D2(INPUT_PULLUP) и GND
2) Светодиод подключенный к пину GND и D4
Условия: Ровно каждую одну секунду происходят нажатия длительностью 500 миллисекунд всего нажатий 10.
ТЗ:
- Слушаем кнопку. При обнаружении двух последовательных нажатий с паузой между ними ровно 1 сек - включаем светодиод на одну секунду.
- Последующие 8 нажатий игнорируем(любым способом)
- Пауза прослушивания кнопки 30 секунд.
Я не считаю себя правым, и всегда слушаю что говорят и анализирую
По Вашему ответу @kalapanga у меня сложилось другое впечатление.
Но, если я ошибся, то почитайте пост по моей ссылке и “поанализируйте”.
Я прочитал, все правильно и четко написано, вот и я попытался исправиться. Ну все мы люди и не идеальны к сожалению…
Так у Вас все нажатия “последовательные”, чего их “обнаруживать”…
Ну все примеры которые я пробовал писать на сколько хватило знаний, следят за всеми нажатиями, а мне надо что бы после 2го произошло событие а не дальше считались нажатия… Может не понятно конечно описываю, ну как могу
Видимо ещё мешает тот факт, что Вы видите какое-то реальное устройство, которое здесь представили кнопкой. Естественно читатели представляют человека, нажимающего кнопку.
Сразу лезут дополнительные вопросы. Надо ли проверять что прошла именно секунда? С какой точностью? А всегда ли будут 10 нажатий и т.п. А если это устройство, гарантированно выдающее пачку из 10 импульсов, то достаточно тупо считать штуки (с учётом длительности импульса), после второй включить светодиод, спать секунду, выключить светодиод, доспать оставшиеся 29 секунд, обнулить счётчик нажатий и заново проверять кнопку.
Делается даже без каких-то хитростей, тупо на delay. Похоже на Ваш код с библиотекой, только не надо там никаких мультикликов.
Лучше.
- Избегай понятий “ровно”. Это точно не то, что тебе надо и если программист дотошный или с хорошим юмором, то можно сделать именно то, что ты написал. Проверять интервал между нажатиями с максимально доступной для Ардуино точностью - порядка микросекунды.
Никогда так больше не пиши.
- Так что тебе надо? Научиться такое писать - тогда продолжим тут. Или получить код - тогда не этично просить это бесплатно. Тут, конечно, нет никакой сложности. Но то, что не можешь или не хочешь делать сам нужно оплачивать. Со знакомыми - взаимными услугами или просто дружеским расположением. С незнакомцами - материально. В этом случае переходи в “Ищу исполнителя”.
Видимо “ни то” или “не там” подкрутил в библиотеке.