Агуулгын хүснэгт:

Тоон товчлуурыг Arduino ашиглан ашиглах: 4 алхам
Тоон товчлуурыг Arduino ашиглан ашиглах: 4 алхам

Видео: Тоон товчлуурыг Arduino ашиглан ашиглах: 4 алхам

Видео: Тоон товчлуурыг Arduino ашиглан ашиглах: 4 алхам
Видео: ESP8266 Беспроводной ЧМИ Nextion || Внешний ПЛК Arduino 2024, Арваннэгдүгээр
Anonim
Тоон товчлуурыг Arduino ашиглан ашиглах
Тоон товчлуурыг Arduino ашиглан ашиглах

Тоон товчлуурууд нь таны төслүүдийн янз бүрийн интерфэйсийн эцсийн хэрэглэгчийн энгийн хувилбарыг өгөх боломжтой. Эсвэл танд маш олон товчлуур хэрэгтэй бол барилгын ажилд маш их цаг хэмнэх болно. Бид Arduino номын санг ашиглан тэдгээрийг холбож, дараа нь ашигтай жишээг зурж дуусгах болно.

Алхам 1: Эхлэх

Эхлэх
Эхлэх

Та товчлуураа хаанаас авахаас үл хамааран мэдээллийн хуудсыг авах боломжтой эсэхийг шалгаарай, учир нь энэ нь утсыг холбоход амьдралыг хөнгөвчлөх болно. Жишээлбэл - энэ алхам дээрх зураг.

Мэдээллийн хуудас нь чухал бөгөөд энэ нь товчлуур дээрх аль зүү эсвэл холбогч нь мөр, баганад хамааралтай болохыг танд хэлэх болно. Хэрэв танд мэдээллийн хуудас байхгүй бол мөр, баганад ямар холбоо барихыг гараар тодорхойлох шаардлагатай болно.

Үүнийг мултиметр (дуугаралт) тасралтгүй ажиллах функцийг ашиглан хийж болно. 1 датчикийг 1 -р зүү дээр, нөгөө датчикийг 2 -р зүү дээр байрлуулаад товчлууруудыг нэг нэгээр нь дар. Товчлуур хэзээ хэлхээг дуусгаж байгааг тэмдэглээд дараа нь дараагийн зүү рүү шилжинэ үү. Аль нь болохыг та удахгүй мэдэх болно. Жишээлбэл, товчлуурын товчлууруудын 1 ба 5 -р товчлуурууд нь "1 ″, 2 ба 5" 4 ″ гэх мэт.

Энэ үед Arduino номын сангийн товчлуурыг татаж аваад суулгана уу. Одоо бид хоёр товчлуурыг хэрхэн ашиглахыг энгийн жишээн дээр харуулах болно.

Алхам 2: 12 оронтой товчлуур ашиглах

Бид дэлгэцийн зориулалтаар жижиг хар товчлуур, Arduino Uno нийцтэй, I2C интерфэйстэй LCD дэлгэцийг ашиглах болно. Хэрэв танд LCD байхгүй бол та текстийг үргэлж сериал монитор руу илгээж болно.

LCD дэлгэцээ утсаар холбоод дараа нь товчлуурыг Arduino руу дараах байдлаар холбоно уу: Товчлуурын 1 -р мөрийг Arduino дижитал 5 -р товчлуурын 2 -р эгнээнд Arduino дижитал 4 -тэй 3 -р мөрөнд Arduino дижитал 3 -тэй товчлуурын 4 -р мөрөнд Arduino дижитал 2 -тэй товчлуур баганад 1 -ийг Arduino дижитал 8 товчлуурт 2 -р багана руу холбоно уу. Arduino дижитал 7Keypad багана 3 -аас Arduino дижитал 6 хүртэл Хэрэв таны товчлуур биднийхээс өөр бол ноорог дээрх мөрүүдийг анхаарч үзээрэй.

// товчлуурын төрөл тодорхойлолт

RowPins [ROWS] ба colPins [COLS] массивуудын тоог өөрчлөх шаардлагатай болно. Та товчлуурын мөр, баганад холбогдсон дижитал зүү дугаарыг оруулна уу.

Цаашилбал, массив товчлуурууд нь тодорхой товчлуур дарагдсан үед LCD дэлгэц дээр гарч буй утгыг хадгалдаг. Бид үүнийг ашигласан физик товчлууртай таарч байгааг харж болно, гэхдээ та үүнийг өөрт хэрэгтэй болгон өөрчилж болно. Гэхдээ одоогоор мөр/зүү дугаарын хуваарилалтад сэтгэл хангалуун байгаа бол дараах тоймыг оруулаад байршуулна уу.

