Съдържание:

1602 LCD клавиатурен щит модул с раница I2C: 6 стъпки
1602 LCD клавиатурен щит модул с раница I2C: 6 стъпки

Видео: 1602 LCD клавиатурен щит модул с раница I2C: 6 стъпки

Видео: 1602 LCD клавиатурен щит модул с раница I2C: 6 стъпки
Видео: LCD Keypad Shield для Arduino, обзор и работа. 2024, Ноември
Anonim
1602 LCD клавиатурен щитов модул с раница I2C
1602 LCD клавиатурен щитов модул с раница I2C

Като част от по -голям проект исках да имам LCD дисплей и клавиатура за навигация в някои прости менюта. Ще използвам много от I/O портовете на Arduino за други задачи, затова исках I2C интерфейс за LCD. Затова си купих хардуер, състоящ се от модул за щит с клавиатура 1602 от DFRobot и анонимен сериен модул I2C за LCD дисплеи. Искам да ги използвам с Arduino Nano. Тогава открих, че има някои предизвикателства да накарам тези компоненти да работят заедно - но е възможно. Затова искам да споделя моя опит и може би да помогна на някои други.

Тази снимка е на работещата макет, която може да показва съобщения на LCD и да идентифицира натискането на клавиши. LCD се управлява чрез интерфейса I2C, включително LCD подсветката. Натискането на клавишите се получава от Arduino върху щифт A0 (това може да бъде всеки от аналоговите щифтове, с изключение на A4 и A5, които са свързани за интерфейса I2C).

Стъпка 1: Описание на частите - Модул за щит на LCD клавиатурата

Описание на частите - Модул за защита на LCD клавиатурата
Описание на частите - Модул за защита на LCD клавиатурата

Модулът за щит на клавиатурата на LCD се състои от често използван 1602 LCD, монтиран върху платка, която държи ключовете, и която взема подмножество от LCD връзките и ги прави достъпни за щифтовете на заглавката от долната страна на платката. Разбирам, че тази платка е предназначена да бъде монтирана върху Arduino Uno или подобна и осигурява правилното разположение на щифтовете, за да работи в тази среда. Купих този модул в Ebay от доставчик в Китай. Щифтовете на заглавката от долната (клавиатурата) страна на платката са предимно етикетирани, но щифтовете от горната страна, която е LCD интерфейсът, не са етикетирани. Пиновете на самия LCD са обозначени.

Стъпка 2: Описание на частите - I2C сериен модул

Описание на частите - I2C сериен модул
Описание на частите - I2C сериен модул

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

Този модул се основава на IC PCF8574T, който прекратява I2C протокола, има 3 пина за управление на адреса (20 до 27) и има 8 цифрови входни/изходни пина P0 до P7. Според информационния лист на PCF8574T, всеки I/O щифт има FET, за да го издърпа към земята за състоянието LOW и може да потъне поне 20ma. Във високо състояние той има преходно активно издърпване и след това продължителен ток на изтегляне от около 0,1 mA.

На този модул всички цифрови входно/изходни щифтове, с изключение на P3, просто се извеждат към щифтовете на заглавието (вдясно на снимката). В случая на P3, той е свързан към основата на транзистор (видим на снимката в горния десен ъгъл точно под етикета "LED"). Излъчвателят на този транзистор е свързан към Vss (маса), а колекторът е свързан към щифт 16 на заглавката, където може да се използва за управление на LCD подсветката. Поради транзистора логическото състояние е обърнато спрямо това, което се приема в софтуерната библиотека. Тоест, LCD подсветката е включена, когато щифтът P3 е нисък, и изключен, когато щифтът P3 е висок.

Етикетът на транзистора казва L6, което според моите изследвания вероятно го прави MMBC1623L6, който има минимално усилване на тока 200. С 0,1 mA базов ток, той трябва да може да поддържа НИСКО състояние в своя колектор (модул Pin 16) с най -малко 20mA ток на колектора.

Освен това този модул има 10K потенциометър, свързан между +5 и земята, чийто променлив проводник е изведен към щифт 3 (трети от дъното на снимката). Когато е свързан директно към LCD, този пот ще контролира контраста на LCD. Тази функция обаче се осигурява от отделен подобен съд на LCD екрана, така че този пот на серийния модул няма функция.

Не успях да намеря никаква връзка с INT щифта на PCF8574T.

АКТУАЛИЗИРАНЕ на 22 август 2019 г.

Както бе споменато по -горе, PCF8574 има 3 пина за управление на адреса. Изглежда, че те са изнесени на подложки на дъската на раницата, където са обозначени с A0, A1 и A2. Те могат да се видят на снимката. Не съм тествал това, но изглежда почти сигурно, че чрез свързване на един или повече от тези щифтове към съседните подложки, I2C адресът може да бъде контролиран в диапазона от 20 до 27. Освен това има второ почти идентично устройство, PCF8574A, който има идентична функционалност с PCF8574, но обхваща диапазона на адресите от 0x38 до 0x3F.

Адресът, който вашето устройство действително използва, може да бъде проверен с I2CScanner. Има няколко прости I2C скенера, достъпни от различни източници. Този на https://github.com/farmerkeith/I2CScanner също идентифицира някои от намерените устройства.

Стъпка 3: Връзки

Връзки
Връзки

Благодарение на ChaitanyaM17, който предостави диаграмата на Fritzing, която изобразява връзките, описани по -долу.

Мощност:

LCD модулът има щифт от долната страна с надпис "5.0V". Вдясно, в непосредствена близост до него има два необозначени щифта, които и двете са смлени.

