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

3-Wire HD44780 LCD 1 դոլարից պակաս ՝ 5 քայլ
3-Wire HD44780 LCD 1 դոլարից պակաս ՝ 5 քայլ

Video: 3-Wire HD44780 LCD 1 դոլարից պակաս ՝ 5 քայլ

Video: 3-Wire HD44780 LCD 1 դոլարից պակաս ՝ 5 քայլ
Video: 3 wire SR LCD 2024, Հունիսի
Anonim
3-Wire HD44780 LCD 1 դոլարից պակաս
3-Wire HD44780 LCD 1 դոլարից պակաս

Այս ուսանելի առարկայից մենք կսովորենք, թե ինչպես կարող ենք HD44780 չիպսեթի հիման վրա LCD- ն միացնել SPI ավտոբուսին և այն վարել ընդամենը 3 լարով 1 դոլարից պակաս գնով: Չնայած այս ձեռնարկում ես կկենտրոնանամ HD44780 այբբենական թվային ցուցադրման վրա, նույն սկզբունքը գրեթե նույնը կգործի ցանկացած այլ LCD- ի համար, որն օգտագործում է 8 բիթանոց զուգահեռ տվյալների ավտոբուս, և այն կարող է շատ հեշտությամբ հարմարվել 16 բիթանոց ավտոբուսներով դիսփլեյներին:. HD44780 (և համատեղելի) վրա հիմնված այբբենական թվային էկրանները սովորաբար հասանելի են 16x2 (16 տողից բաղկացած 2 տող) և 20x4 կազմաձևերով, բայց դրանք կարելի է գտնել շատ այլ ձևերով: Առավել «բարդ» էկրանը կլինի 40x4 էկրանը: Այս տեսակի ցուցադրումն առանձնահատուկ է, քանի որ այն ունի 2 HD44780 կարգավորիչ, մեկը վերին երկու տողերի համար և մեկը ներքևի երկու շարքերի համար: Որոշ գրաֆիկական LCD- ներ ունեն նաև երկու վերահսկիչ: HD44780 LCD- ները հիանալի են, դրանք շատ էժան են, ընթեռնելի և բավականին հեշտ է աշխատել: Բայց նրանք ունեն նաև որոշ թերություններ. Այս ցուցադրումները Arduino- ին միանալիս շատ I/O կապում են զբաղեցնում: Պարզ նախագծերում դա մտահոգիչ չէ, բայց երբ նախագծերը մեծանում են, շատ IO- ով, կամ երբ որոշակի կապում անհրաժեշտ են այնպիսի բաներ, ինչպիսիք են Analog read կամ PWM, այն փաստը, որ այդ LCD- ները պահանջում են առնվազն 6 կապում, կարող է դառնալ խնդիր. Բայց մենք կարող ենք այս խնդիրը լուծել էժան և հետաքրքիր եղանակով:

Քայլ 1: Բաղադրիչների ձեռքբերում

Ես օգտագործել եմ TaydaElectronics- ը այս նախագծում օգտագործած բաղադրիչների մեծ մասի համար: Այս մասերը կարող եք ձեռք բերել նաև ebay- ում, սակայն օգտագործման հարմարավետության համար ես ձեզ կապելու եմ Tayda- ի հետ: Սա պարտադիր չէ, ես սա օգտագործել եմ որպես լուսավորություն մշտապես անջատելու միջոց: 3 - կերամիկական կոնդենսատոր - տարողությունը 0.1 μF; լարման 50V1 - էլեկտրոլիտիկ կոնդենսատոր - հզորություն 10μF; լարման 35V1 - կերամիկական կոնդենսատոր - հզորություն 220pF; լարման 50V1 - NPN -Transistor - մաս # PN2222A* 1 - 1k Ω Resistor1 - Հարմարվող պոտենցիոմետր - առավելագույն դիմադրություն 5kΩ1 - 470 Ω Resistor* NPN տրանզիստորով հետին լուսարձակը կմնա անջատված, մինչև այն միացված լինի ծրագրային ապահովմամբ: Եթե ցանկանում եք լուսարձակը լռելյայն միացնել, օգտագործեք PNP տիպի տրանզիստոր: Տրամադրված գրադարանի ծածկագրում, այնուամենայնիվ, պետք է կատարվեն փոփոխություններ: Այս ցուցակի ենթավճարը կազմում է $ 0.744: Փին վերնագիրը նույնպես պարտադիր չէ, այնպես որ կարող եք խնայել 15 ցենտ հենց այնտեղ, իսկ ենթատոտալը կլինի 0,6 դոլար:

Քայլ 2: Իմացեք ձեր սարքավորումները #1

Իմացեք ձեր սարքավորումները #1
Իմացեք ձեր սարքավորումները #1

Ահա HD44780 LCD- ից ստանդարտ քորոց, այն նաև շատ նման է որոշ գրաֆիկական LCD- երի: HD44780- ը կարող է աշխատել երկու ռեժիմով ՝ 1. 4-բիթանոց ռեժիմ, որտեղ LCD- ին ուղարկված յուրաքանչյուր բայթ բաղկացած է 2 4-բիթանոց մասերից: 2. 8-բիթ ռեժիմ, որի վրա մենք կկենտրոնանանք: LCD- ն ընդհանուր առմամբ ունի 16 կապում, 3 հսկիչ և 8 տվյալների կապ: RS - վերահսկում է, արդյոք մենք ուզում ենք հրաման կամ տվյալներ ուղարկել LCD- ին: Որտեղ «բարձր» նշանակում է տվյալներ (նիշ), իսկ «ցածր» ՝ հրամանի բայթ: R/W - HD44780 կարգավորիչը թույլ է տալիս կարդալ իր RAM- ից: Երբ այս քորոցը «բարձր» է, մենք կարող ենք կարդալ տվյալները դրա տվյալների կապումներից: Երբ այն «ցածր» է, մենք կարող ենք տվյալներ գրել LCD էկրանին: Չնայած այն հանգամանքին, որ LCD- ից կարդալու տարբերակը կարող է օգտակար լինել որոշ դեպքերում, մենք այս ձեռնարկում չենք անցնի դրան, և մենք պարզապես կփշրենք այս քորոցը `ապահովելու համար, որ այն միշտ Գրելու ռեժիմում է: E - E- ն« Միացնել »պինն է, այս կապը փոխված է «բարձր», այնուհետև «ցածր» ՝ տվյալները RAM- ում գրելու և ի վերջո դրանք էկրանին ցուցադրելու համար: DB0-7 - Սրանք տվյալների կապում են: 4 -բիթ ռեժիմում մենք օգտագործում ենք միայն 4 բարձր բիթ DB4 -DB7, իսկ 8 բիթ ռեժիմում դրանք բոլորը օգտագործվում են: VSS - Սա հիմքի փին է:, մենք կարող ենք այն հեշտությամբ սնուցել Arduino- ի + 5v քորոցից: Vo - Սա այն քորոցն է, որը թույլ է տալիս սահմանել ցուցադրման համար հակադրության մակարդակը, այն պահանջում է պոտենցիոմետր, սովորաբար օգտագործվում է 5K Օմ կաթսա: LED + - Սա էներգիայի աղբյուր ՝ հետին լուսավորության համար: Որոշ LCD- ները չեն լուսավորվում և ունեն ընդամենը 14 կապում: Շատ դեպքերում այս քորոցը նաև պահանջում է +5v միացում: LED- - Սա հիմք է լուսավորման համար: ** Կարևոր է ստուգել ցուցադրման տվյալների թերթը կամ ստուգել դրա PCB- ն `հետևի լուսավորության դիմադրության առկայությունը ստուգելու համար, LCD- ների մեծ մասում դրանք տեղադրված կլինեն: -ին, որի դեպքում մնում է միայն էներգիա կիրառել LED+-ի, իսկ հիմքը `LED- ի վրա: Բայց այն դեպքում, երբ ձեր LCD էկրանը չունի ներկառուցված դիմադրություն լուսավորության համար, կարևոր է, որ այն ավելացնեք, հակառակ դեպքում լուսարձակը շատ էներգիա կծախսի, և այն ի վերջո կվառվի: Շատ դեպքերում այս LCD- ն Arduino- ին միացված է այնպես, որ այն օգտագործվի 4-բիթանոց ռեժիմով և հիմնավորի R/W կապը: Այս կերպ մենք օգտագործում ենք RS, E և DB4-DB7 կապանքները: 4-բիթ ռեժիմով աշխատելը ունի մեկ այլ փոքր թերություն. Այն է, որ էկրանին տվյալները գրելու համար տևում է երկու անգամ ավելի երկար ժամանակ, քան 8-բիթանոց կազմաձևման դեպքում: LCD- ի «լուծման» ժամանակը 37 միկրովայրկյան է, ինչը նշանակում է, որ դուք պետք է սպասեք 37 մկվրկ, նախքան հաջորդ հրամանը կամ տվյալների բայթը LCD- ին ուղարկելը: Քանի որ 4-բիթանոց ռեժիմում մենք պետք է երկու անգամ տվյալներ ուղարկենք յուրաքանչյուր բայտի համար, մեկ բայթ գրելու համար պահանջվող ընդհանուր ժամանակը հասնում է 74 միկրովայրկյանի: Սա դեռ բավականաչափ արագ է, բայց ես ուզում էի, որ իմ դիզայնը հնարավորինս լավ արդյունքներ տա: Օգտագործված քորոցների քանակի հետ կապված մեր խնդրի լուծումը գտնվում է Սերիալից զուգահեռ փոխարկիչում…

Քայլ 3: Իմացեք ձեր սարքավորումները #2

Իմացեք ձեր սարքավորումները #2
Իմացեք ձեր սարքավորումները #2

Այն, ինչ մենք կանենք, ադապտեր կառուցելն է, որն ընդունում է Arduino- ից դուրս եկող հաղորդակցության սերիական տեսակը և տվյալները փոխակերպում զուգահեռ ելքի, որը կարող է սնվել մեր LCD- ով: Ներդրվում է 74HC595 չիպը: Սա շատ էժան և պարզ աշխատող հերթափոխային մատյան է: Ըստ էության, այն անում է ժամացույցի և տվյալների ազդանշանների միջոցով, որոնք օգտագործում է ներքին 8 բիթանոց բուֆերը «վերջին ժամացույցի մեջ դրած» 8 բիթերով լրացնելու համար: Երբ «Latch» (ST_CP) քորոցը «բարձր» է բերվում, այն այդ բիթերը տեղափոխում է իր 8 ելքերի մեջ: 595 -ն ունի շատ գեղեցիկ հատկություն, այն ունի սերիական տվյալների դուրսբերման քորոց (Q7 '), այս քորոցը կարող է օգտագործվել 2 կամ ավելի 595 -ի շղթայի հետ միասին `16 կամ ավելի բիթ լայնությամբ Serial to Parallel adapters ձևավորելու համար: Այս նախագծի համար մեզ անհրաժեշտ կլինի այս չիպերից 2 -ը: Սխեման կարող է նաև փոփոխվել ՝ 4-բիթանոց ռեժիմով 595-ի հետ աշխատելու համար, բայց սա չի լուսաբանվի այս ձեռնարկով:

