Делаем из простого приемника Продвинутый-3 или универсальный модуль управления и индикации.

Панкратов_Сергей
DiscoMan:

В коде какие-нибудь проверки на дребезг есть

Там проблем с “дребезгом” нет потому как при том алгоритме его влияния быть не может.
Улучшить можно посадив на цифровые пины и введя прерывания, но нужно ли?
Несколько неудобно - нажав кнопку ждать ее срабатывания ( короткое нажатие не всегда будет приводить к результату) - но привыкается быстро. Тем паче этих кнопок в реальности приходится касаться очень редко.

Edward_tlt

Вопрос к тем кто использует OLED дисплеи, я правильно понимаю, что есть дисплеи на 3.3В (отсутствует стабилизатор на плате) и 3-5В (со стабом XC6206)?

DiscoMan
Панкратов_Сергей:

Улучшить можно посадив на цифровые пины и введя прерывания, но нужно ли?

Ясно. Я кнопки, видимо, все равно на цифровые входы пересажу, с обработкой без прерываний, т.к нужно освободить хотя бы один аналоговый вход для подключения датчика тока. Хочу, чтобы потребляемый ток тоже было видно, т.к приемник будет работать в составе репитера видео, а там есть всякая подключаемая/отключаемая нагрузка в завис-ти от разных сценариев использования. Да, в коде выловил несколько багов. Связаны они в основном с проверками корректности данных и работой с массивами. Например, когда в EEPROM еще ничего не сохранено, там сидит какой-то произвольный номер канала и в результате в переменную can попадает бог знает что 😃 потом еще в режиме выбора каналов при переключении кнопками FREQ на экране периодически становится равной 0, т.к происходит выход за границы массива с сохраненными частотами каналов. Ну, и тому подобные мелочи. Еще добавил в код возм-ть прервать процесс анализа спектра, калибровки RSSI и сканирования частот. Иногда в эти режимы заходишь случайно и приходилось дожидаться окончания процесса. Теперь не нужно.

Сергей, еще вопрос. А зачем был введен такой алгоритм расчета значений напряжения питания? с настройкой VoltageDivider по кнопкам?

Панкратов_Сергей
DiscoMan:

Сергей, еще вопрос. А зачем был введен такой алгоритм расчета значений напряжения питания?

Эти вопросы, по всей видимости, не мне. Не к исходной прошивке.

Yden
DiscoMan:

А зачем был введен такой алгоритм расчета значений напряжения питания? с настройкой VoltageDivider по кнопкам?

это было добавлено автором модифицированной прошивки для того чтобы калибровку напряжения произвести на сколько я понял,

по поводу переноса на цифровые входы мне бы было интересно освободить аналоговые для того чтоб подключить пищалку о разряде или её можно прикрутить и к цифровому входу ? может кто подскажет

10 days later
DiscoMan
Yden:

по поводу переноса на цифровые входы мне бы было интересно освободить аналоговые для того чтоб подключить пищалку о разряде или её можно прикрутить и к цифровому входу ? может кто подскажет

Я перенес. Нужен один резистор на 10к и пару правок в коде. Работает нормально. Алгоритм устранения дребезга контактов добавлять не стал по принципу “и так сойдет” 😃

Yden
DiscoMan:

Нужен один резистор на 10к и пару правок в коде.

а можно чуток подробней какие правки ? и куда резюк 10к ? последовательно входу ?

Панкратов_Сергей:

Пищалку можно на любой.

был бы очень признателен если кто подсказал как прикрутить пищалку, у меня есть показания напряжения с питанием наземки, что нужно добавить в код чтоб пищалка срабатывала скажем при 10В на акке

DiscoMan

Вот так:

В коде есть константы, задающие соответствие кнопок и входов. Например, такая: Bolshe - там вместо Ахх надо поставить номер цифрового пина, на который перевешена кнопка.

С пищалкой тоже довольно просто. Есть функция tone(). Ее вызывать нужно в основном цикле loop() как только код, измеряющий напряжение (значение vval/VoltageDivider в твоих исходниках) возвращает величину ниже определенного порога. Т.е обычный условный оператор if…else.

Yden

стрелка это земля ?
с переносом на цифровые входы вроде понятно, а по поводу пищалки пока не очень

есть эта функция tone () допустим я смогу сделать условие и запихать его в цикл, как подключать пищалку ? одной ногой на цифровой вход другой на землю, хватит ли у ардуинки "сил " ей пищать или надо будет какой нибудь драйвер спаять между пищалкой и выходом?

DiscoMan

Земля. Насчет пищалки - зависит от того, какая именно пищалка. Насколько мощная и т.д. Тут могут быть варианты: напрямую (маловероятно) или через транзистор. Погугли: “connecting buzzer to arduino”.

Или вот, взял из мануала по tBeacon’у 😉

DiscoMan:

Bolshe - там вместо Ахх надо поставить номер цифрового пина, на который перевешена кнопка.

Цифровые пины в коде ардуины задаются просто цифрами, без А. Т.е код будет выглядеть вот так:

Т.е вместо

#define Bolche A3

Будет

#define Bolche 5 //пять - это номер пина, на который перевесим кнопку

Да, можно обойтись без резистора, а просто кнопкой замыкать цифровой вход на землю, как есть сейчас. Только вход надо настроить для использования internal pullup. Тогда ардуина подключит собственный, внутренний резистор. Гугли: “arduino digital input internal pullup”

19 days later
Hyperion

не про продвинутый конечно. Но может кто то может посоветовать куда копать. Собираю приемник по этой схеме
www.rcgroups.com/forums/showthread.php?t=2477752
Вот с такой проблемой столкнулся

www.youtube.com/watch?v=ZgaLjrnA5PE

Вместо видео с ардуины - просто розовый экран. Причем не исчезает пока не выключишь монитор. Выключение ардуины его не убирает.
Пробовал загружать в ардуино демо скетч tv-out. Та же самая проблема. Как Pal так и ntsc режимы. С камеры видео показывает нормально этот же монитор.

gena_g
Hyperion:

не про продвинутый конечно. Но может кто то может посоветовать куда копать. Собираю приемник по этой схеме
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”);
}

max809
Hyperion:

Выключение ардуины его не убирает.

Думается дело в мониторе. На другом пробовали?

Hyperion
gena_g:

Я смотрел Вы в коде использовали serial. С tv_out serial использовать нельзя .Если нужен последовательный порт то нужно использовать pollserial.h, и убрать Serial.begin;

как я понял там serial используется для управления IR диодом. Я эту строчку закомментировал.

max809:

Думается дело в мониторе. На другом пробовали?

тоже уже грешу или на ардуину или на монитор. Другого под рукой нету, телек только, вроде там были тюльпаны входы, попробую еще на нем.

Hyperion

проверил на телеке. Показывает все отлично. Проблема значит в мониторе. Он у меня прошит кастомной прошивкой без синего экрана. Где то в ней косяк…

SheD

Ребят, приемыш никто не желает повторить? Лутом заниматься не охото, это разводить схему надо, и с переходными мучаться. Кароче, 3 готовых платки стоят 22,45$. Есть еще двое желающих на изготовление?
Ссылка на проект