Mundarija:

LCD displey va Arduino Uno bilan boshqaruv paneli klaviaturasi: 9 qadam
LCD displey va Arduino Uno bilan boshqaruv paneli klaviaturasi: 9 qadam

Video: LCD displey va Arduino Uno bilan boshqaruv paneli klaviaturasi: 9 qadam

Video: LCD displey va Arduino Uno bilan boshqaruv paneli klaviaturasi: 9 qadam
Video: Румба — основы 2024, Iyul
Anonim
Image
Image
LCD displey va Arduino Uno bilan boshqaruv paneli klaviaturasi
LCD displey va Arduino Uno bilan boshqaruv paneli klaviaturasi
LCD displey va Arduino Uno bilan boshqaruv paneli klaviaturasi
LCD displey va Arduino Uno bilan boshqaruv paneli klaviaturasi

Bu matritsali klaviatura, LCD displeyi va Arduino Uno bilan ishlaydi, bugungi kunda eng asosiysi. Ushbu sozlamaning maqsadi matritsa klaviaturasida yozilgan parolni qabul qiladigan, uni to'g'ri parol bilan solishtiradigan va displeyda tasdiqlovchi xabarni ko'rsatadigan dastur yaratishdir.

Shuni esda tutish kerakki, matritsa klaviaturasi ham, displey ham ESP8266 va ESP32 bilan ishlaydi.

Ko'rib turganingizdek, biz tashqi manbadan foydalanmayotganimiz sababli, biz Arduino bilan elektronni quvvatlantiramiz. Arduino portlariga juda oddiy tarzda ulangan sakkizta simlar bizning klaviaturamizni ulash imkonini beradi. Bu klaviatura hech qanday kuchga ega emas va passiv, bu ulanishni sezilarli darajada osonlashtiradi.

Displey Arduino -ga UART orqali ulanadi, bu portni ketma -ket port, u ham qurilmani quvvatlaydi.

Namoyish paytida biz klaviaturada yozilgan parol to'g'ri yoki noto'g'riligini tekshiradigan o'z sxemamizni ko'rsatamiz.

Videoda ishlatilgan va bu erda mavjud bo'lgan PDF -da biz ishlatilayotgan chipning to'liq pinoutiga egamiz.

1 -qadam: Serial displey

Seriyali displey
Seriyali displey
Seriyali displey
Seriyali displey

Bu UXT bilan aloqa qiladigan ketma -ket displey, bu TXRX bilan RS. U I2C versiyalarida ham mavjud, ammo boshqa modellar yaqinda yig'ilish uchun qoladi. Bunday holda, bu displey UART tomonidan RSda ishlaydi.

2 -qadam: Matrix klaviaturasi

Matrix klaviatura
Matrix klaviatura

Biz foydalanadigan matritsali klaviatura misoli fotosuratga o'xshaydi va u o'ng tomonda. Bizda uning qanday ishlashini ko'rsatadigan diagramma mavjud. Aslida u faqat 4x4 qatorga ega. Shunday qilib, u minimal miqdordagi simlardan foydalanadi; har bir satr va ustun uchun bitta sim, shunda jami sakkizta sim bor.

Quvvat kerak emas, chunki u quyidagicha ishlaydi: 7 bosilganda, klaviatura 7 ni oladi va chiziq va ustunga ulanadi, bu algoritmni avtomatik skanerlash orqali identifikatsiyani amalga oshiradi.

Shuni esda tutish kerakki, nuqta matritsali har qanday 4x4 klaviatura ishlaydi.

3 -qadam: yig'ish

O'rnatish
O'rnatish

Umumiy sxemada biz sakkizta simni to'g'ridan -to'g'ri Arduino portlariga ulaymiz, chunki klaviaturada quvvat yo'q. Displeyda biz RS 232 signaliga, ijobiy va salbiy kuchga egamiz. Orqa yorug'lik hali ham mavjud, u ham allaqachon ulangan (BKL tomonidan aniqlangan).

