Мазмуну:

Nokia 5110 Lcdдеги Arduino менюсу Ротари коддоочу менен: 6 кадам (сүрөттөр менен)
Nokia 5110 Lcdдеги Arduino менюсу Ротари коддоочу менен: 6 кадам (сүрөттөр менен)

Video: Nokia 5110 Lcdдеги Arduino менюсу Ротари коддоочу менен: 6 кадам (сүрөттөр менен)

Video: Nokia 5110 Lcdдеги Arduino менюсу Ротари коддоочу менен: 6 кадам (сүрөттөр менен)
Video: Меню ардуино 2024, Ноябрь
Anonim
Image
Image
Nokia 5110 Lcdдеги Arduino менюсу Ротари коддогуч менен
Nokia 5110 Lcdдеги Arduino менюсу Ротари коддогуч менен

Урматтуу достор, дагы бир сабакка кош келиңиздер! Бул видеодо биз проектилерибизди колдонуучуларга ыңгайлуу жана жөндөмдүү кылуу үчүн популярдуу Nokia 5110 LCD дисплейинин менюсун курууну үйрөнөбүз. Баштайлы!

Бул биз кура турган долбоор. Дисплейде жөнөкөй меню пайда болот жана айлануучу коддогучтун жардамы менен мен өйдө же ылдый жылып, ротациялоочу баскычты басып меню пунктун тандай алам. Ротари коддогучтун ортоңку баскычы басылганда, башка экран пайда болот жана биз өзгөрмөнүн маанисин өзгөртө алабыз. Биз дагы бир жолу айлануучу коддогуч баскычын бассак, кайра башкы меню экранына кайтабыз. Менюда 6 пункт бар, менюну ылдый же өйдө жылдыра алабыз жана дисплейдеги нерселер ошого жараша өзгөрөт. Бул менюнун кандай иштээрин так көрүү үчүн тиркелген видеону көрүңүз. Албетте, сиз кааласаңыз, аны өзүңүздүн татаал менюңузду түзүү үчүн өзгөртө аласыз.

Эми бул долбоорду кантип курууну карап көрөлү.

1 -кадам: Бардык бөлүктөрдү алыңыз

Бардык бөлүктөрдү алыңыз
Бардык бөлүктөрдү алыңыз

Бул долбоорду куруу үчүн керектүү бөлүктөр төмөнкүлөр:

  • An Arduino Uno ▶
  • Nokia 5110 LCD дисплейи ▶
  • Ротари коддоочу ▶
  • Чакан нан ▶
  • Кээ бир зымдар ▶
  • Power Bank ▶

Долбоордун баасы өтө төмөн, ал 10 долларга жетпейт. Төмөндөгү видеонун сүрөттөмөсүндө мен колдонгон бардык бөлүктөрдүн шилтемелерин таба аласыз.

2 -кадам: Nokia 5110 LCD дисплейи

Image
Image
Долбоорду куруу
Долбоорду куруу

Nokia 5110 менин Arduino долбоорлорумдун эң жакшы көргөн дисплейи.

Nokia 5110 - бул графикалык ЖК экраны, ал башында уюлдук телефон үчүн арналган. Бул PCD8544 контролерун колдонот, ал аз кубаттуу CMOS ЖК контролери/драйвери. Ушундан улам, бул дисплей таасирдүү кубаттуулукка ээ. Ал күйгөндө болгону 0.4mA колдонот, бирок арткы жарык өчүрүлгөн. Уйку режиминде болгондо 0.06mAдан аз колдонот! Бул дисплей менин сүйүктүү болушумдун себептеринин бири. PCD8544 сериялык автобус интерфейси аркылуу микроконтроллерлерге интерфейстер. Бул дисплейди Arduino менен колдонууну абдан оңой кылат. Сиз болгону 8 зым туташтырууңуз керек.

Мен Nokia 5110 LCD дисплейин Arduino менен кантип колдонуу боюнча деталдуу окуу куралын даярдадым. Мен бул видеону ушул Нускамада тиркеп койдум, ал дисплей жөнүндө пайдалуу маалыматтарды берет, андыктан аны кылдаттык менен көрүүгө чакырам. Дисплейдин баасы 4 доллардын тегерегинде.

Бул жерден алсаңыз болот: ▶

3 -кадам: Rotary Encoder

Image
Image

Ротари коддоочу, ошондой эле валдын коддоочусу деп аталат, бул-валдын же огунун бурчтук абалын же кыймылын аналогдук же санариптик кодго айландыруучу электр механикалык түзүлүш. Ротари коддогучтар так валдын чексиз айлануусун талап кылган көптөгөн колдонмолордо колдонулат, анын ичинде өнөр жай көзөмөлдөрү, робототехника, атайын багыттагы фотографиялык линзалар, компьютердин кирүүчү түзүлүштөрү (мисалы, оптомеханикалык чычкандар жана трекбол), башкарылуучу стресс реометрлери жана радардык платформалар.