Като държите серийния модул с I2C интерфейса в левия край, има 16 щифта в долния край. Първият от тях е шлифован, а вторият от тях е +5v. Друг вариант е да използвате долните два пина на интерфейса I2C за захранване, но намерих за по -удобно да използвам щифтовете, както е описано по -горе.

I2C интерфейс. На серийния модул горният щифт е SCL (часовник) и отива към Arduino A5. Второто закрепване е SDA (данни) и отива към Arduino A4.

LCD интерфейс за печат. Между серийния модул и щита на LCD клавиатурата има 6 връзки, всички между щифтове без етикети. Ще ги идентифицирам на LCD модула, като преброя отдясно наляво, като първият щифт е 1. Има 2 блока по 8, така че те преминават от 1 до 16. Идентифицирам ги на серийния модул I2C, като броим отляво до Да, има и 16 от тях. Освен това давам етикет на всеки проводник, който е еквивалентният щифт на Arduino, който обикновено е свързан с тази функция, в случай на директна връзка без сериен модул.

6 -те връзки за данни са:

Arduino еквивалент // ПИН за сериен модул // ПИН за модул LCD клавиатура

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

Контрол на LCD подсветката: Това използва още една връзка:

Arduino еквивалент // ПИН за сериен модул // ПИН за модул LCD клавиатура

D10 // 16 // 11

Интерфейс на клавиатурата: Това използва един проводник от щифта на LCD модула от долната страна с надпис „A0“, за да закрепи A0 на Arduino. Поне това беше доста лесно!

Стъпка 4: Направете ключа за RST използваем подобно на останалите 5 ключа

RST може да бъде свързан директно към входа RESTART на Arduino Nano.

Ако обаче искате ключът RST да може да се използва в софтуера за други неща, това може да стане чрез свързване на 15K резистор между щифта RST и щифта A0 от долната страна на щита на LCD клавиатурата.

Това работи по следния начин: Има 2K резистор между +5V и десния ключ. След това верига от постепенно по -големи резистори за всеки от другите клавиши (330R към бутона UP, 620R към клавиша НАДОЛУ, 1K към клавиша НАЛЯВО и 3K3 към бутона SELECT. Всички клавиши (включително клавиша RST) се свързват към Когато са свързани към 10 -битов A/D преобразувател (както при Arduino Nano A0), те доставят приблизително следните стойности:

Вдясно = 0; Нагоре = 100; Надолу = 260; Ляво = 410; Изберете = 640.

С 15 k резистор към RST, той доставя около 850.

Софтуерът ще използва стойности около средните точки между тези стойности, за да реши кой клавиш е натиснат.

Стъпка 5: Софтуер

Разбира се, полезният софтуер е упражнение за читателя. За да започнете обаче, можете да разгледате моя софтуер за тестване. Използвах библиотеката NewLiquidCrystal, която съдържа поддръжка за интерфейса I2C. Всичко просто работи, след като библиотеките са правилно инсталирани.

Основният момент беше да се обърне полярността на командите за подсветка OFF и ON (поради транзистора на I2C модула, както е обяснено в раздела за описание на частите).

АКТУАЛИЗИРАНЕ 22 август 2019 г.

Ако имате проблеми с неработещия LCD дисплей, моля, проверете I2C адреса на вашата серийна раница с помощта на I2C скенер. Приложен е подходящ скенер. След това, ако е необходимо, коригирайте първия параметър в израза

LiquidCrystal_I2C LCD (0x27, 2, 1, 0, 4, 5, 6, 7);

Стъпка 6: Преглед и дискусия

Както можете да видите, основните функции работят.

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

Трудността е, че този модул с LCD клавиатура не е настроен да бъде инсталиран в кутия. Всякакъв вид кутия. Бутоните на 6 -те клавиша са доста под нивото на LCD екрана, така че ако модулът е монтиран в кутия (например в капака) с горната част на LCD платката, изравнена с долната страна на капака, горните части ключовете са на около 7 мм под горната част на капака.

Възможните решения са:

а) Примири се с това. Пробийте отвори за достъп в капака и използвайте инструмент (например отсечена игла за плетене с подходящ диаметър), за да натиснете бутоните.

б) Извадете LCD от платката на модула и извършете операция на клавиатурата, така че двата компонента да могат да бъдат фиксирани независимо от капака на кутията за проектиране (мисля, че все още може да има проблем с твърде късите бутони)

в) премахнете съществуващите бутони и ги заменете с по -високи бутони. Новите бутони трябва да са с височина около 13 мм, за да могат да се управляват през капака на кутията за проектиране). Сменните превключватели на бутоните са лесно достъпни в различни височини, включително 13 мм.

г) изхвърлете модула на щита на LCD клавиатурата и използвайте отделни LCD и клавиатура (т.е. започнете отначало). Има широк набор от клавиатурни модули, но не съм виждал такъв със същото разположение на 6 клавиша, както на този модул (т.е. Изберете, Наляво, Нагоре, Надолу, Надясно, Рестартиране). Може да не е голям проблем, но една от причините да започна с този модул беше, че мислех, че това оформление на клавишите е това, което искам.

Планирам да отида с решение в) по -горе и да видя как вървя.

Друг фрагмент от информация, която може да представлява интерес:

При включена подсветка текущото потребление на този проект е: Arduino Nano 21,5 ma; Сериен модул 3.6 ma; LCD модул 27,5 mA; Общо 52 mA.

При изключена подсветка текущата консумация на този проект е: Arduino Nano 21,5 ma; Сериен модул 4.6 ma; LCD модул 9.8 mA; Общо 36 mA.

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