Мазмуну:

I2C рюкзак менен 1602 LCD клавиатура калкан модулу: 6 кадам
I2C рюкзак менен 1602 LCD клавиатура калкан модулу: 6 кадам

Video: I2C рюкзак менен 1602 LCD клавиатура калкан модулу: 6 кадам

Video: I2C рюкзак менен 1602 LCD клавиатура калкан модулу: 6 кадам
Video: i2C T20 - Нагреватель для плат за 100$. Что внутри и нужен ли он?! 2024, Ноябрь
Anonim
I2C рюкзак менен 1602 LCD клавиатура калкан модулу
I2C рюкзак менен 1602 LCD клавиатура калкан модулу

Чоңураак долбоордун алкагында мен LCD дисплейге жана кээ бир жөнөкөй менюларды чабыттоо үчүн баскычка ээ болгум келди. Мен башка жумуштар үчүн Arduinoдогу I/O портторун көп колдоном, ошондуктан ЖК үчүн I2C интерфейсин кааладым. Ошентип, мен DFRobotтун 1602 LCD клавиатура калкан модулунан жана ЖК үчүн анонимдүү I2C сериялык модулунан турган кээ бир жабдыктарды сатып алдым. Мен муну Arduino Nano менен колдонгум келет. Анан мен бул компоненттердин чогуу иштеши үчүн кээ бир кыйынчылыктар бар экенин түшүндүм - бирок бул мүмкүн. Ошондуктан мен тажрыйбам менен бөлүшкүм келет, балким башкаларга жардам бергим келет.

Бул сүрөт ЖКда билдирүүлөрдү көрсөтүү жана басуу баскычтарын аныктоо мүмкүн болгон иштөө панелинен. ЖК I2C интерфейси аркылуу башкарылат, анын ичинде LCD жарыгы. Негизги пресстерди Arduino A0 пининде кабыл алат (бул I2C интерфейси үчүн байланган A4 жана A5тен башка аналогдук казыктар болушу мүмкүн).

1 -кадам: Бөлүктөрдүн сүрөттөлүшү - LCD баскычтоп калкан модулу

Бөлүктөрдү сүрөттөө - LCD баскычтоп калкан модулу
Бөлүктөрдү сүрөттөө - LCD баскычтоп калкан модулу

LCD клавиатурасы калкан модулу ачкычтарды кармаган райондук тактанын үстүнө орнотулган 1602 ЖКдан турат жана алар ЖК туташууларынын чакан бөлүгүн алып, аларды платанын астындагы башкы казыктарга жеткиликтүү кылат. Мен түшүнөм, бул такта Arduino Uno же окшошунун үстүнө орнотулган жана ошол чөйрөдө иштөө үчүн туура пин макетин камсыз кылат. Мен бул модулду Ebayден Кытайдагы сатуучудан сатып алдым. Тактанын ылдыйкы (клавиатура) тарабында жайгашкан төөнөгүчтөр негизинен этикеткаланып жазылган, бирок үстүнкү жагында, ЖК интерфейси, төөнөгүчтөр белгиленген эмес. Бирок ЖКдагы казыктардын өзү белгиленген.

2 -кадам: Бөлүктөрдү сүрөттөө - I2C Serial Module

Бөлүктөрдү сүрөттөө - I2C сериялык модулу
Бөлүктөрдү сүрөттөө - I2C сериялык модулу

Сериялык модулда I2C үчүн кадимки 4-төөнөгүч бар, жана мен түшүнгөн, белгисиз баш төөнөгүчтөрдүн топтому түздөн-түз ЖК модулунун астына туташтырууга арналган. ЖКдагы этикеткаларды изилдөө менен мен сериялык модулдагы казыктардын функцияларын аныктай алдым.

Бул модуль IC2 PCF8574Tге негизделген, ал I2C протоколун токтотот, даректерди көзөмөлдөө үчүн 3 төөнөгүчкө ээ (20дан 27ге чейин) жана P0ден P7ге чейин 8 санариптик киргизүү/чыгаруу казыктары бар. PCF8574T маалымат барагына ылайык, ар бир I/O пини LOW абалын жерге түшүрүү үчүн FETке ээ жана 20мадан кем эмес чөгөт. Жогорку абалда, ал убактылуу активдүү тартууга, андан кийин 0.1 мАга жакын созулган тартууга ээ.

Бул модулда, санариптик I/O казыктарынын баары, P3төн башкалары, төөнөгүчтөргө чыгарылат (сүрөттө оң жакта). P3 болгон учурда, ал транзистордун базасына туташкан (сүрөттө "LED" этикеткасынын астында, оң жактагы оң жакта көрүнөт). Ошол транзистордун эмитенти Vss (жерге) менен туташат жана коллектор баштыктын пинине 16 туташтырылган, ал жерде ЖКнын жарыгын башкаруу үчүн колдонсо болот. Транзистордон улам, логикалык абал программалык китепканасында кабыл алынганга салыштырмалуу тескери болот. Башкача айтканда, ЖК арткы жарыгы P3 пин төмөн болгондо күйгүзүлөт, ал эми P3 пин бийик болгондо ӨЧҮРҮЛӨТ.