Քայլ 4: Ամրագրեք ամեն ինչ

Բոլորը միացնելը
Բոլորը միացնելը

Այժմ, երբ մենք գիտենք, թե ինչպես է աշխատում մեր սարքավորումները, կարող ենք ամեն ինչ լարել: Սխեմատիկայում մենք տեսնում ենք 2 595 չիպսեր, որոնք շղթայված են իրար և ձևավորում են 16 բիթանոց զուգահեռ ելք: Ներքևի չիպը իրականում հիմնականն է, իսկ վերևը ՝ շղթայված դրան: Այն, ինչ մենք տեսնում ենք այստեղ, այն է, որ ներքևի 595-ը տանում է LCD- ի տվյալների կապում 8-բիթ կոնֆիգուրացիայով, իսկ վերին չիպը վերահսկում է RS ազդանշանը և լուսավորությունը `միացնելով կամ անջատելով տրանզիստորը: Հիշեք *նշումը LCD լուսարձակի մասին Իմացեք ձեր սարքավորում #1 էջը, այն դեպքում, երբ ձեր LCD էկրանը չունի հետևի լուսավորության դիմադրություն, մի մոռացեք այն ավելացնել ձեր շղթայում: Իմ դեպքում LCD- ները, որոնց ես արդեն եկել եմ, ներկառուցված ռեզիստորով են, ուստի ես բաց թողեցի այս քայլը: Կոնտրաստը կիրառվում է 5K Օմ կաթսայի միջոցով, մեկ քորոցը անցնում է GND- ին, երկրորդը `VCC- ին, իսկ մաքրիչը` LCD- ի Vo կապին: LCD- ի և 595 -ի VCC գծերի վրա օգտագործվող կոնդենսատորները անջատում են կոնդենսատորները, նրանք այնտեղ են միջամտությունից ազատվելու համար: Դրանք պարտադիր չեն, եթե դուք աշխատում եք սեղանի սեղանի վրա, բայց դրանք պետք է օգտագործվեն այն դեպքում, երբ դուք կառուցեք այս սխեմայի ձեր սեփական տարբերակը, որը կօգտագործվի «լաբորատոր պայմաններից» դուրս: R5- ը և C9- ը այդ հատուկ կարգով ստեղծում են RC- ի հետաձգում, ինչը համոզված է, որ 595 -ի ելքերի տվյալները ժամանակ ունեն կայունանալու, մինչև LCD- ի Enable pin- ը «բարձր» դնելը և տվյալները կարդալը: Ստորև բերված 595 -ի Q7- ը մտնում է վերևում գտնվող 595 -ի սերիական տվյալների մուտքագրման մեջ, սա ստեղծում է 595 -երից բաղկացած մարգարիտ շղթա և, հետևաբար, 16 բիթանոց ինտերֆեյս: Arduino- ին միացնելը հեշտ է: Մենք օգտագործում ենք 3-մետաղալար կազմաձև, օգտագործելով Arduino- ի SPI կապում: Սա թույլ է տալիս շատ արագ փոխանցել տվյալները, LCD- ին 2 բայթ ուղարկելը սովորաբար տևում է մոտ 8 միկրովայրկյան: Սա շատ արագ է, և իրականում դա շատ ավելի արագ է, քան այն ժամանակը, որը տևում է LCD- ը տվյալների մշակման համար, ուստի յուրաքանչյուր գրման միջև անհրաժեշտ է 30 միկրովայրկյան ուշացում: SPI- ի օգտագործման շատ մեծ առավելությունն այն է, որ D11 և D13 կապումներն օգտագործվում են այլ SPI սարքերի հետ: Սա նշանակում է, որ եթե դուք արդեն ունեք մեկ այլ բաղադրիչ, որն օգտագործում է SPI, օրինակ ՝ արագացուցիչ, այս լուծումը միացման ազդանշանի համար կօգտագործի միայն մեկ լրացուցիչ քորոց: Հաջորդ էջում մենք կտեսնենք արդյունքը: Ես կառուցել եմ ուսապարկը շերտի տախտակի վրա և այն ինձ համար առայժմ շատ լավ է աշխատում:

Քայլ 5: Արդյունք + գրադարան

Արդյունք + գրադարան
Արդյունք + գրադարան
Արդյունք + գրադարան
Արդյունք + գրադարան
Արդյունք + գրադարան
Արդյունք + գրադարան
Արդյունք + գրադարան
Արդյունք + գրադարան

«Նկարը հազար բառ արժե», ես համաձայն եմ այս պնդման հետ, ուստի ահա այս նախագծի վերջնական արդյունքի մի քանի պատկեր: Սրանք ավարտված արտադրանքի պատկերներ են, Fritzing PCB- ի տեսքը այն տախտակի դասավորությունն է, որն օգտագործել եմ ուսապարկս կառուցելու համար: Դուք կարող եք օգտակար համարել, եթե ցանկանում եք կառուցել ձեր սեփականը: Դա ինձ այնքան դուր եկավ, որ ես նախագծեցի PCB ՝ օգտագործելով DipTrace- ը և պատվիրեցի 10 հատ PCB- ի խմբաքանակ: Ինձ համար կպահանջվի 2 կամ 3 միավոր, բայց մնացածը խորհրդանշական գնով հասանելի կդարձնեմ դրանք ստանալուց հետո: Այսպիսով, եթե որևէ մեկին հետաքրքրում է, խնդրում եմ ինձ տեղյակ պահեք: * Խմբագրել. PCB- ներն այստեղ են, և նրանք աշխատում են: Ահա այս նախագծի ամբողջական պատկերասրահը, ներառյալ փաստացի PCB- ները: https://imgur.com/a/mUkpw#0 Իհարկե, ես չեմ մոռացել ամենակարևորը `գրադարանը, որի հետ կարող եմ օգտագործել այս շրջանը: Այն համատեղելի է LiquidCrystal գրադարանի հետ, որը ներառված է Arduino IDE- ի հետ, այնպես որ կարող եք հեշտությամբ փոխարինել հայտարարությունները ձեր ուրվագծի վերևում և այլևս ոչինչ չփոխել ձեր ուրվագծում: Կա նաև օրինակ ուրվագիծ, որը ցույց է տալիս, թե ինչպես է գործում գրադարանի յուրաքանչյուր գործառույթ, ուստի ստուգեք այն:

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