Делаем из простого приемника Продвинутый-3 или универсальный модуль управления и индикации.
В общем, подсоединился согласно картинке из этого поста, т.к приемники похожие. Модуль у меня стоит Comtech. Во всяком случае так написано на его крышке 😃 Результат: RSSI чего-то там показывает… порядка 10-15. Перестройка по частоте не происходит. Приемник застрял на какой-то неизвестной. Спектроанализатор не работает. Т.е просто рисует линию в нуле. Наверное, что-то все неправильно в подключении тюнера 😃
Вам нужно: 1)+5В; 2) GND; 3) SDA; 4) SCK; 5) AGC -RSSI; 6) video+ audio. Основные для сканирования - 1,2,3,4 и 5, вот их и нужно проверять. Вот ссылка на этот модуль www.etheli.com/files/…/ComtechModuleNotes.txt . Т.е. выводы 2,3,5,7 и корпус.
У меня все было подсоединено в точном соответствии с данными по ссылке. В общем, уже просто на основе интуиции поменял местами SCK и SDA, и все заработало, как полагается. Единственно, что вызывает вопросы - не сразу срабатывают кнопки. В коде какие-нибудь проверки на дребезг есть?
upd. Сам уже посмотрел - нету 😃 Значит, нужно будет делать. Еще вот чего не понял. Кнопки управления подключены к аналоговым пинам, а считывание их состояния идет посредством digitalRead. Это с какой целью было сделано? По идее, нужно их все переносить на цифровые пины, добавлять подтягивающие резисторы и в код вставлять проверку на дребезг контактов. Тогда с ними работать будет значительно приятнее 😃
В коде какие-нибудь проверки на дребезг есть
Там проблем с “дребезгом” нет потому как при том алгоритме его влияния быть не может.
Улучшить можно посадив на цифровые пины и введя прерывания, но нужно ли?
Несколько неудобно - нажав кнопку ждать ее срабатывания ( короткое нажатие не всегда будет приводить к результату) - но привыкается быстро. Тем паче этих кнопок в реальности приходится касаться очень редко.
Вопрос к тем кто использует OLED дисплеи, я правильно понимаю, что есть дисплеи на 3.3В (отсутствует стабилизатор на плате) и 3-5В (со стабом XC6206)?
Улучшить можно посадив на цифровые пины и введя прерывания, но нужно ли?
Ясно. Я кнопки, видимо, все равно на цифровые входы пересажу, с обработкой без прерываний, т.к нужно освободить хотя бы один аналоговый вход для подключения датчика тока. Хочу, чтобы потребляемый ток тоже было видно, т.к приемник будет работать в составе репитера видео, а там есть всякая подключаемая/отключаемая нагрузка в завис-ти от разных сценариев использования. Да, в коде выловил несколько багов. Связаны они в основном с проверками корректности данных и работой с массивами. Например, когда в EEPROM еще ничего не сохранено, там сидит какой-то произвольный номер канала и в результате в переменную can попадает бог знает что 😃 потом еще в режиме выбора каналов при переключении кнопками FREQ на экране периодически становится равной 0, т.к происходит выход за границы массива с сохраненными частотами каналов. Ну, и тому подобные мелочи. Еще добавил в код возм-ть прервать процесс анализа спектра, калибровки RSSI и сканирования частот. Иногда в эти режимы заходишь случайно и приходилось дожидаться окончания процесса. Теперь не нужно.
Сергей, еще вопрос. А зачем был введен такой алгоритм расчета значений напряжения питания? с настройкой VoltageDivider по кнопкам?
Сергей, еще вопрос. А зачем был введен такой алгоритм расчета значений напряжения питания?
Эти вопросы, по всей видимости, не мне. Не к исходной прошивке.
А где можно посмотреть исходную?
А зачем был введен такой алгоритм расчета значений напряжения питания? с настройкой VoltageDivider по кнопкам?
это было добавлено автором модифицированной прошивки для того чтобы калибровку напряжения произвести на сколько я понял,
по поводу переноса на цифровые входы мне бы было интересно освободить аналоговые для того чтоб подключить пищалку о разряде или её можно прикрутить и к цифровому входу ? может кто подскажет
Пищалку можно на любой.
Смоделировал в PROTEUSE.
Прошивки: (HEX)
yadi.sk/d/3u6Tu-Ltkw9ma
yadi.sk/d/VcL6FJUXkw9mV
Файл проекта:
yadi.sk/d/ydpfWZf7kw9mJ
по поводу переноса на цифровые входы мне бы было интересно освободить аналоговые для того чтоб подключить пищалку о разряде или её можно прикрутить и к цифровому входу ? может кто подскажет
Я перенес. Нужен один резистор на 10к и пару правок в коде. Работает нормально. Алгоритм устранения дребезга контактов добавлять не стал по принципу “и так сойдет” 😃
Нужен один резистор на 10к и пару правок в коде.
а можно чуток подробней какие правки ? и куда резюк 10к ? последовательно входу ?
Пищалку можно на любой.
был бы очень признателен если кто подсказал как прикрутить пищалку, у меня есть показания напряжения с питанием наземки, что нужно добавить в код чтоб пищалка срабатывала скажем при 10В на акке
Вот так:
В коде есть константы, задающие соответствие кнопок и входов. Например, такая: Bolshe - там вместо Ахх надо поставить номер цифрового пина, на который перевешена кнопка.
С пищалкой тоже довольно просто. Есть функция tone(). Ее вызывать нужно в основном цикле loop() как только код, измеряющий напряжение (значение vval/VoltageDivider в твоих исходниках) возвращает величину ниже определенного порога. Т.е обычный условный оператор if…else.
стрелка это земля ?
с переносом на цифровые входы вроде понятно, а по поводу пищалки пока не очень
есть эта функция tone () допустим я смогу сделать условие и запихать его в цикл, как подключать пищалку ? одной ногой на цифровой вход другой на землю, хватит ли у ардуинки "сил " ей пищать или надо будет какой нибудь драйвер спаять между пищалкой и выходом?
Земля. Насчет пищалки - зависит от того, какая именно пищалка. Насколько мощная и т.д. Тут могут быть варианты: напрямую (маловероятно) или через транзистор. Погугли: “connecting buzzer to arduino”.
Или вот, взял из мануала по tBeacon’у 😉
Bolshe - там вместо Ахх надо поставить номер цифрового пина, на который перевешена кнопка.
Цифровые пины в коде ардуины задаются просто цифрами, без А. Т.е код будет выглядеть вот так:
Т.е вместо
#define Bolche A3
Будет
#define Bolche 5 //пять - это номер пина, на который перевесим кнопку
Да, можно обойтись без резистора, а просто кнопкой замыкать цифровой вход на землю, как есть сейчас. Только вход надо настроить для использования internal pullup. Тогда ардуина подключит собственный, внутренний резистор. Гугли: “arduino digital input internal pullup”
не про продвинутый конечно. Но может кто то может посоветовать куда копать. Собираю приемник по этой схеме
www.rcgroups.com/forums/showthread.php?t=2477752
Вот с такой проблемой столкнулся
www.youtube.com/watch?v=ZgaLjrnA5PE
Вместо видео с ардуины - просто розовый экран. Причем не исчезает пока не выключишь монитор. Выключение ардуины его не убирает.
Пробовал загружать в ардуино демо скетч tv-out. Та же самая проблема. Как Pal так и ntsc режимы. С камеры видео показывает нормально этот же монитор.
не про продвинутый конечно. Но может кто то может посоветовать куда копать. Собираю приемник по этой схеме
www.rcgroups.com/forums/showthread.php?t=2477752
Вот с такой проблемой столкнулсяwww.youtube.com/watch?v=ZgaLjrnA5PE
Вместо видео с ардуины - просто розовый экран. Причем не исчезает пока не выключишь монитор. Выключение ардуины его не убирает.
Пробовал загружать в ардуино демо скетч tv-out. Та же самая проблема. Как Pal так и ntsc режимы. С камеры видео показывает нормально этот же монитор.
Я смотрел Вы в коде использовали serial. С tv_out serial использовать нельзя .Если нужен последовательный порт то нужно использовать pollserial.h, и убрать Serial.begin;
#include <pollserial.h>
pollserial pserial;void setup()
{
TV.set_hbi_hook(pserial.begin(57600));
}void loop {
pserial.print (“TEST”);
}
Выключение ардуины его не убирает.
Думается дело в мониторе. На другом пробовали?