Оглавление:
- Шаг 1: Обзор схемы
- Шаг 2: Изготовление печатной платы
- Шаг 3. Обзор программного обеспечения
- Шаг 4: Тестирование дизайна
- Шаг 5: Заключение
- Шаг 6: Использованные ссылки
Видео: Модуль ЖК-контроллера Uber I2C: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Преамбула
В этом руководстве подробно описано, как создать модуль контроллера на базе ЖК-дисплея HD44780 (рис. 1 выше). Модуль позволяет пользователю управлять всеми аспектами ЖК-дисплея программно через I2C, включая: ЖК-дисплей и дисплей, контрастность и яркость подсветки. Хотя для его прототипирования использовался Arduino Uno R3, он будет одинаково хорошо работать с любым микроконтроллером, поддерживающим I2C.
Вступление
Как упоминалось выше, эта статья документирует создание модуля контроллера ЖК-дисплея I2C, в первую очередь она была задумана как упражнение по проектированию, чтобы определить, сколько времени потребуется для создания практической рабочей печатной платы.
Дизайн заменяет стандартный универсальный модуль контроллера (рис. 3 выше) и основан на инструкциях и библиотеках, которые я создал ранее.
От первоначального концептуального прототипа (рис. 2 выше) до готовой, полностью протестированной печатной платы (рис. 1 выше) потребовалось в общей сложности 5,5 дней.
Какие детали мне нужны? См. Прилагаемую ниже ведомость материалов.
Какое программное обеспечение мне нужно?
- Arduino IDE 1.6.9,
- Kicad v4.0.7, если вы хотите модифицировать печатную плату. В противном случае просто отправьте файл LCD_Controller.zip в JLCPCB.
Какие инструменты мне нужны?
- Микроскоп не менее x3 (для пайки SMT),
- Паяльник SMD (с жидким флюсом и порошковым припоем),
- Пинцет прочный (для пайки поверхностным монтажом),
- Плоскогубцы (остроконечные и курносые),
- Цифровой мультиметр со звуковой проверкой целостности.
Какие навыки мне нужны?
- Терпения много,
- Большая ловкость рук и отличная координация рук и глаз,
- Отличные навыки пайки.
Темы охватывали
- Вступление
- Обзор схемы
- Производство печатных плат
- Обзор программного обеспечения
- Тестирование дизайна
- Заключение
- Использованные ссылки
Шаг 1: Обзор схемы
Полная принципиальная схема всей электроники приведена на рисунке 1 выше, а также PDF-файл того же самого ниже.
Схема была разработана, чтобы быть точной заменой стандартного модуля контроллера LCD PCF8574A I2C со следующими усовершенствованиями;
- I2C выбираемая пользователем совместимость 3v3 или 5v,
- Цифровой контроль контрастности или обычная настройка потенциометра,
- Выбор переменной интенсивности задней подсветки с управлением функцией плавности Quartic для достижения плавного затухания.
Управление ЖК-дисплеем
Это факсимиле стандартного модуля ЖК-контроллера I2C, использующего PCF8574A (IC2) для преобразования I2C в параллельное.
Адрес I2C по умолчанию для этого - 0x3F.
Совместимость 3v3 или 5v I2C
Для работы 3v3 подходят Q1, Q2 ROpt1, 2, 5 и 6, IC1, C2 и C2.
Если требуется работа 5 В, не устанавливайте какие-либо компоненты 3v3, заменив их резисторами 0 Ом ROpt 3 и 4.
Цифровой контраст
Цифровой контроль контрастности достигается с помощью цифрового потенциометра U2 MCP4561-103E / MS и C4, R5.
Если требуется обычный механический потенциометр, его можно установить на печатную плату, RV1 10K, вместо U2, C4 и R5. См. На BoM совместимый потенциометр.
При установке перемычки J6 адрес I2C равен 0x2E. Предполагалось, что для нормальной работы это мост.
Выбор переменной интенсивности подсветки
Переменная интенсивность задней подсветки контролируется ШИМ-модуляцией подсветки ЖК-дисплея через вывод 6 U1 на ATTiny85. Чтобы сохранить полную совместимость со стандартным модулем ЖК-контроллера I2C, R1, T1, R7 и T2 используются для модуляции шины питания + ve.
Адрес I2C по умолчанию для этого - 0x08. Это выбирается пользователем во время компиляции до программирования U1.
Шаг 2: Изготовление печатной платы
Как упоминалось ранее, это руководство было упражнением, в первую очередь предназначенным для определения того, сколько времени потребуется для завершения проектирования (которое имело практическую цель).
В этом случае я подумал о первоначальной концепции в субботу днем и закончил прототип к вечеру субботы, рис. 1 выше. Моя идея, как уже говорилось, состояла в том, чтобы создать свой собственный вариант модуля контроллера ЖК-дисплея I2C с идентичной занимаемой площадью, предлагающий полное программное управление ЖК-дисплеем через I2C.
Принципиальная схема и компоновка печатной платы были разработаны с помощью Kicad v4.0.7, рис. 2 и 3. Это было завершено в воскресенье днем, детали были заказаны у Фарнелла, а печатная плата была загружена в JLCPCB к вечеру воскресенья.
Компоненты прибыли из Фарнелла в среду, а в четверг - из JLCPCB (я использовал службу доставки DHL, чтобы ускорить процесс), фото 4, 5, 6 и 7.
К вечеру четверга две платы (варианты 3v3 и 5v) были сконструированы и успешно протестированы на ЖК-дисплее 4 на 20. Фото 8, 9 и 10.
Великолепные 5,5 дней от первоначальной концепции до завершения.
Меня поражает, насколько быстро JLCPCB может принять заказ, изготовить двухстороннюю печатную плату PTH и отправить ее в Великобританию. Блистер 2 дня на изготовление и 2 дня на доставку. Это быстрее, чем у британских производителей печатных плат, и за небольшую плату.
Шаг 3. Обзор программного обеспечения
Программное обеспечение состоит из трех основных компонентов, необходимых для управления модулем контроллера I2C LCD;
1. Библиотека LiquidCrystal_I2C_PCF8574 Arduino
Доступна здесь
Будет использоваться в вашем скетче Arduino для управления ЖК-дисплеем.
Примечание. Это одинаково хорошо работает с универсальным контроллером ЖК-модуля I2C. Только он дает функциональность, чем другие библиотеки.
2. MCP4561_DIGI_POT Библиотека Arduino
Будет использоваться в вашем эскизе для программного управления контрастностью ЖК-дисплея.
Доступна здесь
3. Программное управление уровнями задней подсветки ЖК-дисплея с помощью функции ослабления PWM и Quartic для достижения плавного затухания
Как упоминалось ранее, на плате установлен единственный ATTiny85, используемый для управления постепенным затуханием подсветки дисплея.
Подробная информация об этом программном обеспечении приведена в более ранней инструкции «Плавное затухание светодиода PWM с ATTiny85».
В этом случае, чтобы сохранить окончательные размеры печатной платы такими же, как у стандартного модуля контроллера ЖК-дисплея, был выбран вариант SOIC ATTiny85. На рисунках 1 и 2 показано, как ATTiny85 SOIC был запрограммирован и протестирован на прототипе.
В ATTiny85 был запрограммирован код Tiny85_I2C_Slave_PWM_2.ino, доступный здесь.
Подробнее о том, как создать собственный программатор ATTiny85, см. В этом руководстве «Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP».
Шаг 4: Тестирование дизайна
Чтобы протестировать дизайн, я создал скетч под названием «LCDControllerTest.ino», который позволяет пользователю устанавливать любой конкретный параметр ЖК-дисплея непосредственно через соединение с последовательным терминалом.
Эскиз можно найти в моем репозитории GitHub I2C-LCD-Controller-Module
На рисунке 1 выше показан пресс для платы, совместимый с I2C 5 В, установленный на ЖК-дисплей 4 на 20, а на рисунке 2 показан дисплей по умолчанию при первом запуске тестового кода.
Он использует следующие значения по умолчанию для задней подсветки и контрастности;
- #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((длинное беззнаковое) (10))
- #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
Я обнаружил, что они хорошо работают с ЖК-дисплеем 4 на 20, который у меня был запасной.
Шаг 5: Заключение
Когда я впервые начал работать в индустрии электроники / программного обеспечения довольно давно, был большой акцент на использовании конструкции с проволочной оберткой или вертикальной платой для прототипирования с большим количеством инженерных решений в последней схеме на случай, если вы допустили ошибку., учитывая стоимость и продолжительность повторного вращения доски.
Ошибка обычно стоила вам нескольких недель по графику и уносила прибыль (и, возможно, вашу работу).
Печатные платы называли «произведениями искусства», потому что они действительно были произведениями искусства. Создано «трассировщиком» или рисовальщиком с помощью липкой черной крепированной ленты в два раза больше размера, затем фото уменьшено фабрикантом, чтобы фотография не поддавалась трафаретам.
Принципиальные схемы также были созданы трассировщиками и нарисованы вручную из ваших заметок о дизайне. Копии делались фотостатически и назывались «голубые отпечатки». Потому что они всегда были синего цвета.
Микроконтроллеры были только в зачаточном состоянии и, как правило, эмулировались в схемах, если ваша компания могла позволить себе их с сопутствующей сложной и дорогостоящей средой разработки.
Как производитель в то время простая стоимость цепочки инструментов для разработки программного обеспечения была непомерно высокой, вы неизбежно были вынуждены вставлять шестнадцатеричные значения прямо в EPROM (RAM / Flash, если вам очень повезло), а затем часами интерпретировать результирующее поведение, чтобы определить, что ваш код работал, если он не работал должным образом (битовое "покачивание" или последовательная печать - самые популярные методы отладки. Некоторые вещи никогда не меняются). Обычно вам приходилось писать все свои собственные библиотеки, поскольку ни одна из них не была доступна (конечно, не было такого богатого источника, как Интернет).
Это означало, что вы тратили много времени, пытаясь понять, как что-то работает, и меньше времени уделяли творчеству.
Все ваши диаграммы были нарисованы от руки, как правило, на A4 или A3, и их нужно было тщательно продумать, чтобы обеспечить логический путь прохождения сигнала слева направо. Исправления обычно означали, что вам нужно было начать с чистого листа.
По большей части ваша финальная схема была разработана с использованием вероупора для долговечности и смонтирована в простом корпусе из АБС-пластика, чтобы придать ей «профессиональный вид».
В отличие от этого, я разработал весь этот проект за 5,5 дней с использованием высококачественного бесплатного программного обеспечения, что привело к созданию печатной платы профессионального стандарта. Если бы меня охватило желание, я мог бы смонтировать его в 3D-печатной коробке собственного изготовления.
То, о чем вы могли только мечтать менее десяти лет назад.
Как все изменилось к лучшему.
Шаг 6: Использованные ссылки
KiCAD Схематическое изображение и дизайн печатной платы
KiCAD EDA
Инструмент разработки программного обеспечения Arduino ORG
Ардуино
LiquidCrystal_I2C_PCF8574 Библиотека Arduino
Здесь
MCP4561_DIGI_POT Библиотека Arduino
Здесь
Плавное затухание светодиода PWM с ATTiny85
Здесь
Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP
Рекомендуемые:
Модуль SIM900A 2G + SIM-карта с голограммой = Выигрышная комбинация в категории «Грязь дешево» ?: 6 шагов
Модуль SIM900A 2G + SIM-карта с голограммой = Выигрышная комбинация в категории «дешево на грязь» ?: Интернет вещей, модное словечко этого десятилетия, иногда входит даже в умы людей, считающих себя устойчивыми к моде, и я среди них. Интернет и увидел компанию, о которой я никогда раньше не слышал (Голограмма), раздающую SIM-карты
Модуль датчика нагрузки для педалей Logitech: 9 шагов
Logitech Pedals Load Cell Mod: я недавно установил датчик нагрузки на педаль тормоза своей педали Logitech G27. Мне пришлось немного погуглить, чтобы получить всю необходимую информацию, поэтому я подумал, что создание страницы с инструкциями может быть хорошей идеей. педаль теперь больше похожа на настоящую
Как использовать модуль RFID-RC522 с Arduino: 5 шагов
Как использовать модуль RFID-RC522 с Arduino: в этом руководстве я расскажу об основополагающем принципе работы модуля RFID вместе с его тегами и микросхемами. Я также приведу краткий пример проекта, который я сделал с использованием этого модуля RFID со светодиодом RGB. Как обычно с моими Ins
1602 Экранный модуль ЖК-клавиатуры с рюкзаком I2C: 6 шагов
Модуль 1602 LCD Keypad Shield с I2C Backpack: В рамках более крупного проекта я хотел иметь ЖК-дисплей и клавиатуру для навигации по некоторым простым меню. Я буду использовать множество портов ввода / вывода на Arduino для других задач, поэтому мне нужен интерфейс I2C для ЖК-дисплея. Итак, я купил какое-то оборудование
TCA9548A Модуль мультиплексора I2C - с Arduino и NodeMCU: 11 шагов
TCA9548A Модуль мультиплексора I2C - с Arduino и NodeMCU: Вы когда-нибудь попадали в ситуацию, когда вам приходилось подключать два, три или более датчиков I2C к Arduino, чтобы понять, что датчики имеют фиксированный или одинаковый адрес I2C. Более того, у вас не может быть двух устройств с одним и тем же адресом на одном SDA