4 -qadam: Manba kodi

Loyihaning manba kodida siz ketma -ketlik va klaviaturani kiritishingiz kerak. U ketma -ket dasturiy ta'minot uchun zarur bo'lgan RX_PIN va TX_PIN to'plamiga ega, shuningdek INVERTED 1. Bu teskari mantiq bilan kirishni ishlatadigan signalni kuchaytirish uchun joylashtirilgan.

// biblioteca javoblari pa comunicação LCD displeyi #o'z ichiga oladi // biblioteca javob beradi, agar siz hech qachon bosmasangiz #qo'shish // hech qanday xato qilmasa, SoftwareSerial bilan hech qanday aloqasi yo'q #RX_PIN 255 ni belgilang // pino TX da nossa LCD displeyi #define TX_PIN 3 // Rx e Tx, LOW como HIGH, aksincha, #ta'rif INVERTED 1

5 -qadam: Buyruqlarni ko'rsatish

Buyruqlarni ko'rsatish
Buyruqlarni ko'rsatish

Muhim: bu displeyda unga sim qo'yish kifoya qilmaydi. Siz nazorat belgilarini yuborishingiz kerak. PDF -da ushbu displey qo'llanmasi bo'lgan sayt havolasi mavjud. Ammo, agar sizda boshqa brendning ketma -ket displeyi bo'lsa, ularning tegishli kodlarini ko'rib chiqish yaxshidir. Ushbu modelda, masalan, biz ma'lum bir boshqaruvni yuborganimizda (masalan, bu displey uchun ma'lumot), biz aloqani yoqish uchun 254 raqamli prefiksni yuborishimiz kerak.

Shunday qilib, biz narsalarni osonlashtirish uchun ARRAY -ni o'rnatdik, bu raqamli indeks yordamida kirish mumkin bo'lgan o'zgaruvchilar to'plami. Bu displeyga dastlabki konfiguratsiya sifatida yuboriladi.

// pul limpar toda to display a displayconst char limparTela = {254, 1}; // konfiguratsiya inicial/ * 254, 254 orqa nuri 254, 254, 253, 1 ta konfiguratsiya 254, 13 ta konfiguratsiya va boshqa parametrlar * yoki const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};

6 -qadam: Klaviatura bilan ishlash

Klaviatura qanday ishlaydi? Birinchidan, u qatorni o'rnatadi. Bu qator aslida u erda ko'rsatiladigan belgidir. Agar men X ni qo'ysam, tepadagi birinchi chap tugmani bosganimda, u ko'rsatiladi. Bu klaviaturaning mazmuni, u buyruq beradi.

Biz aniqlagan boshqa narsalar - bu klaviatura ARRAY holatida 4 -qator va 4 -ustun. Bizda hali ham Arduino pinlari va ustunning pinlari bor. Hali ham bizda belgi, pin, qator va ustun parametrlari bo'lgan customKeypad klaviatura quruvchisi bor.

const bayt LINHAS = 4; // nolinchi raqamli bayt COLUNAS = 4; // nosozliklarni aniqlang // aniqlang SIM -kartalar [LINHAS] [KOLUNAS] = {{'A', '1', '2', '3'}, { 'B', '4', '5', '6'}, {'C', '7', '8', '9'}, {'D', 'c', '0', 'e '}}; bayt PINOS_LINHA [LINHAS] = {8, 9, 10, 11}; // pinos que indicam linxas qilib, bayt PINOS_COLUNA [COLUNAS] = {4, 5, 6, 7}; // buyruq satrlari buyruqlar buyrug'iga binoan // klaviatura, javoblar va buyruqlar klaviatura customKeypad = keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);

7 -qadam: Parolni sozlash

Bu qismda biz parolni belgilaymiz, keyin parolni kiritishimiz kerak, bu bo'sh satr. Quyida biz softwareSerial misolini keltiramiz.

// o'zgaruvchan javoblar String SENHA_ESPERADA = "1234ABCD" sifatida; SENHA_DIGITADA qatori = ""; // Installer of SoftwareSerial para nos comunicar com Serial orqali ko'rsatish DisplaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);

8 -qadam: sozlash

O'rnatishga kelsak, bu erda displaySerial.begin (2, 400), bu tezlik haqida. Bizning holatda, bu bayt yuborish uchun etarli. Buning ortidan 700 millisekund kutish kutilmoqda. Biz DisplaySerial.print (initialConfig) ni dastlabki konfiguratsiyadan 10 millisekundga yangi kechikish bilan kiritamiz va start funksiyasiga o'tamiz. Boshlash funktsiyasiga displaySerial.print ("parol:") qo'yamiz.

void setup () {Serial.begin (2400); // bir vaqtning o'zida bir qatorda comunicação ko'rsatiladi // muhim tezlik 2400 displaySerial.begin (2400); // kechiktirish tezligi (700); // displeyni ko'rsatish uchun rasmiy sozlash DisplaySerial.print (configInicial); kechikish (10); inicio (); } // funchão javob berish uchun siz raqamli raqamlar va raqamlarni yozib olishingiz mumkin // siz bir nechta raqamlarni taqqoslashingiz mumkin, bu sizning raqamingiz yoki raqamingiz uchun javob beradi. void inicio () {displaySerial.print ("Senha:"); }

9 -qadam: halqa

Loopda biz customKey = customKeypad.getKey () yaratamiz va ketma -ketlikda biz Switch buyrug'ini kiritamiz.

// maxsus tugmachani bosish orqali CustomKey = customKeypad.getKey (); // agar (customKey) {Serial.println (customKey); almashtirish (customKey) { /… /}}

Loop Switch 1 -qism

Switch buyrug'i ichida: u bosilsa, bosiladigan tugmalar imkoniyatlari ro'yxatini ko'rsatadi va parolni oshiradi: customKey -ni oladi va kiritilgan parolni birlashtiradi. Keyingi, displaySerial.print (customKey) asosiy tarkibni ko'rsatadi.

switch (customKey) {// "A" harfi: "B" holati: "C" holati: "D" holati: "0": "1" holati: "2" holati '3': holat '4': holat '5': holat '6': holat '7': holat '8': holat '9': // yangi raqamlar bir -biridan farqli o'laroq, SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // imrpime yoki displeyni ko'rsatish DisplaySerial.print (customKey); tanaffus;

Loop Switch 2 -qism

Ushbu kodda biz CLEAR tugmachasi bosilsa ssenariyni ko'rsatamiz. Agar siz C harfini yozsangiz va siz kiritayotgan parolni saqlaydigan o'zgaruvchini o'chirsangiz, u ekranni tozalash buyrug'ini chaqiradi va qayta boshlanadi.

// CLEAR tugmachasini bosish "s" holatida: // cheklovlar va raqamlar SENHA_DIGITADA = ""; // chegirmalar yoki simlar displeySerial.print (limparTela); // konfiguratsiya uchun hisob raqamini sozlash (); tanaffus;

Loop Switch 3 -qism

Yana bir imkoniyat, agar siz E harfini yozsangiz, bu holda, agar parol to'g'ri yoki noto'g'ri kiritilgan bo'lsa, ekran tozalanadi va tahlil qilinadi. Keyin biz 2 soniya kechiktiramiz, ekranni tozalaymiz, parol o'zgaruvchisini tiklaymiz va boshiga qaytamiz.

// ENTER tugmachasini bosing va "e" holatiga o'xshash taqqoslash: // telSerial.print (limparTela); // siz ESPERADA ni ko'rsatsangiz, agar (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // senha korreta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // senxa kiritilmagan displeySerial.print ("Senha Incorreta!"); } // 2 -sonli ma'lumotni kechiktirish kerak emas, chunki siz uni kechiktirishingiz mumkin (2000); displaySerial.print (limparTela);

Tavsiya: