İçindekiler:
- Adım 1: Seri Ekran
- 2. Adım: Matris Klavyesi
- Adım 3: Montaj
- Adım 4: Kaynak Kodu
- Adım 5: Komutları Görüntüle
- Adım 6: Klavye İşlemi
- 7. Adım: Şifre Ayarı
- Adım 8: Kurulum
- Adım 9: Döngü
Video: LCD Ekranlı ve Arduino Uno'lu Dashboard Klavye: 9 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu, bir LCD ekran ve bugün var olan en temel Arduino Uno ile birlikte çalışan bir matris klavyedir. Bu kurulumun amacı, matris klavyede yazılan bir şifreyi alan, doğru şifre ile karşılaştıran ve ekranda bir onay mesajı görüntüleyen bir program oluşturmaktır.
Hem matris klavyesinin hem de bu ekranın ESP8266 ve ESP32 ile çalıştığını unutmamak önemlidir.
Gördüğünüz gibi, harici bir kaynak kullanmadığımız için Arduino ile devreye USB ile güç veriyoruz. Arduino'nun portlarına çok basit bir şekilde bağlanan sekiz kablo, klavyemizin bağlantısını sağlıyor. Bu klavyenin gücü yoktur ve pasiftir, bu da bağlantıları büyük ölçüde kolaylaştırır.
Ekran, aynı zamanda cihaza güç sağlayan seri port olan UART aracılığıyla bir Arduino'ya bağlanır.
Bir gösteride, videoda klavyede yazılan şifrenin doğru olup olmadığını kontrol eden devremizi gösteriyoruz.
Videoda kullanılan ve burada bulunan PDF'de, kullanılan çipin tam pin çıkışına sahibiz.
Adım 1: Seri Ekran
Bu, bir TXRX ile RS olan UART ile iletişim kuran seri ekrandır. Ayrıca I2C sürümlerinde de mevcuttur, ancak diğer modeller yaklaşan bir montaj için kalacaktır. Bu durumda, bu ekran UART by RS tarafından çalışır.
2. Adım: Matris Klavyesi
Kullandığımız matris klavye örneği fotoğraftaki gibidir ve sağ taraftadır. Nasıl çalıştığını gösteren bir diyagramımız var. Aslında sadece 4x4 hatları var. Böylece minimum miktarda tel kullanır; her satır ve sütun için bir tel, böylece toplamda sekiz tel olur.
Güç gerektirmez çünkü şu şekilde çalışır: 7'ye basıldığında klavye 7'yi alır ve satır ve sütuna bağlanır, bu da algoritmayı otomatik olarak tarayarak tanımlamayı mümkün kılar.
Nokta vuruşlu herhangi bir 4x4 klavyenin bu montajda çalışacağını unutmamak önemlidir.
Adım 3: Montaj
Genel şemada, klavyenin gücü olmadığı için sekiz kabloyu doğrudan Arduino'nun bağlantı noktalarına bağlarız. Ekranda RS 232 sinyali ve pozitif ve negatif güç var. Halihazırda bağlı olan (BKL tarafından tanımlanan) Arka Işık hala mevcuttur.
Adım 4: Kaynak Kodu
Bu projenin kaynak koduna seri ve tuş takımını dahil etmeniz gerekiyor. Seri yazılım için gerekli olan bir set RX_PIN ve bir TX_PIN'e ve ayrıca INVERTED 1'e sahiptir. Bu, ters çevrilmiş mantıkla girişi kullanan sinyali yükseltmek için altına yerleştirildi.
// Ekran LCD'si ile ilgili iletişim bilgileri, ekran LCD#içerme //Arduino'da onaylanmaz ve onaylanmaz #include // herhangi bir yaratıcı yazılımSeri YazılımSeri #define RX_PIN 255 // Arduino'ya bağlanmaz. Ekran LCD #define TX_PIN 3 // bir mantık dos pinos Rx e Tx, tratando LOW como YÜKSEK e tersini ters çevir #define TERS 1
Adım 5: Komutları Görüntüle
Önemli: Bu ekranda sadece bir dize koymak yeterli değildir. Kontrol karakterlerini göndermeniz gerekiyor. PDF, bu ekranın bir kılavuzuna sahip olduğunuz sitenin bağlantısını içerir. Ancak başka bir markanın seri gösterimi varsa, bununla ilgili kontrol kodlarına bakmakta fayda var. Bu modelde, örneğin, belirli bir kontrol gönderdiğimizde (örneğin bu ekran için bilgi), iletişimi sağlamak için 254 numaralı bir önek göndermemiz gerekiyor.
Bu yüzden, sayısal bir indeksle erişilen değişkenlerin bir koleksiyonu olan şeyleri kolaylaştırmak için bir ARRAY kurduk. Bu, ilk yapılandırma olarak ekrana gönderilecektir.
//buna bir tela do displayconst char limparTela = { 254, 1}; //comandos de configuração inisial /* 254, 254 arka ışık 254, 1 bağlantı noktası 254, 253, 1 yapılandırma ve karşıtlık 254, 13 lig paraficar paraficar piscando */ const char configInicial = { 254, 254, 254, 1, 254, 253, 1, 254, 13};
Adım 6: Klavye İşlemi
Klavye nasıl çalışır? İlk olarak, bir diziyi bağlar. Bu dizi, aslında orada görüntülenecek olan karaktere ait. Yani X koyarsam üstteki ilk sol düğmeye bastığımda görüntüleniyor. Bu, klavyenin içeriğidir ve komuta edeceği şeydir.
Tanıma sahip olduğumuz diğer şeyler, bu klavyenin DİZİSİ durumunda, 4 numaralı satır ve 4 numaralı sütundur. Hala Arduino pinleri olan çizgilerin pinleri ve kolonun pinleri var. Hala sembol, pin, satır ve sütun parametrelerine sahip bir özel Tuş Takımı Tuş Takımı oluşturucumuz var.
const bayt LINHAS = 4; // número de linhas, tecladoconst byte COLUNAS = 4; // teclado'daki tek sütun sayısı // uma matriz com os símbolos que deseja ser lido do teclado char 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 que indicam as linhas do teclado byte PINOS_COLUNA[COLUNAS] = {4, 5, 6, 7}; //Teclado olarak pinos que indicam // Tuş Takımı, yanıtlama ve yakalama özelliği Tuş Takımı özelKeypad = Tuş takımı(makeKeymap(SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
7. Adım: Şifre Ayarı
Bu kısımda şifreyi tanımlıyoruz ve ardından boş bir dize olan bir şifre girmemiz gerekiyor. Aşağıda, softwareSerial örneğini koyuyoruz.
//senhasconst String SENHA_ESPERADA = "1234ABCD"; Dize SENHA_DIGITADA = ""; //Instancia de SoftwareSerial para nos comunicar com o Seri üzerinden görüntüleme SoftwareSerial displaySerial = SoftwareSerial(RX_PIN, TX_PIN, INVERTED);
Adım 8: Kurulum
Kuruluma gelince, hız ile ilgili olan displaySerial.begin (2, 400) burada. Bizim durumumuzda, bu bir bayt göndermek için yeterlidir. Bunu takiben 700 milisaniyelik bir bekleme vardır. İlk konfigürasyondan displaySerial.print (initialConfig) dosyasını 10 milisaniyelik yeni bir gecikme ile ekliyoruz ve başlatma fonksiyonuna geçiyoruz. Başlatma fonksiyonuna displaySerial.print ("şifre:") koyduk.
geçersiz kurulum(){ Serial.begin(2400); //İletişim için seri iletişim bilgilerinin görüntülenmesi //önemli veya baud hızı seri 2400 displaySerial.begin(2400); //tempo de espera pela inicialização do display gecikme(700); //bir yapılandırmanın ilk gösterimini ayarla displaySerial.print(configInicial); gecikme(10); inicio(); } //işlenceli yanıtlar, sayısal değerlere ilişkin yanıtlar // bu günlerin sayısı ve karşılaştırma, também quando //baskı için bir gösterge ekranı. void inicio(){ displaySerial.print("Senha:"); }
Adım 9: Döngü
Döngüde bir customKey = customKeypad.getKey() oluşturuyoruz ve sırayla bir Switch komutu giriyoruz.
// bir tecla pressionada yap teclado char customKey = customKeypad.getKey(); //caso alguma tecla foi pressionada if (customKey){ Serial.println(customKey); geçiş(özelKey) { /…/ } }
Döngü Anahtarı Bölüm 1
Switch komutunun içinde: basıldığında yazdırılabilir tuşların olasılıklarının listesini gösterir ve parolayı artırır: customKey'i alır ve girilen parolayı birleştirir. Ardından, displaySerial.print (customKey) ana içeriği gösterir.
switch(customKey) { //caso alguma das teclas imprimíveis foi pressionada vaka 'A': vaka 'B': vaka 'C': vaka 'D': vaka '0': vaka '1': vaka '2': vaka '3': durum '4': durum '5': durum '6': durum '7': durum '8': durum '9': // bir senha que estamos digitando SENHA_DIGITADA+=özelKey; Serial.println(SENHA_DIGITADA); // imrpime símbolo pressionado displaySerial.print(customKey); kırmak;
Döngü Anahtarı Bölüm 2
Bu kodda CLEAR tuşuna basılırsa bir senaryo gösteriyoruz. C harfini yazıp, yazdığınız şifreyi tutan değişkeni temizlerseniz, ekranı temizleme komutunu çağırır ve yeniden başlar.
//caso a tecla CLEAR tenha sido pressionada case 'c': // bir değişkeni kontrol et ve senha que está sendo digitada SENHA_DIGITADA = ""; //chama veya comando para limpar bir tela displaySerial.print(limparTela); // bir mensagem para digitar a senha inicio(); kırmak;
Döngü Anahtarı Bölüm 3
Diğer bir ihtimal ise E harfini yazmanızdır. Bu durumda ekran temizlenecek ve girilen şifrenin doğru veya yanlış olup olmadığı incelenecektir. Ardından 2 saniyelik yeni bir gecikme vereceğiz, ekranı temizleyeceğiz, şifre değişkenini sıfırlayacağız ve başa döneceğiz.
//caso a tecla ENTER seja pressionada, senhas case 'e' olarak devemos karşılaştırması: //limpa a tela displaySerial.print(limparTela); // bir senha digitada foi igual bir ESPERADA if(SENHA_ESPERADA==SENHA_DIGITADA) { Serial.println("Senha Correta!"); //göstergeler arası mensagem de senha correta displaySerial.print("Senha Correta!!!"); } //caso senha esteja hatalı başka{ Serial.println("Senha Incorreta!"); // en iyi mensagem de senha incorreta displaySerial.print("Senha Incorreta!"); } //aguarda 2 segundos para limpar ve tele novamente ve esperar uma nova senha ser digitada delay(2000); displaySerial.print(limparTela);
Önerilen:
I2C Ekranlı RFID Arduino Uno Röle Anahtarı: 4 Adım
I2C Ekranlı RFID Arduino Uno Röle Anahtarı: Merhaba, bu benim ilk projem, adım Oskar ve 13 yaşındayım. Bu proje normal bir I2C ekranı ile çalışmıyor
Arduino ve Lcd Ekranlı Sıcaklık ve Nem Sensörü: 4 Adım
Arduino ve Lcd Ekranlı Sıcaklık ve Nem Sensörü: Merhaba arkadaşlar, Artuino'ya tekrar hoş geldiniz. Gördüğünüz gibi An Instructable'a başladım Bugün bir Sıcaklık & DHT11 modüllü nem ölçer. Hadi başlayalım Abone olmayı ve videoyu beğenmeyi düşünün
I2c LCD Ekranlı Arduino ve ESP8266: 9 Adım
I2c LCD Ekranlı Arduino ve ESP8266: Buradaki temel amacımız, LCD Ekran 2x16 veya 20x4 için seri i2c modülünün çalışmasını göstermektir. Bu modül ile yukarıda bahsettiğimiz ekranları sadece iki pin (SDA ve SCL) kullanarak kontrol edebiliyoruz. Bu, iletişimi çok basitleştirir ve f
Hızlı ve Kirli Das Klavye (Boş Klavye): 3 Adım
Hızlı ve Kirli Das Klavye (Boş Klavye): Das Klavye, tuşlarında yazı olmayan en popüler klavyenin adıdır (boş klavye). Das Klavye 89,95 $ için perakende satış yapıyor. Bu talimat, etrafta yattığınız herhangi bir eski klavyeyi kendiniz yapmanıza rağmen size rehberlik edecektir
LCD Studio'da Özel Ekran Oluşturun (G15 Klavye ve LCD Ekranlar İçin): 7 Adım
LCD Studio'da Özel Ekran Oluşturun (G15 Klavye ve LCD Ekranlar için): Tamam, G15 klavyenizi yeni aldıysanız ve onunla birlikte gelen temel ekranlardan oldukça etkilenmediyseniz, o zaman size LCD Studio'yu kullanmanın temellerini anlatacağım. Kendinizinkini yapmak için. Bu örnek, yalnızca bası gösteren bir ekran yapacaktır