Транзистордун этикеткасында L6 жазылган, бул менин изилдөөм боюнча, балким, аны MMBC1623L6 кылат, ал минималдуу учурдагы кирешеси 200. 0.1 мА базалык ток менен, ал коллекторунда ТӨМӨН абалды сакташы керек (Pin 16 модулу) жок дегенде 20mA коллектордук ток менен.

Мындан тышкары, бул модулда +5 менен Жердин ортосунда туташкан 10K потенциометр бар, анын өзгөрмөлүү коргошун 3 -пинге чыгарылат (сүрөттө ылдыйдан үчүнчү). ЖКга түз туташканда, бул идиш ЖКнын контрастын көзөмөлдөйт. Бирок, бул функция ЖК калканчындагы өзүнчө окшош идиш менен камсыздалат, андыктан сериялык модулдагы бул идиштин эч кандай функциясы жок.

Мен PCF8574T INT пинине эч кандай байланыш таба алган жокмун.

UPDATE 22 Август 2019

Жогоруда айтылгандай, PCF8574 3 дарек көзөмөлдөөчү казыкка ээ. Булар рюкзак тактайчаларындагы A0, A1 жана A2 деп белгиленген жерге чыгарылган окшойт. Алар сүрөттө көрүнүп турат. Мен муну сынап көргөн эмесмин, бирок бул казыктардын бирин же бир нечесин чектеш аянтчаларга көпүрө коюу менен I2C дарегин 20дан 27ге чейинки аралыкта көзөмөлдөсө болот. Мындан тышкары, экинчи дээрлик бирдей түзмөк бар PCF8574A PCF8574 менен бирдей функцияга ээ, бирок 0x38ден 0x3Fке чейин даректер диапазонун камтыйт.

Сиздин түзмөк чынында колдонгон даректи I2CScanner менен текшерсе болот. Ар кандай булактардан алынган бир нече жөнөкөй I2C сканерлери бар. Бул https://github.com/farmerkeith/I2CScanner дарегинен табылган кээ бир түзмөктөрдү аныктайт.

3 -кадам: Байланыштар

Байланыштар
Байланыштар

Төмөндө сүрөттөлгөн байланыштарды чагылдырган Fritzing диаграммасын берген ChaitanyaM17ге рахмат.

Кубат:

ЖК модулунун асты жагында "5.0V" деп белгиленген пин бар. Оң жакта, анын жанына экөө тең негизделген эки этикетри жок.

I2C интерфейси бар сериялык модулду сол колунда кармап, төмөнкү четинде 16 казык бар. Булардын биринчиси жер, экинчиси +5v. Дагы бир вариант - I2C интерфейсиндеги төмөнкү эки казыкты бийлик үчүн колдонуу, бирок мен төөнөгүчтөрдү жогоруда айтылгандай колдонууну ыңгайлуу деп таптым.

I2C интерфейси. Сериалдык модулда жогорку пин - SCL (саат) жана ал Arduino A5ке барат. Экинчи пин - SDA (маалымат) жана ал Arduino A4ке барат.

LCD басма интерфейси. Сериялык модуль менен ЖК баскыч калканынын ортосунда 6 байланыш бар, алардын баары этикеткасы жок казыктардын ортосунда. Мен аларды ЖК модулда оңдон солго карай эсептеп, биринчи пин менен 1 деп белгилейм. 8дин 2 блогу бар, ошондуктан алар 1ден 16га чейин барышат. Мен аларды I2C сериялык модулунда солдон баштап санап аныктайм. Туура, булардын дагы 16сы бар. Мындан тышкары, мен ар бир зымга сериялык модулу жок түз байланыш болгондо, адатта, ошол функция менен байланышкан Arduinoдогу эквиваленттүү пин болуп саналган энбелгини берем.

Ошентип, 6 маалымат байланыштары:

Arduino эквиваленти // Сериялык модуль пини // ЖК Баскычтоп модулунун пини

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

ЖК жарыктандырууну башкаруу: Бул дагы бир байланышты колдонот:

Arduino эквиваленти // Сериялык модуль пини // ЖК Баскычтоп модулунун пини

D10 // 16 // 11

Ариптакта интерфейси: Бул "A0" деп белгиленген, A0 Arduino'го бекитүү үчүн, төмөн жагындагы ЖК модулдук пиндин бир зымын колдонот. Жок дегенде бул абдан оңой болду!

4 -кадам: RST ачкычын башка 5 ачкычка окшош кылуу

RST түздөн -түз Arduino Nano'дун RESTART киришине туташтырылышы мүмкүн.

Бирок, эгер сиз RST ачкычы башка нерселер үчүн программалык камсыздоого жарактуу болушун кааласаңыз, муну LCD баскыч калканчынын ылдый жагындагы RST пини менен A0 пининин ортосундагы 15K каршылыгын туташтыруу менен жасаса болот.

Бул төмөнкүдөй иштейт: +5V менен Оң ачкычтын ортосунда 2K каршылык бар. Андан кийин башка баскычтардын ар бири үчүн бара -бара чоңураак резисторлор чынжыры (330R UP баскычына, 620R DOWN баскычы, 1K солго жана 3K3 SELECT баскычы үчүн. Бардык баскычтар (RST баскычын кошкондо) 10 бит A/D конвертерине туташканда (Arduino Nano A0 үчүн) алар болжол менен төмөнкү баалуулуктарды беришет:

Right = 0; Up = 100; Ылдый = 260; Сол = 410; Тандоо = 640.

15 к резистор менен RST, ал болжол менен 850 жеткирет.

Программа кайсы баскыч басылганын аныктоо үчүн бул маанилердин ортосундагы орто чекиттердин тегерегиндеги баалуулуктарды колдонот.

5 -кадам: Программалык камсыздоо

Пайдалуу программалык камсыздоо, албетте, окурман үчүн көнүгүү. Бирок, сиз баштоо үчүн, менин тесттик программамды карап көрсөңүз болот. I2C интерфейсин колдогон NewLiquidCrystal китепканасын колдондум. Китепканаларды туура орноткондон кийин баары иштеди.

Негизги жагдай, Backlight OFF жана ON командаларынын полярлыгын артка кайтаруу болгон (I2C модулундагы транзистордон улам Бөлүктөрдүн Сүрөттөө бөлүмүндө түшүндүрүлгөндөй).

UPDATE 22 Август 2019

Эгерде сизде LCD дисплей иштебей жатса, I2C сканери аркылуу сериялык рюкзактын I2C дарегин текшериңиз. Ылайыктуу сканер тиркелет. Андан кийин, зарыл болсо, билдирүүдөгү биринчи параметрди тууралаңыз

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

6 -кадам: Карап чыгуу жана талкуулоо

Көрүнүп тургандай, мен негизги функцияларды иштедим.

Кийинки ниетим - муну башка долбоордун алкагында долбоор кутусуна салуу. Бирок бул жолго чыккандан кийин мен күтпөгөн дагы бир кыйынчылык бар экенин билдим.

Кыйынчылык бул LCD баскычтобу модулу бир кутуга орнотулган эмес. Ар кандай кутуча. 6 баскычтын баскычтары ЖК экрандын деңгээлинен бир топ төмөн, андыктан эгерде модуль ЖК микросхемасынын үстү капкактын асты менен бир кутуга (мисалы, капкакка) орнотулган болсо, чокулары ачкычтар капкактын үстүнөн болжол менен 7 мм төмөн.

Мүмкүн болгон чечимдер:

а) Ага чыда. Капкакты ачуу үчүн тешиктерди бургула жана баскычтарды басуу үчүн шайманды (мисалы, ылайыктуу диаметри бар кесилген ийне) колдонуңуз.

б) ЖКны модулдук схемадан алып салыңыз жана клавиатурада операция жасаңыз, ошондо эки компонент долбоордун кутусунун капкагына өз алдынча бекитилет (менин оюмча, баскычтар өтө кыска болгондуктан дагы деле көйгөй болушу мүмкүн)

в) болгон баскычтарды алып салып, ордуна бийик баскычтар менен алмаштыруу. Жаңы баскычтар болжол менен 13 мм бийиктикте болушу керек, ошондуктан алар долбоордун кутусунун капкагы аркылуу иштей алат). Алмаштыруу баскычы 13мм, анын ичинде бийиктикте жеткиликтүү.

г) ЖК тергич калкан модулун жокко чыгаруу жана өзүнчө ЖК жана клавиатура бирдиктерин колдонуу (б.а. башынан баштоо). Жеткиликтүү клавиатура бирдиктеринин кеңири ассортименти бар, бирок мен бул модулдагыдай 6 баскычтуу жайгашууну көрө элекмин (б.а. тандоо, сол, өйдө, ылдый, оңго, кайра баштоо). Бул чоң маселе эмес болушу мүмкүн, бирок бул модулдан баштаганымдын себептеринин бири - бул ачкыч макетин мен каалагандай деп ойлогом.

Мен в) жогорудагы чечим менен барууну пландап жатам жана менин кандай баратканымды көрөсүң.

Кызыктыра турган дагы бир маалымат үзүндүсү:

Жарык күйгүзүлгөндө, бул долбоордун учурдагы керектөөсү: Arduino Nano 21.5 ма; Сериялык модуль 3.6 ма; ЖК модулу 27,5 мА; Бардыгы 52 мА.

Арткы жарык өчүрүлгөндө, бул долбоордун учурдагы керектөөсү: Arduino Nano 21.5 ма; Сериялык модуль 4.6 ма; ЖК модулу 9,8 мА; Бардыгы 36 мА.

Сунушталууда: