Повторение морзянки кнопкой
- Войдите на сайт для отправки комментариев
Здравствуйте, уважаемые форумчане!
Задача:
Человек услышал стук. Сам должен так простучать. Arduino должна проверить корректность стука.
--------------------------------------------
Примерное решение
Там контакты будут на железной штуки, как знаете, на старых дверях.
Т.е., я так понял нужно использовать прерывание.
Т.е. вход, к примеру, Arduino Uno, подтянут к 5V, а прикасаясь контактами мы будем сбрасывать вход в 0.
А прерывание будет фиксировать переход от 5V к 0V.
----------------------------------------------
Примерный код
1) К примеру, звуковой рисунок морзянки:
СТУКИ: СТУК СТУК СТУК СТУК
СЕКУНДЫ: 1ая--------------2ая-------------3яя
2) Примерный код:
а) Обработка прерывания по стуку:
переменная += 1;
б) Основная программа:
loop() { if (переменная == 1) { //------------------1ый стук - начало программы----------------------- текущееВремя = millis(); //------------------Отработка 2ого стука-------------------- do { пустая команда; while(текущееВремя + 900 <= millis()) //ожидаем в течение 900 мс if (переменная != 1) //Если был стук - неверно break; //Слишком рано! Выходим. delay(200); //Даём 200 мс, //ожидая 2ого стука. if (переменная != 2) //Если сткнули не 1 раз, break; //не то - выходим. //----------------Отработка 3го стука-------------------- текущееВремя = millis(); do { пустая команда; while(текущееВремя + 300 <= millis()) if (переменная != 2) break; delay(200); if (переменная != 3) break; //----------------Отработка 4го стука-------------------- текущееВремя = millis(); do { пустая команда; while(текущееВремя + 300 <= millis()) if (переменная != 3) break; delay(200); if (переменная != 4) break; НУЖНОЕ ДЕЙСТВИЕ; } переменная == 0; }
Обратная связь
Прошу обратную связь по такой реализации.
По Вашей просьбе для приведеной реализации
Обратная связь
ПС. приборы?! - 90!
;)
По Вашей просьбе для приведеной реализации
Обратная связь
ПС. приборы?! - 90!
;)
Если имеется ввиду Arduino, то Arduino Nano. Там прерывания есть
Лоджик как бы намекает что никто писать за Вас код не собирается, если вы попросите помочь найти ошибку или расписать алгоритм то пожалуйста, если хотите рабочий код используйте раздел форума http://arduino.ru/forumy/ishchu-ispolnitelya
Был проект где ардуина открывает замок если стук в дверь совпадает с сохраненным. Поищите...
Лоджик как бы намекает что никто писать за Вас код не собирается, если вы попросите помочь найти ошибку или расписать алгоритм то пожалуйста, если хотите рабочий код используйте раздел форума http://arduino.ru/forumy/ishchu-ispolnitelya
Написал же код. Это, по-моему, моё первое сообщение здесь. Может не активизировал его видимость?
Я как-раз по нему и прошу дать комментарии.
Был проект где ардуина открывает замок если стук в дверь совпадает с сохраненным. Поищите...
Спасибо, уже что-то нахожу