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

Podkovka
alezalez:

Но как от приемыша это может зависеть?

Podkovka:

впаял приемыши, диверсити включилась.

значит зависит, код проверяет наличие

sergor

Если припаян один приемник - диверсити отключается, строка пропадает.

В современных версиях приемников экран припаян крепко, будьте аккуратней пока отпаиваете… А то я с экраном пару кондеров с фильтром сдул… Благо вовремя заметил и вернул на место ))

Podkovka
sergor:

пару кондеров с фильтром сдул

Лучше жалом снимать припой и потихоньку поддевать экран, чем феном всю плату греть. Проверено на четырех мудулях

sergor

Да это не проблема, я просто второпях все делал… А вот тем, у кого опыта маловато - лучше действительно взять мощный отечественный паяльник с медным жалом и снять экран, аккуратно поддевая.

7 days later
alezalez

Таки да, строчка диверсити зависит от наличия второго приемыша. Сегодня получил модуль, впаял, и все стало гуд.

10 days later
cnyx

Товарищи, помогите. Не от хорошей жизни, ну никак приемник от gena_g у меня не хочет работать, решил собрать на монтажной платке простейший вариант по этому проекту github.com/sheaivey/…/diy-arduino-nano.md Собираю без диверсити, комментирую строку #define USE_DIVERSITY, загружаю скетч в АрдуиноНано. Скетч работает, светодиод мигает на Ардуино при нажатии клавиш, но меню на экран никак не выдает. Я уже и переключатель между выходом с ардуино и приемником убрал, припаял тюльпан напрямую к Ардуино, но GUI нет. Такое ощущение, что Ардуино не выдает ничего на D7 и D9 пинах. Скетч компилится без ошибок, только с предупреждением, что мол памяти мало. Что это может быть?

sergor

На каком устройстве смотришь видеосигнал?
Осциллографом можешь посмотреть D7 и D9 ?

cnyx

Смотрю на мониторе 5". Монитор точно рабочий. Месяцев 5 назад я собирал похожий проект на этой самой плате ардуино и 5808, только вместо тумблера для включения меню использовал 4066, код мне дописали под это дело. Все работало. Решил собрать аккуратно и вставить в шлем, но идет затык. пробовал менять сигнал на ntsc, результата тоже нет.
Осциллографа нет.

DiscoMan

Если ошибок нет и ардуина “живая везде” 😃 то проблема как раз в памяти. Если ее не хватает, то фреймбуфер не создается и библиотека TVOut ничего выдать не может. Надо посмотреть, что возвращает функция TV.begin. Если 4, то точно недостаточно памяти. Выхода два: пытаться оптимизировать код (это отдельная и очень печальная песня), либо уменьшать разрешение. Сам с этим имел кучу гимора, проблему решил в итоге по-тупому: завел вторую ардуину, заточенную только на работу с тв аут, а данные на нее стал передавать с первой по сериал порту.

sergor

Ардуинка единственная в хозяйстве?
Я как только не изголялся с заливкой прошивок этого проекта (и через avrusb, и в ардуинку с его USB, и через ISP со стороннего программатора, без бутлоадера) - они все работали, даже с кривыми фьюзами.

Проверь еще раз подключения и моник с внешнего источника типа DVD или тюнера любого.

DiscoMan:

фреймбуфер не создается

А какой там размер фреймбуфера?
И с какой стати на одной дуинке нано оно работает, а на другой - нет? Глупость какая.

DiscoMan
sergor:

И с какой стати на одной дуинке нано оно работает, а на другой - нет? Глупость какая.

Вот хз почему, но это так. Проверить просто: поставить намного меньшее разрешение и все должно заработать, если дело в этом. У меня заработало, но разрешение 64 на 64 точки мне нафик было не нужно 😃

dollop
sergor:

И с какой стати на одной дуинке нано оно работает, а на другой - нет? Глупость какая.

DiscoMan:

Вот хз почему, но это так.

Дело не в железе, а версии IDE Arduino.

cnyx
DiscoMan:

Если ошибок нет и ардуина “живая везде” то проблема как раз в памяти.

