Помогите по модулю блютус
- Войдите на сайт для отправки комментариев
Добрый вечер. Собираю проект на ардуино и нуждаюсь в помощи. Мне нужно с модуля блютус считывать значение, есть коннект /нет коннекта. Заказанный модуль не имеет выхода key,но есть выход на котором дублируютсясигналы с диода состояния. Проблема в том, что оно постоянно мигает а к когда есть конспект то горит постоянно. Вот как раз вопрос и состоит в том, как отфильтровать мигания, чтобы оно воспринималось пардуинкой как логический ноль??? Я думаю что можно считывать скажем 3 секунды и при условии отсутствия напряжения, приравниватт значение к нулю. Но пока не знаю как этосделать. И есть еще вопрос, он наверно не со всем в этот раздел, но суть та же. Когда подключаюсь телефоном к своему hc-05 этот светодиод постоянно моргает, и загорается постоянно только если я например конекчусь к нему терминалом. Почему? Как сделать так чтобы соединение было постоянным, когда в зоне действия?
Я имел ввиду что нет пина statys а не key )))
Да и key нету, так что с aт командами пока тоже проблема
Модуль hc-06. Вот такой
http://www.aliexpress.com/item/32246701219/32246701219.html
Самый простой метод, если LED прижимается к земле при моргании (можно проверить резистором и светодиодом, подключенным между +3.3 и выходом LED):
От выхода LED через 100кОм резистор (навскидку) подключен конденсатор 47мкФ (примерно).
Параллельно этому резистору ставим "резистор (1кОм) + диод (катодом в сторону LED)"
К этому же конденсатору подключается вход ардуины.
До тех пор, пока будут мигания, конденсатор будет разряжаться через 1кОм+диод быстрее, чем заряжаться через 100кОм, так и не дотягивая до лог.1.
Но надо проверить - прижимается ли к земле выход LED при мигании (а вдруг в Z-сост. переходит?)
Понятно, что отличить мигание от немигания можно не сразу, а только через какой-то промежуток времени.
Только если в обычном случае этот промежуток примерно равен длине полупериода мигания, то в предложенном варианте - намного больше. Допустима ли такая большая задержка в определении факта мигания - решать ТС.
Хотелось решить вопрос программно. Просто пока только осваиваю програмирован ардуино. То есть нужен код, считывающий логическую единицу с пина на котором висит мигающий диод, и присваевающий некой переменной значение, только если длительность сигнала на пине больше заданного промежутка времени. Сам промежуток можно подобрать экспериментально.. На вскидку диод загорается 3 раза в секунду, и длительность замера, может быть всего 1 секунду.
Ну так измеряете длительность сигнала и сравниваете результат с порогом.
Вариант еще проще - 7-8 раз в секунду проверять наличие нуля (по прерыванию таймера) - если хоть один "ноль" появится, значит коннекта нет.
Либо прерывание по "падающему фронту" сигнала.
Можно в виде кода посочь, как последние 2 варианта реализовать?
Второй вариант с кодом - http://arduino.ru/Reference/AttachInterrupt
Или другой пример - http://arduino.ru/Reference/PulseIn - тоже подойдет. Поставить ожидание "0" и 1сек времени.
С таймерами чуть более геморройно. Лучше сначала изучить их работу, пусть и без подробностей, а потом переходить к прерываниям: http://arduino.ru/Tutorial/Arduino_Interrupts
Спасибо. То что надо. Буду пробовать