/ * Тоон товчлуур ба I2C LCD https://tronixstuff.com нь Arduino -д зориулсан товчлуурын санг ашигладаг https://www.arduino.cc/playground/Code/Keypad by Mark Stanley, Alexander Brevig */

#"Keypad.h" -ийг оруулна уу

#I2C LCD -д зориулсан "Wire.h" // оруулах #I2C автобусны LCD модульд "LiquidCrystal_I2C.h" // оруулах // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // 16 тэмдэгт, 2 мөр дэлгэцийн хувьд LCD хаягийг 0x27 болгож тохируулна уу

// товчлуурын төрөл тодорхойлолт

const байт ROWS = 4; // дөрвөн мөр const байт COLS = 3; // гурван баганын char товчлуур [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

байт rowPins [ROWS] = {

5, 4, 3, 2}; // товчлуурын байтын colPins [COLS] = {8, 7, 6} -н эгнээний хавчуургатай холбогдох; // товчлуурын баганын хавчуургатай холбогдох

int тоо = 0;

Товчлуурын товчлуур = Товчлуур (makeKeymap (түлхүүрүүд), rowPins, colPins, ROWS, COLS);

хүчингүй тохиргоо ()

{lcd.init (); // lcd lcd.backlight -ийг эхлүүлэх (); // LCD арын гэрлийг асаах}

хоосон давталт ()

{char түлхүүр = keypad.getKey (); if (key! = NO_KEY) {lcd.print (key); тоолох ++; if (count == 17) {lcd.clear (); тоолох = 0; }}}

Ноорог зургийн үр дүнг видеонд үзүүлэв. Тиймээс одоо та товчлуурыг дарахад ноорог ашиглахын тулд өгөгдөл болгон хэрхэн хөрвүүлж болохыг харж болно. Бид одоо энэ жагсаалтыг том товчлуураар давтах болно.

Алхам 3: 16 оронтой тоон товчлуур ашиглах

Бид 4 × 4 хэмжээтэй том хэмжээтэй Arduino Uno нийцтэй товчлуурыг ашиглаж, дэлгэцийн зориулалтаар Akafugu-аас I2C LCD-ийг өөрчлөх болно. Дахин хэлэхэд хэрэв танд LCD байхгүй бол та текстийг үргэлж сериал монитор руу илгээж болно. LCD утсыг холбоод дараа нь товчлуурыг Arduino руу дараах байдлаар холбоно уу.

  • Товчлуурын 1 -р мөр (найман зүү) Arduino дижитал 5 руу
  • Товчлуурын 2 -р мөр (1 -р зүү) Arduino дижитал 4 рүү
  • Товчлуурын 3 -р мөр (2 -р зүү) Arduino дижитал 3 руу
  • Товчлуурын 4 -р мөр (4 -р зүү) Arduino дижитал 2 руу
  • Товчлуурын багана 1 (зүү 3) Arduino дижитал 9 рүү
  • Товчлуурын багана 2 (5 -р зүү) Arduino дижитал 8 руу
  • Товчлуурын багана 3 (зүү 6) Arduino дижитал 7 руу
  • Товчлуурын багана 4 (зүү 7) Arduino дижитал 6 руу

Ноорогын хувьд бид том тоон товчлуурыг хэрхэн яаж байрлуулсан болохыг анхаарч үзээрэй: массив дахь нэмэлт багана colPins массив дахь нэмэлт зүү ба COLS = 4 байт.

/ * Тоон товчлуур ба I2C LCD https://tronixstuff.com нь Arduino -д зориулсан товчлуурын санг ашигладаг https://www.arduino.cc/playground/Code/Keypad by Mark Stanley, Alexander Brevig */

#"Keypad.h" -ийг оруулна уу

#оруулах "Wire.h" // I2C LCD -д #оруулах "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const байт ROWS = 4; // дөрвөн эгнээ

const байт COLS = 4; // дөрвөн баганын тэмдэгт түлхүүр [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; байт rowPins [ROWS] = {5, 4, 3, 2}; // товчлуурын байтын мөрийн хавчааруудтай холбогдох colPins [COLS] = {9, 8, 7, 6}; // товчлуурын баганын холболттой холбогдох int count = 0;

Товчлуурын товчлуур = Товчлуур (makeKeymap (түлхүүрүүд), rowPins, colPins, ROWS, COLS);

хүчингүй тохиргоо ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Товчлуурын тест!"); саатал (1000); lcd.clear (); }

хоосон давталт ()

{char түлхүүр = keypad.getKey (); if (key! = NO_KEY) {lcd.print (key); Цуваа.хэвлэх (түлхүүр); тоолох ++; if (count == 17) {lcd.clear (); тоолох = 0; }}}

Дээрх зургийн үр дүнг видеоноос дахин харж болно.

Одоо жишээ төслийн хувьд тоон товчлуурын хамгийн их хүссэн хэрэглээ байж магадгүй …

Алхам 4: Жишээ төсөл - PIN хандалтын систем

Тоон товчлуурын хувьд хамгийн их эрэлттэй хэрэглээ бол "PIN" загварын аппликейшн юм шиг санагддаг бөгөөд Arduino-г товчлуур дээр оруулсан зөв дугаар дээр үндэслэн ямар нэгэн зүйл хийхийг зааж өгдөг. Дараах ноорог нь өмнөх ноорог дээр тайлбарласан техник хангамжийг ашигладаг бөгөөд зургаан оронтой ПИН оруулах системийг хэрэгжүүлдэг.

Болох ёстой үйлдлүүдийг correctPIN () ба бурууPIN () функцүүдэд оруулж болно. ПИН кодыг char PIN [6] массивт тохируулсан болно. Бага зэрэг нэмэлт ажил хийснээр та PIN кодыг өөрчлөх функцийг өөрөө үүсгэж болно.

// 16 оронтой тоон товчлуур бүхий PIN шилжүүлэгч // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const байт ROWS = 4; // дөрвөн эгнээ

const байт COLS = 4; // дөрвөн баганын тэмдэгт түлхүүр [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; байт rowPins [ROWS] = {5, 4, 3, 2}; // товчлуурын байтын мөрийн хавчааруудтай холбогдох colPins [COLS] = {9, 8, 7, 6}; // товчлуурын товчлуурын баганын холболттой холбогдох

Товчлуурын товчлуур = Товчлуур (makeKeymap (түлхүүрүүд), rowPins, colPins, ROWS, COLS);

PIN код [6] = {

'1', '2', 'A', 'D', '5', '6'}; // бидний нууц (!) тооны char оролдлого [6] = {'0', '0', '0', '0', '0', '0'}; // харьцуулах зорилгоор ашигласан int z = 0;

хүчингүй тохиргоо ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN түгжээ"); саатал (1000); lcd.clear (); lcd.print ("ПИН оруулна уу …"); }

void correctPIN () // зөв ПИН оруулсан бол үүнийг хий

{lcd.print (" * Зөв ПИН *"); саатал (1000); lcd.clear (); lcd.print ("ПИН оруулна уу …"); }

буруу хүчингүйPIN () // буруу ПИН оруулсан бол үүнийг хий

{lcd.print (" * Дахин оролдох *"); саатал (1000); lcd.clear (); lcd.print ("ПИН оруулна уу …"); }

хүчингүй checkPIN ()

{int зөв = 0; int i; for (i = 0; i <6; i ++) {

хэрэв (оролдлого == ПИН )

{зөв ++; }} if (зөв == 6) {зөвPIN (); } өөр {бурууPIN (); }

for (int zz = 0; zz <6; zz ++) {оролдлого [zz] = '0'; }}

хүчингүй унших товчлуур ()

{char түлхүүр = keypad.getKey (); if (key! = NO_KEY) {оролдлого [z] = түлхүүр; z ++; switch (key) {case '*': z = 0; завсарлага; тохиолдол '#': z = 0; саатал (100); // нэмэлт дебунгийн хувьд lcd.clear (); checkPIN (); завсарлага; }}}

хоосон давталт ()

{уншсан товчлуур (); }

Төслийг видеонд үзүүлэв.

Тиймээс одоо та Arduino системтэйгээ арван хоёр, арван зургаан товчлууртай товчлуурыг ашиглах боломжтой боллоо. Та ойрын ирээдүйд товчлууруудыг ашиглан хэрэгтэй, сонирхолтой зүйлийг гаргаж ирнэ гэдэгт итгэлтэй байна.

Энэхүү бичлэгийг pmdway.com танд хүргэж байна - үйлдвэрлэгчид болон цахилгаан бараа сонирхогчдод зориулагдсан бүх зүйл, дэлхий даяар үнэгүй хүргэлт.

Зөвлөмж болгож буй: