Мазмуну:
- 1 -кадам: Районго жалпы сереп
- 2 -кадам: PCB өндүрүшү
- 3 -кадам: Программаны карап чыгуу
- 4 -кадам: Дизайнды текшерүү
- 5 -кадам: Жыйынтык
- 6 -кадам: Колдонулган шилтемелер
Video: Uber I2C LCD Controller модулу: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Преамбула
Бул HD44780 ЖКга негизделген контроллер модулун кантип түзүү керектиги жөнүндө кеңири маалымат (жогорудагы 1 -сүрөт). Модуль колдонуучуга ЖКнын бардык аспектилерин I2C аркылуу программалык түрдө башкарууга мүмкүндүк берет; ЖК жана дисплей, контраст жана арткы жарыктын күчү. Arduino Uno R3 анын прототиби үчүн колдонулганына карабастан, I2C колдогон бардык микроконтроллерлер менен бирдей жакшы иштейт.
Киришүү
Жогоруда айтылгандай, бул макала I2C LCD Controller модулун түзүүнү тастыктайт, ал биринчи кезекте практикалык жумушчу ПХБны түзүү үчүн канча убакыт кетерин аныктоо үчүн дизайн көнүгүүсү катары арналган.
Дизайн стандарттык жалпы контроллер модулун алмаштырат (жогорудагы 3 -сүрөт) жана мен мурда чыгарган Instructables жана китепканаларга негизделген.
Баштапкы концепциянын прототипинен (жогорудагы 2 -сүрөт) аягына чейин, толугу менен сыналган ПХБга (жогорудагы 1 -сүрөт) 5,5 күнгө созулду.
Мага кандай бөлүктөр керек? Төмөндө тиркелген материалдарды караңыз
Мага кандай программа керек?
- Arduino IDE 1.6.9,
- Эгерде сиз ПХБны өзгөрткүңүз келсе, Kicad v4.0.7. Болбосо жөн гана 'LCD_Controller.zip'ди JLCPCBге жөнөтүңүз.
Мага кандай куралдар керек?
- Микроскоп жок дегенде x3 (SMT ширетүү үчүн),
- SMD ширетүүчү темир (суюк флюс калеми жана флюс өзөгү менен),
- Күчтүү пинцет (SMT ширетүү үчүн),
- Жакшы кычкачтар (учтуу жана мурундуу),
- Угуу үзгүлтүксүздүгүн текшерүү менен DMM.
Мага кандай көндүмдөр керек?
- Сабыр көп,
- Көп кол чеберчилиги жана кол/көздүн мыкты координациясы,
- Мыкты ширетүү жөндөмдөрү.
Темалар камтылган
- Киришүү
- Circuit Overview
- PCB өндүрүшү
- Программалык камсыздоо
- Дизайнды сыноо
- Жыйынтык
- Колдонулган шилтемелер
1 -кадам: Районго жалпы сереп
Бардык электрониканын толук схемасы жогорудагы 1 -сүрөттө, PDF менен бирге төмөндө берилген.
Район төмөнкү өркүндөтүүлөр менен стандарттык PCF8574A I2C LCD Controller модулун так алмаштыруу үчүн иштелип чыккан;
- I2C колдонуучу 3v3 же 5v шайкештигин тандап алат,
- Санарип контраст же кадимки идишти орнотуу,
- Арткы жарыктын интенсивдүүлүгүн тандоо Quartic жумшартуу функциясын башкаруу менен жылмакай өчүүгө жетүү үчүн.
LCD дисплей башкаруу
Бул I2C параллелдүү которуу үчүн PCF8574A (IC2) колдонгон I2C LCD Controller модулунун стандарттык факсимилеси.
Бул үчүн демейки I2C дареги 0x3F.
3v3 же 5v I2C шайкештиги
3v3 иштөө үчүн Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 жана C2 туура келет.
Эгерде 5v операциясы талап кылынса, анда 3v3 компоненттерине туура келбейт, аларды 0 Ом резисторлору ROpt 3 жана 4 менен алмаштырыңыз.
Санарип контраст
Санарип контраст контролдоо санариптик потенциометр U2 MCP4561-103E/MS жана C4, R5 аркылуу ишке ашат.
Эгерде кадимки механикалык потенциометр талап кылынса, анда U2, C4 жана R5тин ордуна PCB, RV1 10K орнотулушу мүмкүн. Ылайыктуу потенциометр үчүн Банкты караңыз.
J6 секирүүчү көпүрө аркылуу I2C дареги 0x2E болот. Бул нормалдуу иштеши үчүн бул көпүрө деп ойлогон.
Арткы жарыктын интенсивдүүлүгүн тандоо
Арткы жарыктын интенсивдүүлүгү UW pin 6 ATTiny85 аркылуу ЖК LED арткы жарыктын PWM модуляциясы менен көзөмөлдөнөт. Стандарттык I2C LCD Controller Module R1 менен толук шайкештигин сактоо үчүн, T1 R7 жана T2 +вена темир жолун модуляциялоо үчүн колдонулат.
Бул үчүн демейки I2C дареги 0x08. Бул U1ди программалоого чейин компиляция убагында колдонуучу тарабынан тандалат.
2 -кадам: PCB өндүрүшү
Жогоруда айтылгандай, бул Нускамалык, биринчи кезекте, долбоорду бүтүрүүгө канча убакыт кетерин аныктоого багытталган (практикалык максаты бар) көнүгүү болгон.
Бул учурда мен алгачкы түшүнүктү ишемби күнү түштөн кийин ойлодум жана прототипти ишемби күнү кечинде 1 -сүрөттө бүтүрдүм. Менин айтканымдай, I2C ЖК контроллер модулунун I2C үстүнөн ЖКны толук программалык башкарууну сунуштаган, бирдей изи бар өз вариантын түзүү болчу.
Схемалык диаграмма жана ПХБ макети Kicad v4.0.7 pics 2 жана 3. менен иштелип чыккан. Бул жекшемби күнү түштөн кийин аяктады жана тетиктер Фарнеллден заказ кылынып, PCB жекшемби күнү кечинде JLCPCBге жүктөлдү.
Компоненттер Фарнеллден шаршемби күнү келишти, андан кийин бейшемби күнү JLCPCBден ПКБлар келди (мен ылдамдатуу үчүн DHL жеткирүү кызматын колдондум) 4, 5, 6 & 7 сүрөттөрү.
Бейшемби күнү кечинде эки такта (3v3 жана 5v варианттары) курулуп, 4төн 20га чейин ЖК дисплейде ийгиликтүү сыналган. Сүрөттөр 8, 9 жана 10.
Баштапкы түшүнүктөн аягына чейин укмуштуудай 5.5 күн.
Бул мени таң калтырат, JLCPCB заказ алып, эки тараптуу PTH ПХБсын өндүрүп, Улуу Британияга жөнөтө алат. Өндүрүү үчүн 2 күн жана жеткирүү үчүн 2 күн. Бул Улуу Британияда жайгашкан PCB өндүрүүчүлөрүнө караганда тезирээк жана баанын бир бөлүгүндө.
3 -кадам: Программаны карап чыгуу
I2C ЖК контролер модулун башкаруу үчүн зарыл болгон программалык камсыздоонун үч негизги компоненти бар;
1. LiquidCrystal_I2C_PCF8574 Arduino китепканасы
Бул жерде жеткиликтүү
LCD дисплейди башкаруу үчүн Arduino эскизинде колдонулат.
Эскертүү: Бул Generic I2C LCD модулунун контроллери менен бирдей жакшы иштейт. Бул башка китепканаларга караганда функционалды берет.
2. MCP4561_DIGI_POT Arduino китепканасы
Эскизде LCD контрастын программалык түрдө башкаруу үчүн колдонулат
Бул жерде жеткиликтүү
3. Жылмакай өчүүгө жетүү үчүн PWM жана Quartic жеңилдетүү функциясын колдонуп, ЖКнын арткы жарык деңгээлин программалык башкаруу
Жогоруда айтылгандай, тактада дисплейдин арткы жарыгынын акырындык менен өчүшүн көзөмөлдөө үчүн колдонулган бир ATTiny85 бар.
Бул программалык камсыздоонун чоо -жайы мурунку Нускамада "ATTiny85 менен PWM LEDинин өчүшү" берилген.
Бул учурда, акыркы PCB өлчөмдөрүн сактоо үчүн, жалпы ЖК контролерунун модулу менен бирдей, 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 жогоруда 5 в I2C шайкеш тактасы 4 менен 20 ЖКга орнотулган жана сүрөт 2 сыноо кодун биринчи жолу иштетүүдө демейки дисплейди көрсөтөт.
Бул арткы жарык жана контраст үчүн төмөнкү демейки маанилерди колдонот;
- #аныктоо DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((колу узун) (10))
- #DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
Мен булар запастын тегерегинде жаткан 4 менен 20 LCD дисплейи менен жакшы иштегенин көрдүм.
5 -кадам: Жыйынтык
Мен бир аз мурун электроника/программалык камсыздоо тармагында баштаганда, эгер ката кетирсеңиз, акыркы схемада ашыкча инженерия менен прототиптештирүү үчүн зым оролгон же вертолет конструкциясын колдонууга чоң басым жасалган., тактаны кайра айлантуунун наркын жана узактыгын эске алуу менен.
Бир ката, адатта, график боюнча сизге бир нече жума сарпталат жана пайда маржасын (жана, балким, сиздин жумушуңузду) жардырды.
ПКБлар "көркөм чыгармалар" деп аталышкан, анткени алар чындап эле көркөм чыгармалар болчу. Фото трафареттерге каршы туруу үчүн "трекер" же сүрөтчү тарабынан жабышчаак кара креп тасмасы менен эки эсе толук өлчөмдө түзүлгөн жана фаберлик үй тарабынан фотографиялык түрдө кыскарган.
Райондук диаграммалар ошондой эле трассерлер тарабынан түзүлгөн жана сиздин колуңуздан дизайн конспекттериңизден алынган. Көчүрмөлөр фото-статикалык түрдө жасалып, "көк издер" деп аталат. Анткени алар дайыма көк түстө болчу.
Микроконтроллерлер кичинекей кезинде эле жана адатта сиздин компанияңыз коштоп жүргөн татаал жана кымбат өнүгүү чөйрөсүнө ээ боло алса, схемада окшоштурулган.
Ошол кездеги жаратуучу катары, программалык камсыздоону иштеп чыгуу инструменттеринин чынжырынын баасы эле өтө кымбат болчу, сиз сөзсүз түрдө EPROMго (эгер сиз абдан бактылуу болсоңуз, RAM/Flash) алты бурчтуу маанини түзүүгө мажбур болгонсуз, андан кийин натыйжалуу жүрүм -турумду чечмелеп берүү үчүн бир нече саат коротуп, эмнени аныктайт. эгер сиздин кодуңуз күтүлгөндөй иштебей жатса (кичине "чайкоо" же сериялык printf эң популярдуу мүчүлүштүктөрдү оңдоо техникасы. Кээ бир нерселер эч качан өзгөрбөйт). Сиз адатта өзүңүздүн бардык китепканаларыңызды жазышыңыз керек болчу, анткени эч ким жок болчу (албетте интернет сыяктуу бай булак жок болчу).
Бул сиз бир нерсенин кантип иштегенин түшүнүүгө көп убакыт короттуңуз жана чыгармачылык менен алектенүүгө азыраак убакыт бөлдүңүз.
Сиздин бардык диаграммаларыңыз адатта A4 же A3 форматында тартылган жана аларды солдон оңго карай сигнал жолунун логикалык агымын берүү менен кылдаттык менен ойлонушу керек болчу. Түзөтүүлөр, адатта, жаңы барактан баштоо керектигин билдирет.
Көпчүлүк учурда, сиздин акыркы схемаңыз түбөлүктүүлүк үчүн верборддун жардамы менен иштелип чыккан жана ага "профессионалдык тийүү" берүү үчүн ABSтин жөнөкөй корпусуна орнотулган.
Тескерисинче, мен бул долбоорду 5.5 күндүн ичинде жогорку сапаттагы акысыз программаны колдонуу менен иштеп чыктым, натыйжада профессионалдуу стандарт ПХБ пайда болду. Эгер каалоо мени кабыл алса, мен аны 3D форматында чыгарылган кутуга салып алмакмын.
Он жылдан аз убакыт мурун сиз кыялданган нерсе.
Иштер кандайча жакшы жакка өзгөрдү.
6 -кадам: Колдонулган шилтемелер
KiCAD Схемалык тартуу жана ПХБ дизайны
KiCAD EDA
Arduino ORG программалык камсыздоону иштеп чыгуу куралы
Arduino
LiquidCrystal_I2C_PCF8574 Arduino китепканасы
Бул жерде
MCP4561_DIGI_POT Arduino китепканасы
Бул жерде
ATTiny85 менен жылмакай PWM LEDдин өчүшү
Бул жерде
ATTiny85, ATTiny84 жана ATMega328P программалоо: ISP катары Arduino
Сунушталууда:
Манжа изи модулу + STONE TFT-LCD: 3 кадам
Манжа изи модулу + STONE TFT-LCD: Бул айда мен бармак изи менен эшикти бекитүү долбоорун иштеп чыгууну пландадым. Мен манжа изинин идентификациялык модулун тандап алганымда, долбоор токтоп калды. Бирок, манжа изинин идентификациялык модулу сатылып алынгандыктан, мен жөнөкөйлөтөм деп ойлогом
I2C рюкзак менен 1602 LCD клавиатура калкан модулу: 6 кадам
I2C рюкзагы бар 1602 LCD клавиатура калкан модулу: Чоңураак долбоордун бир бөлүгү катары менде LCD дисплейи жана кээ бир жөнөкөй менюларды чабыттоо үчүн клавиатура болгусу келди. Мен башка жумуштар үчүн Arduinoдогу I/O портторун көп колдоном, ошондуктан ЖК үчүн I2C интерфейсин кааладым. Ошентип, мен жабдыктарды сатып алдым
I2C модулу менен ЖК айдоо: 8 кадам
I2C модулу менен ЖК айдоо: Бул үйрөткүчтө биз LCD экран кантип иштээрин жана аны I2C модулу менен кантип оңой колдонууну көрөбүз
TCA9548A I2C мультиплексор модулу - Arduino жана NodeMCU менен: 11 кадам
TCA9548A I2C мультиплексор модулу - Arduino жана NodeMCU менен: Сен качандыр бир учурда сен Arduinoго эки, үч же андан көп I2C сенсорлорун туташтыруу керек болгон жагдайга кабылдың беле, сенсорлордун I2C дареги туруктуу экенин түшүнүш үчүн. Мындан тышкары, бир эле SDAда дареги бир болгон эки түзмөк болушу мүмкүн эмес
LCD UI модулу: 15 кадам
ЖК UI модулу: LCD UI модулу 8x2 жарыктандырылган ЖК, мини-джойстик, кошумча 'чоң кызыл баскыч' жана кошумча пикир алуу үчүн эки түстүү LED. Бул сиздин долбоорго интерактивдүүлүктү кошуунун оңой жолу. ЖК HD44780 менен шайкеш келет жана 4 биттик интерфейс үчүн зымдуу