Բովանդակություն:

1602 LCD ստեղնաշարի վահանի մոդուլ I2C ուսապարկով ՝ 6 քայլ
1602 LCD ստեղնաշարի վահանի մոդուլ I2C ուսապարկով ՝ 6 քայլ

Video: 1602 LCD ստեղնաշարի վահանի մոդուլ I2C ուսապարկով ՝ 6 քայլ

Video: 1602 LCD ստեղնաշարի վահանի մոդուլ I2C ուսապարկով ՝ 6 քայլ
Video: Arduino 16x2 I2C LCD Moving text #shorts 2024, Նոյեմբեր
Anonim
1602 LCD ստեղնաշարի վահանի մոդուլ I2C ուսապարկով
1602 LCD ստեղնաշարի վահանի մոդուլ I2C ուսապարկով

Որպես ավելի մեծ ծրագրի մի մաս, ես ուզում էի ունենալ LCD էկրան և ստեղնաշար `որոշ պարզ ընտրացանկերում նավարկելու համար: Ես կօգտագործեմ Arduino- ի I/O նավահանգիստները շատ այլ աշխատանքների համար, ուստի ես ուզում էի I2C ինտերֆեյս LCD- ի համար: Այսպիսով, ես գնել եմ մի շարք սարքավորումներ, որոնք բաղկացած են 1602 LCD ստեղնաշարի վահանի մոդուլից DFRobot- ից և LCD- ների համար անանուն I2C սերիական մոդուլից: Ես ուզում եմ դրանք օգտագործել 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 սերիական մոդուլ

Սերիական մոդուլն ունի I2C- ի համար սովորական 4-պինագլուխ վերնագիր և մի շարք չպիտակավորված վերնագրերի կապանքներ, որոնք ես հասկանում եմ, մտադիր են ուղղակիորեն միացնել LCD մոդուլի ստորին հատվածին: Ուսումնասիրելով LCD- ի պիտակները, ես կարողացա նույնականացնել սերիական մոդուլի քորոցների գործառույթները:

Այս մոդուլը հիմնված է IC PCF8574T IC- ի վրա, որն ավարտում է I2C արձանագրությունը, ունի 3 քորոց հասցեի կառավարման համար (20 -ից 27 -ը) և ունի 8 թվային մուտքային/ելքային PIN- ից P7- ի համար: Ըստ PCF8574T- ի տվյալների թերթիկի, յուրաքանչյուր մուտքի/ելքի քորոց ունի FET ՝ այն ցածր մակարդակի համար գետնին քաշելու համար և կարող է ընկղմվել առնվազն 20 մա: Բարձր վիճակում այն ունի անցողիկ ակտիվ ձգում և այնուհետև շարունակական ձգման հոսանք `մոտ 0.1 մԱ:

Այս մոդուլի վրա թվային բոլոր մուտքային/ելքային կապերը, բացառությամբ P3- ի, պարզապես դուրս են բերվում վերնագրի կապում (նկարի աջ կողմում): P3- ի դեպքում այն միացված է տրանզիստորի հիմքին (լուսանկարում երևում է վերևի աջ հատվածում ՝ «LED» պիտակի տակ): Այդ տրանզիստորի արտանետիչը միացված է Vss (գետնին), իսկ կոլեկտորը `վերնագրի 16 -րդ կապին, որտեղ այն կարող է օգտագործվել LCD լուսարձակը վերահսկելու համար: Տրանզիստորի պատճառով տրամաբանական վիճակը փոխվում է ծրագրային գրադարանում ընդունվածի համեմատ: Այսինքն, LCD լուսարձակը միացված է, երբ P3 փինը ցածր է, և անջատված է, երբ P3 կապիչը բարձր է:

Տրանզիստորի պիտակի վրա գրված է L6, որն ըստ իմ հետազոտության, հավանաբար, դարձնում է MMBC1623L6, որի ընթացիկ նվազագույն շահույթը 200 է: 0,1 մԱ բազային հոսանքով այն պետք է կարողանա պահպանել OWԱOWՐ վիճակ իր կոլեկտորում (մոդուլի Pin 16) առնվազն 20 մԱ կոլեկտորային հոսանքով:

Բացի այդ, այս մոդուլն ունի 10K պոտենցիոմետր, որը միացված է +5- ի և Ground- ի միջև, որի փոփոխական կապարը դուրս է բերվում 3 -րդ կապին (նկարի ներքևից երրորդը): Երբ ուղղակիորեն միացված է LCD- ին, այս կաթսան վերահսկելու է LCD- ի հակադրությունը: Այնուամենայնիվ, այդ գործառույթն ապահովվում է LCD վահանի առանձին նմանատիպ կաթսայով, ուստի սերիական մոդուլի այս կաթսան ոչ մի գործառույթ չունի:

Ես չկարողացա կապ գտնել PCF8574T- ի INT կապի հետ:

ԹԱՐՄԱՆԵԼ 2019 թվականի օգոստոսի 22 -ին

Ինչպես նշվեց վերևում, 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 կապում: Դրանցից առաջինը հիմնավորված է, իսկ երկրորդը ` +5 վ: Մեկ այլ տարբերակ է օգտագործել I2C ինտերֆեյսի ստորին երկու կապում ուժի համար, բայց ես ավելի հարմար գտա օգտագործել կապերը, ինչպես նկարագրված է վերևում:

I2C ինտերֆեյս: Սերիական մոդուլի վրա վերևի քորոցը SCL է (ժամացույց) և այն անցնում է Arduino A5- ին: Երկրորդ քորոցը SDA է (տվյալներ) և այն անցնում է Arduino A4- ին:

LCD տպման ինտերֆեյս: Սերիական մոդուլի և LCD ստեղնաշարի վահանի միջև կա 6 միացում, բոլորը `առանց պիտակների: Ես դրանք կբնորոշեմ LCD մոդուլում ՝ աջից ձախ հաշվելով, առաջին քորոցը ՝ 1 -ը: 8 -ի 2 բլոկ կա, ուստի դրանք 1 -ից հասնում են 16 -ի: Ես դրանք ճանաչում եմ I2C սերիայի մոդուլում ՝ ձախից հաշվելով Rightիշտ է, դրանք նույնպես 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» պիտակով, Arduino- ի A0- ին ամրացնելու համար: Առնվազն դա բավականին հեշտ էր:

Քայլ 4. RST ստեղնը օգտագործելի դարձնելը նման է մյուս 5 բանալիներին

RST- ն կարող է միացվել անմիջապես Arduino Nano- ի RESTART մուտքին:

Այնուամենայնիվ, եթե ցանկանում եք, որ RST- ի բանալին օգտագործելի լինի ծրագրային ապահովման մեջ այլ բաների համար, դա կարելի է անել `LCD ստեղնաշարի վահանի ներքևի մասում RST կապի և A0 կապի միջև 15K դիմադրություն միացնելու միջոցով:

Սա գործում է հետևյալ կերպ. +5V- ի և Right ստեղնի միջև կա 2K դիմադրություն: Այնուհետև աստիճանաբար ավելի մեծ ռեզիստորների շղթա յուրաքանչյուր այլ բանալիների համար (330R դեպի UP ստեղն, 620R դեպի ներքևի ստեղն, 1K դեպի ձախ և 3K3 դեպի SELECT ստեղն: Բոլոր ստեղները (ներառյալ RST ստեղնը) միանում են 10 բիթանոց A/D փոխարկիչին միանալիս (Arduino Nano A0- ի դեպքում) դրանք տալիս են մոտավորապես հետևյալ արժեքները.

Աջ = 0; Վեր = 100; Վար = 260; Ձախ = 410; Ընտրեք = 640:

RST- ի 15 կ ռեզիստորով այն ապահովում է մոտ 850:

Valuesրագիրը կօգտագործի այս արժեքների միջև ընկած միջին կետերի արժեքները `որոշելու, թե որ ստեղն է սեղմված:

Քայլ 5: Softwareրագրակազմ

Օգտակար ծրագրակազմը, իհարկե, վարժություն է ընթերցողի համար: Այնուամենայնիվ, սկսելու համար կարող եք ծանոթանալ իմ փորձարկման ծրագրակազմին: Ես օգտագործեցի NewLiquidCrystal գրադարանը, որը պարունակում է աջակցություն I2C ինտերֆեյսի համար: Ամեն ինչ պարզապես աշխատեց, երբ գրադարանները ճիշտ տեղադրեցի:

Հիմնական կետը Backlight OFF և ON հրամանների բևեռականություն լինելն էր (I2C մոդուլի տրանզիստորի պատճառով, ինչպես բացատրված է Մասերի նկարագրություն բաժնում):

ԹԱՐՄԱՆԵԼ 2019 թվականի օգոստոսի 22 -ին

Եթե LCD էկրանը չի աշխատում, խնդրում ենք ստուգել ձեր սերիական ուսապարկի I2C հասցեն ՝ օգտագործելով I2C սկաների միջոցով: Կցված է համապատասխան սկաներ: Այնուհետև անհրաժեշտության դեպքում ճշգրտեք հայտարարության առաջին պարամետրը

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

Քայլ 6: Վերանայում և քննարկում

Ինչպես տեսնում եք, ես ստացել եմ հիմնական գործառույթները:

Իմ հաջորդ մտադրությունն է սա դնել նախագծի տուփի մեջ ՝ որպես մեկ այլ ծրագրի մաս: Այնուամենայնիվ, այս ճանապարհին գնալուց հետո ես իմացա, որ կա ևս մեկ դժվարություն, որը ես չէի սպասում:

Բարդությունն այն է, որ LCD ստեղնաշարի այս մոդուլը ստեղծված չէ վանդակում տեղադրելու համար: Sortանկացած տուփ: 6 ստեղների կոճակները գտնվում են LCD էկրանի մակարդակից շատ ցածր, այնպես որ, եթե մոդուլը տեղադրված է տուփի մեջ (օրինակ ՝ կափարիչում), LCD տախտակի վերևի հատվածը համընկնում է կափարիչի ներքևի մասի հետ, բանալիները գտնվում են կափարիչի վերևից մոտ 7 մմ ներքևում:

Հնարավոր լուծումներն են.

ա) համակերպվեք դրա հետ: Կափարիչի վրա անցքեր բացեք և կոճակները սեղմելու համար օգտագործեք գործիք (օրինակ ՝ համապատասխան տրամագծի տրիկոտաժի ասեղ):

բ) Հեռացրեք LCD մոդուլի տպատախտակից և վիրահատություն կատարեք ստեղնաշարի վրա, որպեսզի երկու բաղադրիչներն ինքնուրույն ամրացվեն նախագծի տուփի կափարիչին (կարծում եմ, որ կոճակների չափազանց կարճ լինելու հետ կապված դեռ կարող է խնդիր լինել)

գ) հեռացնել առկա կոճակները և դրանք փոխարինել ավելի բարձր կոճակներով: Նոր կոճակները պետք է ունենան մոտ 13 մմ բարձրություն, որպեսզի դրանք գործարկվեն նախագծային տուփի կափարիչով): Փոխարինող կոճակների անջատիչները հեշտությամբ մատչելի են մի շարք բարձունքներում, ներառյալ 13 մմ:

դ) դեն նետեք LCD ստեղնաշարի վահանի մոդուլը և օգտագործեք առանձին LCD և ստեղնաշարի միավորներ (այսինքն ՝ նորից սկսել): Առկա է ստեղնաշարի միավորների լայն տեսականի, սակայն ես չեմ տեսել այս մոդուլում տեղադրված նույն 6-բանալին դասավորությամբ (այսինքն ՝ ընտրել, ձախ, վեր, վար, ներքև, աջ, վերագործարկում): Գուցե դա մեծ խնդիր չէ, բայց այս մոդուլով սկսելու պատճառներից մեկն այն էր, որ ես կարծում էի, որ այս հիմնական դասավորությունն այն է, ինչ ուզում էի:

Ես պլանավորում եմ գնալ գ) վերևի լուծմամբ և տեսնել, թե ինչպես եմ ես գնում:

Տեղեկատվության մեկ այլ հատված, որը կարող է հետաքրքրել.

Հետին լուսարձակը միացված է, այս ծրագրի ընթացիկ սպառումը հետևյալն է. Arduino Nano 21.5 մա; Սերիական մոդուլ 3.6 մա; LCD մոդուլ 27.5 մԱ; Ընդհանուր 52 մԱ:

Հետ լուսարձակի անջատման դեպքում այս ծրագրի ընթացիկ սպառումը հետևյալն է. Arduino Nano 21.5 մա; Սերիական մոդուլ 4.6 մա; LCD մոդուլ 9.8 մԱ; Ընդհանուր 36 մԱ:

Խորհուրդ ենք տալիս: