Съдържание:

Uber I2C LCD контролерен модул: 6 стъпки
Uber I2C LCD контролерен модул: 6 стъпки

Видео: Uber I2C LCD контролерен модул: 6 стъпки

Видео: Uber I2C LCD контролерен модул: 6 стъпки
Видео: 1602 подключаем по I2C 2024, Ноември
Anonim
Uber I2C LCD контролерен модул
Uber I2C LCD контролерен модул
Uber I2C LCD контролерен модул
Uber I2C LCD контролерен модул
Uber I2C LCD контролерен модул
Uber I2C LCD контролерен модул

Преамбюл

Тази инструкция подробно описва как да създадете HD44780 LCD базиран контролерен модул (снимка 1 по -горе). Модулът позволява на потребителя да контролира програмно всички аспекти на LCD дисплея през I2C, включващ; LCD и дисплей, интензитет на контраста и задната светлина. Въпреки че Arduino Uno R3 е използван за създаването му, той ще работи еднакво добре с всеки микроконтролер, който поддържа I2C.

Въведение

Както бе споменато по -горе, тази статия документира създаването на I2C LCD контролерен модул, той беше предназначен предимно като проектно упражнение, за да се определи колко време ще отнеме създаването на практична работеща печатна платка.

Дизайнът замества стандартния модул за общ контролер (снимка 3 по -горе) и се основава на инструкции и библиотеки, които съм създал по -рано.

От първоначалния концептуален прототип (снимка 2 по -горе) до завършена, напълно тествана печатна платка (снимка 1 по -горе) минаха общо 5,5 дни.

Какви части са ми необходими? Вижте приложените по -долу документи за материали

Какъв софтуер ми трябва?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7, ако искате да промените платката. В противен случай просто изпратете 'LCD_Controller.zip' на JLCPCB.

Какви инструменти ми трябват?

  • Микроскоп поне x3 (за SMT запояване),
  • SMD поялник (с писалка с течен флюс и спойка с флюс),
  • Силна пинсета (за SMT запояване),
  • Фини клещи (заострени и с нос),
  • DMM със звукова проверка на непрекъснатостта.

Какви умения са ми необходими?

  • Много търпение,
  • Голяма ръчна сръчност и отлична координация между ръцете и очите,
  • Отлични умения за запояване.

Обхванати теми

  • Въведение
  • Преглед на веригата
  • Производство на печатни платки
  • Преглед на софтуера
  • Тестване на дизайна
  • Заключение
  • Използвани справки

Стъпка 1: Преглед на веригата

Преглед на веригата
Преглед на веригата

Пълна електрическа схема на цялата електроника е дадена на снимка 1 по -горе, заедно със същия PDF по -долу.

Веригата е проектирана да бъде точна замяна на стандартния PCF8574A I2C LCD контролерен модул със следните подобрения;

  • I2C избираема от потребителя 3v3 или 5v съвместимост,
  • Цифров контрол на контраста или конвенционална настройка на саксията,
  • Променлив избор на интензивност на задното осветление с функция за кварцово облекчаване за постигане на плавно избледняване.

Управление на LCD дисплея

Това е факс на стандартния I2C LCD контролерен модул, използващ PCF8574A (IC2) за I2C паралелно преобразуване.

I2C адресът по подразбиране за това е 0x3F.

3v3 или 5v I2C съвместимост

За операция 3v3 се вписват Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 и C2.

Ако е необходима работа на 5v, тогава не монтирайте никакви компоненти 3v3, като ги замените с резистори 0 Ohm ROpt 3 и 4.

Цифров контраст

Цифровото управление на контраста се постига чрез използването на цифров потенциометър U2 MCP4561-103E/MS и C4, R5.

Ако е необходим конвенционален механичен потенциометър, той може да бъде монтиран към печатната платка, RV1 10K, вместо U2, C4 и R5. Вижте BoM за съвместим потенциометър.

Чрез свързване на джъмпер J6 адреса на I2C е 0x2E. Приема се, че за нормална работа това е преодоляно.

Променлива интензивност на подсветката

Променливият интензитет на задната светлина се контролира чрез ШИМ модулация на LCD LED задната светлина чрез U1 пин 6 и ATTiny85. За да се запази пълната съвместимост със стандартния I2C LCD контролерен модул R1, T1 R7 и T2 се използват за модулиране на +ve захранващата шина.

I2C адресът по подразбиране за това е 0x08. Това се избира от потребителя по време на компилация преди програмиране на U1.

Стъпка 2: Производство на печатни платки

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

Както бе споменато по -рано, тази инструкция беше упражнение, предназначено преди всичко да определи колко време ще отнеме да завърши дизайна (който имаше практическа цел).

В този случай се сетих за първоначалната концепция в събота следобед и бях завършил прототипа до събота вечер снимка 1 по -горе. Идеята ми, както беше заявено, беше да създам свой собствен вариант на модула за I2C LCD контролер, с идентичен отпечатък, предлагащ пълен програмен контрол на LCD дисплея над I2C.

Схематичната диаграма и оформлението на печатни платки са разработени с Kicad v4.0.7 снимки 2 и 3. Това беше завършено в неделя следобед и частите бяха поръчани от Farnell и печатната платка беше качена в JLCPCB до неделя вечерта.

Компонентите пристигнаха от Farnell в сряда, последвани от печатните платки от JLCPCB в четвъртък (използвах DHL услугата за доставка, за да ускоря нещата) снимки 4, 5, 6 & 7.

До четвъртък вечерта бяха изработени и успешно тествани две платки (3v3 и 5v варианти) на LCD дисплей 4 на 20. Снимки 8, 9 и 10.

Невероятни 5,5 дни от първоначалната концепция до завършването.