Биз бул долбоордо колдоно турган ротациялык кодер абдан арзан коддогуч. Ошондой эле камтылган баскычы бар жана анын иштеши үчүн биз 5 зымды гана туташтыруубуз керек. Мен айлануучу коддогучту кантип колдонуу керектиги боюнча деталдуу окуу куралын даярдадым. Бул видеону бул жерден таба аласыз.

Бул айлануучу коддогучтун баасы абдан төмөн. Анын баасы 1,5 доллардын тегерегинде.

Бул жерден алсаңыз болот ▶

4 -кадам: Долбоорду куруу

Image
Image
Долбоорду куруу
Долбоорду куруу
Долбоорду куруу
Долбоорду куруу

Эми бардык бөлүктөрдү бириктирели. Бул долбоорду курардан мурун, эгер сиз мурда ротациялык коддогучту колдоно элек болсоңуз, мен сизди айланма коддогучтар боюнча даярдаган окуу куралын көрүүгө чакырам. Бул айлануучу коддогучтардын кантип иштээрин түшүнүүгө жардам берет жана сиз алар менен бир аз тажрыйба топтойсуз. Бул видео бул жерде тиркелет.

Мен дисплейди ушундай кичинекей нан тактасына койдум. Алгач дисплейди туташтыралы. Биринчи абалга келтирүү дисплейинин Arduino Uno 3 санариптик пинине, экинчи пин 4 цифралык пинге, үчүнчү пин 5 санариптик пинге, төртүнчү пин 11ге жана бешинчи санарипке өтөт. пин 13. Кийинки пин - Vcc. Биз Vccти нандын оң темир жолуна, ал эми полдун оң темир жолун Arduino 3.3V чыгаруусуна туташтырабыз. Кийинки пин дисплейдин арткы жарыгы. Биз аны программалык камсыздоо аркылуу башкаргысы келгендиктен, биз аны санарип пин 7ге туташтырабыз. Акыркы пин - GND. Биз GNDди нан табактын терс темир жолуна, ал эми нан тактасынын терс темир жолун Arduino GNDге туташтырабыз.

Эми биз болгону айлануучу коддогучту туташтыруубуз керек. Биринчи пин GND болуп саналат жана биз аны нан тактасынын терс темир жолуна туташтырабыз. Кийинки пин Vcc болуп саналат жана биз аны нан тактасынын оң темир жолуна туташтырабыз. Кийинки пин SW жана биз аны Analog Pin 2ге туташтырабыз. Кийинки пин DT деп аталат жана аны Analog Pin 1 менен туташтырабыз. Акырында CLK пини Analog Pin 0 менен туташкан. Бул долбоордун схемасын диаграммадан таба аласыз. төмөндөгү видеонун сүрөттөмөсү.

Эми биз долбоорду иштетүүгө даярбыз. Көрүнүп тургандай, долбоор жакшы иштеп жатат, меню күтүлгөндөй иштеп жатат! Мыкты, эми долбоордун программалык камсыздоолорун карап көрөлү.

5 -кадам: Долбоордун коду

Долбоордун коду
Долбоордун коду

Бул долбоордо биз 4 китепкананы колдонобуз. Биз дисплей үчүн эки китепкананы колдонобуз, экөө ротациялоочу кодер үчүн.

  1. Adafruit GFX:
  2. Nokia 5110:
  3. Коддогучтар китепканасы:
  4. TimerOne китепканасы:

Башында drawMenu функциясын карап чыгабыз. Бул функция дисплейде Менюну тартуу үчүн жооптуу. Бул функция ар бир миллисекунд сайын аталат, андыктан менюда өзгөрүү болсо, бул функция экранда менюну жаңыртууга жооп берет.

int menuitem = 1; int кадр = 1; int page = 1; int lastMenuItem = 1;

Ошондой эле 3 абдан маанилүү глобалдык өзгөрмөлөр бар, өзгөрмөлүү баракча, өзгөрмө менютем жана өзгөрмөлүү кадр. Өзгөрмө баракча экранда кайсы UI экраны көрсөтүлгөнүн эстейт. Ошентип, эгер барактын өзгөрмөсү 1 болсо, биз негизги UI экраныбызда, ал эми өзгөрмө 2 болсо, биз экинчи UI экраныбызда, биз өзгөрмөнүн маанисин коёбуз. Меню пункту тандалган меню пунктун эстейт. Ошентип, эгерде анын мааниси 1 болсо, менюнун биринчи пункту тандалат, ошондуктан drawMenu функциясы бул меню пунктун ак тамгалар менен кара кылып тартуусу керек. Эгерде меню пункту 2 болсо, экинчи меню пункту тандалат ж.б. Кадрдык өзгөрмө, менюнун кайсы бөлүгү экранда көрсөтүлгөнүн эстейт. Биз түзгөн менюда 6 пункт камтылгандыктан, биз бир эле учурда 3төн гана көрсөтө алабыз, экранда кайсы нерселер көрсөтүлгөнүн билишибиз керек. Frame өзгөрмөсү, бизге так ушуну айтат. Эгерде кадр өзгөрмөсү 1 маанисине ээ болсо, анда менюнун биринчи үч пунктун көрсөтөбүз, эгер 2 болсо, биз 2, 3, 4 ж.б.

Мен кодду мүмкүн болушунча оңой өзгөртүүгө аракет кылдым, ошондуктан менюдагы нерселердин аттарын камтыган глобалдык өзгөрмөлөрдү түздүм. Ошентип, сиз кодду издебей эле өзүңүздүн менюңузду түзө аласыз.

String menuItem1 = "Контраст"; String menuItem2 = "Көлөм"; String menuItem3 = "Тил"; String menuItem4 = "Кыйынчылык"; String menuItem5 = "Light: ON"; String menuItem6 = "Баштапкы абалга келтирүү";

логикалык жарык = чыныгы;

int Contrast = 60; int көлөмү = 50;

Стринг тили [3] = {"EN", "ES", "EL"};

int selectedLanguage = 0;

Стринг кыйынчылыгы [2] = {"EASY", "HARD"};

int selectedDifficulty = 0;

Адегенде биз кодго керектүү болгон глобалдык өзгөрмөлөрдү баштайбыз. Андан кийин дисплейди баштайбыз. Цикл функциясында алгач экранда менюну тартуу үчүн drawMenu функциясын чакырабыз. Андан кийин биз Ротари коддоочудан маанини окуп, баскыч басылганын текшеребиз. Мисалы, эгер биз негизги UI экранда болсок жана менюнун биринчи пункту тандалса, эгерде айлануучу коддогучтун мааниси жогоруласа, менютем өзгөрмөсү жогорулайт жана кийинки циклде drawMenu функциясы менюнун экинчи пунктун тандалгандай тартат. Эгерде биз азыр айлануучу коддогучтун баскычын бассак, анда биз экинчи бетке өтөбүз, анда биз өзгөрмөнүн маанисин коёбуз. Кайра ротациялык коддогучту колдонуп, биз өзгөрмөнүн маанисин көбөйтө же азайта алабыз. Эгерде биз баскычты бассак, менюдун башкы бетине кайтабыз жана барак өзгөрмөсү азаят.

Бул менюнун негизги идеясы. Биз менюдагы бардык нерселер жана барактар үчүн бирдей тартипте иштейбиз. Код татаал, узундугу 400дөн ашуун. Бул татаал көрүнөт, бирок эгер сиз өзүңүз аракет кылып көрсөңүз, сиз аны оңой түшүнөсүз жана сиз аны өзгөртө, кеңейте жана өз долбоорлоруңузда колдоно аласыз. Адаттагыдай эле бул жерде тиркелген кодду таба аласыз.

6 -кадам: Долбоорду тестирлөө

Долбоорду тестирлөө
Долбоорду тестирлөө

Эгерде биз кодду жүктөсөк, долбоор күтүлгөндөй иштеп жатканын көрө алабыз. Биз валдын жардамы менен менюну өйдө -ылдый карай карай алабыз жана айлануучу коддогуч баскычын басуу менен каалаган меню пунктун тандай алабыз. Бул кандай сонун!

Эми биз Nokia 5110 LCD дисплейлери үчүн менюларды кантип курууну билебиз, биз долбоорлорубузга көбүрөөк мүмкүнчүлүктөрдү кошуп, колдонуучуларга ыңгайлуу кыла алабыз. Бүгүн биз курган бул жөнөкөй меню жакшыртылышы мүмкүн. Биз баскычтын абалын текшерүүнүн ордуна үзгүлтүктөрдү колдонсок болот. Ошентип, биз долбоордун энергия керектөөсүн азайтып, кодду таза кыла алабыз. Мен жакында үзгүлтүктөр боюнча видео даярдайм, андыктан биз менен болуңуз. Мен бул меню долбоору жөнүндө сиздин пикириңизди уккум келет. Сиз муну пайдалуу деп эсептейсизби жана кайсы бир долбооруңузда меню колдонууну пландап жатасызбы. Сураныч, өз ойлоруңузду жана идеяларыңызды жазыңыз, рахмат!

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