Экспериментальный проект ChiArdumeg - собираем промежуточный модуль дисплея

Продолжаем работать над "буферным" модулем, ведь нельзя просто взять, и подключить мой экземпляр ЖК дисплея к Arduino.
21 июня 2024, пятница 09:05
Hard-Workshop для раздела Блоги

В прошлой части была создана основа промежуточного модуля, просто кусок текстолита и пара разъёмов, однако нужно дальше что-то делать:

Хоть контролёр дисплея и весьма непривередлив к уровням напряжений/качества сигнальных линий, но в итоге было решено поработать над более грамотным согласованием уровней между Arduino и дисплеем:

Но есть проблема, у меня в наличии есть только постоянные резисторы на 1 кОм, городить из них делители весьма глупо, да и не факт, что хватит имеющегося количества деталей...

Потому расчехлил горсть переменных резисторов:

Да, это далеко не идеальный вариант, но давайте вспомним старые телевизоры, и обнаружим множество переменных резисторов на платах, только попробуйте сказать, что старые телевизоры мало работали, уцелевшие и не разобранные на радиодетали до сих пор прекрасно работают:

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

Сейчас делители из переменных резисторов настроены на среднее положение, то есть в 2 раза понижают напряжение, учитывая 5в входное, выходное будет максимум 2.5в, и дисплей нормально работает:

Хотя есть и условная проблема, так как полное сопротивление резисторов ~10 кОм, любое касание пальцем способно создать помехи для сигнала, а значит и электромагнитные наводки теоретически будут способны нарушить стабильность работы дисплея, ну и уровень напряжения далеко не везде получается высоким, всё же переборщил с сопротивлением:

Так что подключаю контролёр через гнездо внешнего питания к напряжению 5в, и ожидаемо дисплей не заработал:

Ведь линейный стабилизатор ams1117 съедает почти 2 вольта, и до контролёра доходит всего 3.14в, а значит до сигнальных линий дисплея и вовсе доходит всего ~1.6в:

Так что немного регулирую переменные резисторы, и дисплей снова нормально работает, даже в столь суровых условиях пониженного напряжения питания:

Так, а что это там за хитрая дощечка для пайки? Правильно, это ESR тестер!

Смотрим полное сопротивление переменного резистора: Около 9 кОм, что явно меньше заявленных 10 кОм (обозначение "103"), обычный дешёвый DT-832 показал сопротивление 8.74 кОм, но не стоит удивляться разнице между тестерами, всё же SMD площадки не очень подходят для измерения выводных деталей, а колодку специально предназначенную для этого я не догадался применить:

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

А теперь поговорим о том, почему именно Arduino Mega 2560, а не что-то иное. В целом соглашусь, большинство портов вряд ли задействую, и маленькую плату проще встроить внутри и так маленького системного блока, в котором чуть ли не каждый квадратный сантиметр занят:

Но замечу несколько важных нюансов:

1) У Mega 2560 в 4 раза больше памяти, как оперативной, так и постоянной, а это позволит меньше парится над оптимизацией прошивок:

2) У меня есть гораздо более компактная Arduino UNO, но размеры всё равно ощутимые, а Nano версий нет, чтобы переход на меньшее был целесообразен, плюс вспоминаем первый пункт:

3) Так же есть OLED дисплей, но его разрешение всего 128x64, а ещё он невероятно маленький, может быть потом задействую, но точно не сейчас:

4) В приоритете использовать уже имеющиеся детали, так что покупать STM и прочее точно нет планов ради проекта без конкретной цели.

Но вернёмся к проекту.

В идеале, резистивные делители следует разместить прямо на плате дисплея, но мы живём не в идеальном мире, так что придётся всё разместить на промежуточном модуле, и единственным вариантом вижу разместить резисторы в лежачем положении, ибо в стоячем они выступают за габариты коннекторов, а это лишняя потеря пространства, которое хотелось бы сохранить:

Осталось только решить, где и как разместить всё... Для работы дисплея мне нужно выделить следующие ресурсы:

  • Две общие линии питания (плюс 5в и земля).
  • Шесть сигнальных линий, из которых только пять будет задействовано.

Итого нужно 8 проводников на питание дисплея и сигнальные линии, что прекрасно вписывается в пределы одного коннектора на 8 жил.

И хоть я буду использовать только пять сигнальных линий, шестую тоже нужно развести, вдруг задействую в будущем. Подгибаю ножки резисторов, примеряюсь, и в целом мне нравится, осталось подумать над расположением:

Определяюсь с расположением резисторов, смещение на одну "пятку" не просто так сделал, ведь плотность контактов у гнезда выше, чем у деталей, и благодаря смещению нужно будет делать меньше работы в плане пайки и прокладки проводов до коннектора:

Осталось расчехлить самодельный аккумуляторный паяльник:

И припаять резисторы к плате, правда я забыл сделать смещение в одну пятку... Ладно, фиг с ним, и так сойдёт:

Прекрасно, все резисторы припаяны, осталось дело за малым:

Правильно, беру кусок медного провода, и разбираю на медные жилы:

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

Лучше один раз увидеть... А хотя ладно, всё равно не особо понятно выглядит...

Подключаю выходные сигнальные линии к каждому резистору по порядку, для питания выделены крайние контакты коннектора:

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

Ну да ладно, и так сойдёт.

Хм, пора бы закругляться, а то слишком много будет материала за раз... Оставлю продолжение на следующую "серию".

Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.