Учудва ме колко бързо JLCPCB може да приеме поръчка, да произведе двустранна PTH PCB и да я изпрати до Великобритания. Блистерни 2 дни за производство и 2 дни за доставка. Това е по -бързо от базираните във Великобритания производители на печатни платки и на част от цената.

Стъпка 3: Преглед на софтуера

Преглед на софтуера
Преглед на софтуера
Преглед на софтуера
Преглед на софтуера

Има три основни компонента на софтуера, необходими за управление на модула за I2C LCD контролер;

1. LiquidCrystal_I2C_PCF8574 Библиотека Arduino

Предлага се тук

Да се използва в скицата на Arduino за управление на LCD дисплея.

Забележка: Това работи еднакво добре с общия I2C LCD модулен контролер. Само той дава дава функционалност от други библиотеки.

2. MCP4561_DIGI_POT Библиотека Arduino

Да се използва в скицата ви за програмно управление на LCD контраста

Предлага се тук

3. Програмен контрол на нивата на задно осветяване на LCD, като се използва ШИМ и квартен режим на облекчаване за постигане на плавно избледняване

Както бе споменато по -рано, платката съдържа един ATTiny85, използван за контрол на постепенното избледняване на подсветката на дисплея.

Подробности за този софтуер са дадени в по -ранна инструкция „Гладко PWM LED избледняване с ATTiny85“

В този случай, за да се запазят крайните размери на печатни платки, същите като на общ LCD контролен модул, беше избран вариантът на SOIC на ATTiny85. Снимки 1 и 2 показват как ATTiny85 SOIC е програмиран и тестван в създадения прототип.

Кодът, програмиран в ATTiny85, беше „Tiny85_I2C_Slave_PWM_2.ino“, достъпен тук

За подробности как да създадете свой собствен ATTiny85 програмист, вижте тази инструкция „Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP“

Стъпка 4: Тестване на дизайна

Тестване на дизайна
Тестване на дизайна
Тестване на дизайна
Тестване на дизайна

За да тествам дизайна, създадох скица, наречена "LCDControllerTest.ino", която позволява на потребителя да зададе всеки специфичен за LCD параметър директно през серийна терминална връзка.

Скицата може да бъде намерена в моето хранилище на GitHub I2C-LCD-контролер-модул

Снимка 1 по -горе показва 5v I2C съвместима преса за платка, монтирана на 4 по 20 LCD и снимка 2 дисплея по подразбиране, когато стартирате тестовия код за първи път.

Той използва следните стойности по подразбиране за подсветка и контраст;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((без подпис дълго) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Открих, че те работят добре с LCD дисплея 4 на 20, който лежах на свобода.

Стъпка 5: Заключение

Когато за пръв път започнах в електрониката/софтуерната индустрия преди доста време, имаше голям акцент върху използването на телена обвивка или конструкция от вероборд за прототипиране с много свръх инженеринг на последната верига, в случай че сте направили грешка, предвид цената и продължителността на повторно завъртане на борда.

Грешката обикновено ви струва няколко седмици по графика и взривява маржа на печалбата (и евентуално работата ви).

ПХБ бяха наречени „произведения на изкуството“, защото те наистина бяха произведения на изкуството. Създаден два пъти в пълен размер с помощта на лепкава черна креп лента от „трасиращ“или чертожник и фотографски намален от страхотната къща, за да направи снимката устойчива на шаблони.

Електрическите схеми също са създадени от маркери и са изготвени на ръка от вашите бележки за дизайна. Копията бяха направени фотостатично и наречени „сини отпечатъци“. Защото те бяха неизменно сини на цвят.

Микроконтролерите бяха само в ранна детска възраст и обикновено бяха схематично емулирани, ако вашата компания можеше да си позволи такъв с придружаващата го сложна и скъпа среда за разработка.

Като производител по онова време, само цената на веригата от инструменти за разработка на софтуер беше непосилна, неизбежно сте били принудени да вкарвате шестнадесетични стойности директно в EPROM (RAM/Flash, ако сте имали голям късмет), след което прекарвайте часове в интерпретация на полученото поведение, за да определите какво кодът ви е работил, ако не е работил според очакванията (битовото „мърдане“или серийният printf са най -популярните техники за отстраняване на грешки. Някои неща никога не се променят). Обикновено трябваше да напишете всички свои собствени библиотеки, тъй като нямаше налични (със сигурност нямаше богат източник като интернет).

Това означаваше, че сте прекарали много време в опити да разберете как работи нещо и сте отделили по -малко време за творческо създаване.

Всички ваши диаграми бяха нарисувани на ръка, обикновено на A4 или A3 и трябваше да бъдат добре обмислени, като им се даде логичен поток от път на сигнала отляво надясно. Корекциите обикновено означаваха, че трябва да започнете с нов лист.

В по -голямата си част вашата последна верига беше разработена с помощта на veroboard за постоянство и монтирана в обикновен ABS корпус, за да й придаде този „професионален щрих“.

За разлика от това, разработих целия този проект за 5,5 дни, използвайки висококачествен безплатен софтуер, което доведе до професионална стандартна печатна платка. Ако желанието ме беше завладяло, можех да го монтирам в 3D печатна кутия, собствено производство.

Нещо, за което можеше само да си мечтаеш преди по -малко от десетилетие.

Как нещата са се променили към по -добро.

Стъпка 6: Използвани справки

KiCAD Схематично улавяне и дизайн на печатни платки

KiCAD EDA

Arduino ORG Инструмент за разработка на софтуер

Arduino

LiquidCrystal_I2C_PCF8574 Библиотека Arduino

Тук

MCP4561_DIGI_POT Библиотека Arduino

Тук

Плавно PWM LED избледняване с ATTiny85

Тук

Програмиране на ATTiny85, ATTiny84 и ATMega328P: Arduino като ISP

Препоръчано: