Mündəricat:
- Addım 1: Serial Ekran
- Addım 2: Matrix Klaviatura
- Addım 3: Montaj
- Addım 4: Mənbə Kodu
- Addım 5: əmrləri göstərin
- Addım 6: Klaviatura Əməliyyatı
- Addım 7: Şifrə Ayarı
- Addım 8: Quraşdırma
- Addım 9: Döngə
Video: LCD Ekran və Arduino Uno ilə Tablosuna Klaviatura: 9 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Bu, LCD displey və Arduino Uno ilə birlikdə işləyən bir matris klaviaturadır, bu gün mövcud olan ən əsasdır. Bu quraşdırmanın məqsədi, matris klaviaturasında yazılmış bir parol alan, onu düzgün parolla müqayisə edən və ekranda bir təsdiq mesajı göstərən bir proqram yaratmaqdır.
Həm matris klaviaturasının, həm də bu ekranın ESP8266 və ESP32 ilə işlədiyini xatırlamaq vacibdir.
Gördüyünüz kimi, xarici bir mənbədən istifadə etmədiyimiz üçün dövrə USB ilə Arduino ilə təchiz edirik. Arduino limanlarına çox sadə bir şəkildə bağlanan səkkiz tel klaviaturamızın əlaqəsini təmin edir. Bu klaviatura heç bir gücə malik deyil və əlaqələri xeyli asanlaşdıran passivdir.
Ekran Arduino ilə UART vasitəsilə əlaqələndirilir, bu da cihazı gücləndirir.
Bir nümayiş olaraq, videoda klaviaturada yazılan parolun düzgün olub olmadığını yoxlayan dövranımızı göstəririk.
Videoda istifadə olunan və burada mövcud olan PDF -də, istifadə olunan çipin tam pinoutuna sahibik.
Addım 1: Serial Ekran
Bu, TXRX ilə RS olan UART ilə əlaqə quran serial ekrandır. I2C versiyalarında da mövcuddur, lakin digər modellər qarşıdakı montaj üçün qalacaq. Bu vəziyyətdə, bu ekran UART tərəfindən RS tərəfindən işləyir.
Addım 2: Matrix Klaviatura
İstifadə etdiyimiz matris klaviatura nümunəsi fotoşəkildir və sağ tərəfdədir. Bunun necə işlədiyini göstərən bir diaqramımız var. Əslində yalnız 4x4 xəttdən ibarətdir. Beləliklə, minimum miqdarda tel istifadə edir; hər satır və sütun üçün bir tel, beləliklə cəmi səkkiz tel var.
Gücə ehtiyac yoxdur, çünki aşağıdakı kimi işləyir: 7 -yə basıldıqda klaviatura 7 -ni götürür və alqoritmi avtomatik olaraq tarayaraq identifikasiyanı mümkün edən xəttə və sütuna qoşulur.
Dot matrix olan hər hansı bir 4x4 klaviaturanın bu montajda işləyəcəyini xatırlamaq vacibdir.
Addım 3: Montaj
Ümumi sxemdə səkkiz teli birbaşa Arduino portlarına bağlayırıq, çünki klaviaturada heç bir güc yoxdur. Ekranda RS 232 siqnalı və müsbət və mənfi güc var. Arxa işıq hələ də mövcuddur, bu da artıq bağlıdır (BKL tərəfindən müəyyən edilir).
Addım 4: Mənbə Kodu
Bu layihənin mənbə koduna serial və klaviatura daxil etməlisiniz. Seriyalı proqram təminatı üçün lazım olan RX_PIN və TX_PIN dəstinə malikdir, eyni zamanda İNVERTED 1. Bu, ters çevrilmiş məntiqlə girişdən istifadə edən siqnalın gücləndirilməsi üçün altına yerləşdirilmişdir.
// biblioteca cavablar üçün ekran LCD ekran daxil edin #daxildir // biblioteca cavabları heç bir yerdə yoxlanılmamalıdır #daxil edin // SoftwareSerialda heç bir müqavilə sahibi yoxdur #RX_PIN 255 -i təyin edin. LCD displey #define TX_PIN 3 // Rx e Tx, LOW como YÜKSƏK və ya əksinə #tərif edin INVERTED 1
Addım 5: əmrləri göstərin
Əhəmiyyətli: Bu ekranda sadəcə bir sim qoymaq kifayət deyil. Nəzarət simvollarını göndərməlisiniz. PDF, bu ekranın təlimatına sahib olduğunuz saytın bağlantısını ehtiva edir. Ancaq başqa bir markanın seriyalı ekranına sahibsinizsə, bununla əlaqəli nəzarət kodlarına baxmaq yaxşıdır. Bu modeldə, məsələn, müəyyən bir nəzarət göndərdiyimizdə (məsələn, bu ekran üçün məlumatlar), ünsiyyəti təmin etmək üçün 254 nömrəli bir prefiks göndərməliyik.
İşləri asanlaşdırmaq üçün bir rəqəmsal indekslə əldə edilən dəyişənlər toplusu olan bir ARRAY qurduq. Bu ilkin konfiqurasiya olaraq ekrana göndəriləcək.
// hər hansı bir iş görmək üçün limconTela = {254, 1}; // rəsmi konfiqurasiya/ * 254, 254 və ya arxa işığı 254, 254, 253, 1 konfiqurasiya və ya 254, 13 düyməli konfiqurasiya * və const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};
Addım 6: Klaviatura Əməliyyatı
Klaviatura necə işləyir? Birincisi, bir sıra bağlayır. Bu sıra, həqiqətən orada göstəriləcək xarakterdəndir. Beləliklə, bir X qoysam, yuxarıdakı ilk sol düyməni basdığımda göstərilir. Klaviaturanın məzmunu budur, əmr etdiyi budur.
Tərifə sahib olduğumuz digər şeylər, bu klaviaturanın ARRAY vəziyyətində 4 nömrəli sütun və 4 nömrəli sütundur. Hələ də Arduino sancaqları olan xətlərin pinləri və sütunun sancaqları var. Hələ də simvolu, pin, satır və sütun parametrləri olan xüsusi bir Keypad Keypad qurucumuz var.
const baytı LINHAS = 4; // nəhayət, baytar COLUNAS = 4; // nağıllar yığmaqla // SIMBOLOS [LINHAS] [COLUNAS] = {{'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_COLUNA [COLUNAS] = {4, 5, 6, 7} baytlarının necə işlədiyini göstərir; // Klaviatura düymələri ilə əlaqəli məlumatlar göstərilir // Klaviatura, cavablar və ya xüsusi klaviatura düymələri üçün xüsusi düymələr Klaviatura = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
Addım 7: Şifrə Ayarı
Bu hissədə şifrəni təyin edirik və sonra boş bir sətir olan bir parol daxil etməliyik. Aşağıda softwareSerial nümunəsini qoyduq.
// dəyişən sətirlərin siyahısı kimi SENHA_ESPERADA = "1234ABCD"; SENHA_DIGITADA = "" sətri; // SoftwareSerial -ın komunik proqramları serial SoftwareSerial DisplaySerial = SoftwareSerial vasitəsilə göstər (RX_PIN, TX_PIN, INVERTED);
Addım 8: Quraşdırma
Quraşdırmaya gəldikdə, burada sürətlə əlaqəli displaySerial.begin (2, 400) var. Bizim vəziyyətimizdə bu, bir bayt göndərmək üçün kifayətdir. Bunun ardınca 700 millisaniyə gözləmə var. DisplaySerial.print'i (initialConfig) ilkin konfiqurasiyadan 10 milisaniyəlik yeni gecikmə ilə daxil edirik və başlanğıc funksiyasına keçirik. Başlat funksiyasında displaySerial.print ("parol:") qoyuruq.
void setup () {Serial.begin (2400); // komunikasiya üçün bir seriya açılır // 2400 displaySerial.begin (2400); // gecikmə göstərmə gecikməsi (700); // rəsmi olaraq DisplaySerial.print (configInicial) göstərmək üçün konfiqurasiya qurun; gecikmə (10); inicio (); } // funksiyaların cavablandırılması ilə bağlı məlumatların sayına və ya tarixinə görə cavab vermək lazımdır // bir neçə gündən sonra hər hansı bir rəqəmlə müqayisə oluna bilərsə, bir düyməni basmaq olar. void inicio () {displaySerial.print ("Senha:"); }
Addım 9: Döngə
Döngədə bir customKey = customKeypad.getKey () yaradırıq və ardıcıllıqla bir Switch əmri daxil edirik.
// CustomKey = customKeypad.getKey (); // düyməni basmaqla (customKey) {Serial.println (customKey); keçid (customKey) { /… /}}
Loop Switch 1 -ci hissə
Switch əmrinin içərisində: basıldığı təqdirdə çap edilə bilən düymələrin imkanlarının siyahısını göstərir və şifrəni artırır: customKey alır və daxil edilmiş şifrəni birləşdirir. Sonra, displaySerial.print (customKey) əsas məzmunu göstərir.
keçid (customKey) {// caso alguma das teclas instimíveis foi pressionada case 'A': case 'B': case 'C': case 'D': case '0': case '1': case '2': case '3': dava '4': dava '5': hal '6': hal '7': hal '8': hal '9': // bir -biri ilə əlaqə qurmaq SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // ekran görüntüsünü göstərmək üçün DisplaySerial.print (customKey); fasilə;
Döngə keçid hissəsi 2
Bu kodda CLEAR düyməsinə basıldığı üçün bir ssenari göstəririk. C hərfini yazsanız və yazdığınız şifrəni saxlayan dəyişəni silsəniz, ekranı silmək əmrini çağırır və yenidən başlayır.
// CLEAR düyməsini basaraq "c" düyməsini sıxın: // bir neçə gündən sonra hər hansı bir rəqəmi yoxlayın SENHA_DIGITADA = ""; // telefonu göstərə biləcəyiniz haldaSerial.print (limparTela); // konfiqurasiya etmək üçün rəqəmsal parametrlər (); fasilə;
Döngə açarı 3 hissə
Başqa bir ehtimal E hərfini yazmağınızdır. Bu halda daxil edilmiş parol düzgün və ya səhv olarsa ekran təmizlənəcək və təhlil ediləcək. Sonra, 2 saniyəlik yeni bir gecikmə verəcəyik, ekranı siləcəyik, parol dəyişənini sıfırlayacağıq və əvvəldən qayıdacağıq.
// ENTER düyməsini basın və "e" ilə müqayisə edin: // bir tela displaySerial.print (limparTela); // bir ESPERADA ifa etmək lazımdırsa (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // senha correta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada başqa {Serial.println ("Senha Incorreta!"); // senha incorreta displaySerial.print ("Senha Incorreta!"); } // tarix 2 gecəyə qədər gecikmə ilə əlaqədardır (2000); displaySerial.print (limparTela);
Tövsiyə:
Sensorlu ekran Macintosh - Ekran üçün IPad Mini ilə Klassik Mac: 5 Addım (Şəkillərlə birlikdə)
Sensorlu ekran Macintosh | Klassik Mac Ekran üçün IPad Mini ilə: Bu, köhnə bir Macintoshun ekranını iPad mini ilə necə dəyişdirəcəyimə dair yeniləmə və yenidən işlənmiş dizaynımdır. Bu, illər ərzində hazırladığım 6 -cı əsərdir və bunun təkamülündən və dizaynından olduqca məmnunam
Arduino LCD 16x2 Təlimat - Arduino Uno ilə əlaqəli 1602 LCD Ekran: 5 addım
Arduino LCD 16x2 Təlimat | Arduino Uno ilə 1602 LCD Ekran: Salam Uşaqlar, çünki bir çox layihə, hər hansı bir diy metr və ya YouTube abunə sayımı ekranı və ya bir kalkulyator və ya ekranlı bir klaviatura kilidi olub olmadığını və bütün bu cür layihələr ilə birlikdə məlumatların göstərilməsi üçün bir ekrana ehtiyac duyur. arduino müəyyən edəcəklər
I2C / IIC LCD Ekran - Arduino ilə SPI -IIC Modulundan istifadə edərək I2C LCD Ekranına SPI LCD istifadə edin: 5 addım
I2C / IIC LCD Ekran | Arduino ilə SPI -dən IIC Modulundan istifadə edərək I2C LCD Ekranına SPI LCD -dən istifadə edin: Salam uşaqlar normal SPI LCD 1602 -yə qoşulmaq üçün çoxlu tellər olduğundan arduino ilə əlaqə qurmaq çox çətindir, ancaq bazarda bunu edə biləcək bir modul var. SPI ekranını IIC ekrana çevirin, buna görə yalnız 4 tel bağlamalısınız
8051 ilə Klaviatura Arayüzü və 7 Segmentdə Klaviatura Nömrələrini Göstərmək: 4 Addım (Şəkillərlə)
8051 ilə Klaviatura Arayüzü və 7 Segmentdə Klaviatura Nömrələrini Göstərmək: Bu dərslikdə 8051 ilə klaviaturanı necə birləşdirə biləcəyimizi və klaviatura nömrələrini 7 seqmentli ekranda necə göstərəcəyimizi izah edəcəyəm
LCD Studio'da Xüsusi Bir Ekran yaradın (G15 Klaviatura və LCD Ekranlar üçün) .: 7 Addım
LCD Studio -da Xüsusi Bir Ekran yaradın (G15 Klaviatura və LCD Ekranlar üçün): Yaxşı, əgər G15 klaviaturanızı yenicə əldə etmisinizsə və onunla birlikdə gələn əsas ekranlardan çox təsirlənməmisinizsə, sizi LCD Studio -dan istifadə qaydaları ilə tanış edəcəyəm. Bu nümunə yalnız bazanı göstərən bir ekran hazırlayacaq