Очистить кеш на Arduino UNO при удачном подключение по bluetooth и при разрыве соединения
- Войдите на сайт для отправки комментариев
Всем добрый день или вечер, возник вопрос связанный с програмирование на ардуино. На данный момент я использую Arduino UNO и блютуз модуль HC-06. Микроконтроллер связывается с телефоном и получает две переменные, а именно задержку для мигания rgb-светодиодом и цвет самого светодиода. Но есть проблема, а именно при завершении работы с микроконтроллером, я отключаюсь от блютуза а светодиод все еще продолжает мигать с заданным цветом и задержкой. Так вот появилась мысль очистить кеш при удачном подключении к блютузу и при разрыве соединения. Возможно я не сильно понятно объяснил свою проблему, если что спрашивайте и я постараюсь уточнить интересующие вас вопросы. Заранее благодарен за любую помощь и советы. Ниже прилагаю скетч:
Что значит "очистить кэш"? Вы можете распознать факт потери соединения? Если можете, то просто прекращайте мигать и всё.
я не могу распознать факт потери соединения на микроконтроллере, я этим буду управлять с телефона, тоесть например при нажатии на клавишу у меня обнуляются значения частоты моргания и цвета. Просто я думал что есть какая-то команда связанная с этим
Нога STATE есть на выходе модуля?
нет, там только четыри ноги rx-tx-5v-gnd, я вот читаю про команду serial.flush() но в сети разные мнения на счет использования этой команды.
Вот тут команды для HC-05. Там есть команда STATE, можно попробовать. Или подключиcя к пину на плате модуля на который завязан светодиод показывающий соединение.
та я бы может и рад подключаться к пину, но буквально несколько дней тому впаял модулю намертво на плату расширения, так что хотелось бы как то через скетч влиять на эти процесы
все я нашел способ как сделать то что мне нужно
О, Господи! Набрали бы в поиске по форуму "программный ресет", и первый же результат - http://arduino.ru/forum/programmirovanie/programmnyi-reset#comment-8801
все я нашел способ как сделать то что мне нужно
интересно, чем вам это поможет, если вы не умеете определять момент разрыва соединения?
ну не знаю зачем мне момент разрыва тот который вы имеете в виду, мне впринципи это вполне помогает сейчас, все значения обнуляются полностью
ну не знаю зачем мне момент разрыва тот который вы имеете в виду, мне впринципи это вполне помогает сейчас, все значения обнуляются полностью
так как вы узнаете, когда обнулять? А если знаете - не проще ли погасить светодиод и все...
ну как вам объяснить...я вот нашел функцию которая обнуляет эти значения, и я с телефона отправляю определенный байт когда нужно это функцию запускать, микроконтроллер смотрит если пришел байт то тогда все хорошо и мы грубо говоря гасим светодиод, а понять когда нужно гасить светодиод вообще просто с телефона в нужный момент мы просто посылаем этот байт и как результат светодиод гаснет
ну как вам объяснить...я вот нашел функцию которая обнуляет эти значения, и я с телефона отправляю определенный байт когда нужно это функцию запускать, микроконтроллер смотрит если пришел байт то тогда все хорошо и мы грубо говоря гасим светодиод, а понять когда нужно гасить светодиод вообще просто с телефона в нужный момент мы просто посылаем этот байт и как результат светодиод гаснет
ну замечательно. Обьясните только - зачем ради того, чтоб погасить один светодиод - ресетить всю ардуину какой-то специальной функцией? Подать на светик LOW не проще?
ну я как бы нашел метод, он как ни странно заработал, а кидать LOW на диод конечно круто но не факт что мы будем обнулять частоту, а так одна функция и все решает)))
Вы не точно сформулировали вопрос. У Вас там фигурирует "разрыв соединения". Многие (и я) это поняли как незапланированную потерю связи по блютуз. В этом случае Ваше решение никак не поможет. Оказывается, Вы имели ввиду корректное завершение связи со стороны смартфона, перед которым Вы можете послать дополнительный сигнал. В этом случае решения более чем очевидны.
не спорю возможно я не совсем точно и правильно сформулировал вопрос))
Оказывается, Вы имели ввиду корректное завершение связи со стороны смартфона, перед которым Вы можете послать дополнительный сигнал. В этом случае решения более чем очевидны.
и я бы добавил, что выбранное решение - явно не лучшее. Это все равно как выключать телевизор. отрубая свет во всей квартире, вместо того чтоб просто нажать кнопку на пульте :)
я просто плохо представляю как сделать это по другому, если вы сможете мне растолковать другой способ буду благодарен))