Была живая. А снять сейчас с платы для меня проблема: где чуть припоя осталось, уже фик вытащишь. Оплеткой плохо припой снимается, фена нет.
Плюс именно эту плату ардуинки с одной стороны близко к отверстиям обрезали. Я плясал с бубнами, она не хотела работать при внешнем питании, но от USB работала. Я подавал +5В на вход +5В и землю брал с той же стороны платки, но видимо там был плохой контакт и заработало только тогда, когда подал землю на вывод с другой стороны платы, а +5В на Vin. Теперь на процессоре не ровно 5В, может это влиять? Ничего страшного, если я монитор запитаю от аккумулятора, а ардуинку от USB чисто для теста? Может питания не хватает.

DiscoMan:

Надо посмотреть, что возвращает функция TV.begin. Если 4, то точно недостаточно памяти.

Я так понимаю, чтобы это узнать, нужно написать код + проверять визуально, например, светодиодом?

sergor:

Ардуинка единственная в хозяйстве?

Нет, но если пробовать другую, то только навесным монтажем. Буду пробовать в последнюю очередь.

sergor:

они все работали, даже с кривыми фьюзами.

Так у меня до этого тоже работало. Но я не на 100% уверен, что сейчас пользуюсь тем же проектом, а не форком, с гитхаба. В том варианте 5месячной давности еще был функционал DIP-переключателей.

DiscoMan:

Проверить просто: поставить намного меньшее разрешение и все должно заработать,

Это где-то в настройках либы TVout?

dollop:

Дело не в железе, а версии IDE Arduino.

Вариант интересный, возможно я версию с того момента менял. Как пробовать? Прям старые ставить или есть какие-то знаковые 2-3 версии?

DiscoMan
dollop:

Дело не в железе, а версии IDE Arduino.

Вот, кстати, давно хотел понять, какая разница в использовании разных версий IDE и их влиянии на подобные вещи. Можно поподробнее?

cnyx:

Это где-то в настройках либы TVout?

Это в аргументах функции TV.Begin, насколько я помню. А насчет проверки, равен ее результат 4 или нет, варианты разные могут быть. Светодиод включить, зуммером попищать и т.д

cnyx

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

#ifdef TVOUT_SCREENS
// #include <TVout.h>
// #include <fontALL.h>
#endif

С учетом того, что перед этим стоит ifdef и отключать инклюд этих файлов нужно никак не комментированием этих строк.
Ну и в файле settings.h было так

//#define TVOUT_SCREENS
#define OLED_128x64_ADAFRUIT_SCREENS

Собственно закомментил OLED дисплей, раскомментил TVOUT_SCREENS.
Но проблема все-равно есть: меню программы просматривается, но крайне плохое, плывет, косится. Пойду дальше колдовать.

DiscoMan

Кто-нибудь пробовал подключать вот такой дисплейчик www.ebay.co.uk/itm/…/181868816013 к Ардуино Нано по i2c? В режиме spi он работает нормально, но я бы хотел использовать его в режиме i2c для экономии выходов ардуины, нужных для других целей. Перепаял перемычку на плате дисплея для переключения его в этот режим, подключил к пинам A4 и A5, подал питание и нифига. Адафрутовская библиотека его не видит, сканер i2c не находит устройства на шине… идеи пока кончились 😃

sergor

Sda/scl не перепутал местами? Номера выводов дуины верно указаны в коде?

TheKing

Ну и sda/scl подтянуты к плюсу резистором килоом в 10?

DiscoMan

Не перепутал, надеюсь 😃 Хотя пробовал и так, и этак. Шины пробовал подтянуть резисторами - результата 0. В i2c примере из библиотеки Adafruit_1306 номера выводов для подключения i2c не указываются, насколько я понимаю. Там только адрес, 0x3c или 0x3d, попробовал и так, и так, для очистки совести больше, т.к сканер не видит ничего в любом случае.

Инициализация дисплея там выглядит так:

Serial.begin(9600);

// by default, we’ll generate the high voltage from the 3.3v line internally! (neat!)
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
// init done

В коде прописана только константа OLED_RESET, указывающая на 4 цифр. выход.

sergor

Там, в принципе, даже подтяжка необязательна, и так работает.

DiscoMan

С одним устройством на шине да, будет работать и так. С двумя и более - лучше поставить резисторы.