Isi kandungan:
- Langkah 1: Paparan Bersiri
- Langkah 2: Papan Kekunci Matrix
- Langkah 3: Perhimpunan
- Langkah 4: Kod Sumber
- Langkah 5: Perintah Paparan
- Langkah 6: Operasi Papan Kekunci
- Langkah 7: Penetapan Kata Laluan
- Langkah 8: Persediaan
- Langkah 9: Gelung
Video: Papan Kekunci Dashboard Dengan Paparan LCD dan Arduino Uno: 9 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Ini adalah papan kekunci matriks yang disertakan dengan paparan LCD dan Arduino Uno, yang paling asas yang ada sekarang. Tujuan penyediaan ini adalah untuk membuat program yang menerima kata laluan yang ditaip pada papan kekunci matriks, membandingkannya dengan kata laluan yang betul, dan menampilkan pesan pengesahan pada paparan.
Penting untuk diingat bahawa kedua-dua papan kekunci matriks dan paparan ini berfungsi dengan ESP8266 dan ESP32.
Seperti yang anda lihat, kami menghidupkan rangkaian dengan Arduino dengan USB, kerana kami tidak menggunakan sumber luaran. Lapan wayar disambungkan dengan cara yang sangat mudah ke port Arduino menjadikan sambungan papan kekunci kami. Papan kekunci ini tidak mempunyai daya dan pasif, yang sangat memudahkan penyambungan.
Paparan dihubungkan dengan Arduino melalui UART, port bersiri, yang juga memberi kuasa pada peranti.
Dalam demonstrasi, kami menunjukkan dalam video litar kami memeriksa apakah kata laluan yang ditaip pada papan kekunci betul atau tidak.
Dalam PDF yang digunakan dalam video dan tersedia di sini, kami mempunyai pinout lengkap dari chip yang sedang digunakan.
Langkah 1: Paparan Bersiri
Ini adalah paparan bersiri yang berkomunikasi dengan UART, iaitu RS dengan TXRX. Ia juga ada dalam versi I2C, tetapi model lain akan kekal untuk pemasangan yang akan datang. Dalam kes ini, paparan ini berfungsi oleh UART oleh RS.
Langkah 2: Papan Kekunci Matrix
Contoh papan kekunci matriks yang kami gunakan adalah foto, dan ia berada di sebelah kanan. Kami mempunyai rajah yang menunjukkan bagaimana ia berfungsi. Ia sebenarnya hanya mempunyai garis 4x4. Oleh itu, ia menggunakan jumlah wayar minimum; satu wayar untuk setiap baris dan lajur, sehingga terdapat lapan wayar secara keseluruhan.
Ia tidak memerlukan kuasa kerana berfungsi seperti berikut: ketika 7 ditekan, papan kekunci mengambil 7 dan menyambung ke garis dan lajur, yang memungkinkan pengenalan dengan mengimbas algoritma secara automatik.
Penting untuk diingat bahawa mana-mana papan kekunci 4x4 yang dot matriks akan berfungsi dalam pemasangan ini.
Langkah 3: Perhimpunan
Dalam skema umum, kami menghubungkan lapan wayar terus ke port Arduino, kerana papan kekunci tidak mempunyai kuasa. Di paparan, kami mempunyai isyarat RS 232, dan daya positif dan negatif. Lampu Latar masih ada, yang juga sudah terhubung (dikenal pasti oleh BKL).
Langkah 4: Kod Sumber
Dalam kod sumber projek ini, anda mesti memasukkan siri dan papan kekunci. Ia memiliki satu set RX_PIN dan TX_PIN, yang diperlukan untuk perisian bersiri, dan juga INVERTED 1. Ini diletakkan di bawahnya untuk memperkuat isyarat yang menggunakan input dengan logik terbalik.
// biblioteca responsável pela comunicação com o display LCD # include // biblioteca responsável por capturar a tecla que foi pressionada no teclado #include // pino invalido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Paparan LCD #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como TINGGI dan sebaliknya #define INVERTED 1
Langkah 5: Perintah Paparan
Penting: Dalam paparan ini, hanya cukup meletakkan tali di atasnya. Anda perlu menghantar watak kawalan. PDF mengandungi pautan laman web di mana anda mempunyai manual paparan ini. Tetapi jika anda mempunyai paparan bersiri jenama lain, ada baiknya anda melihat kod kawalan mereka yang berkaitan dengan ini. Dalam model ini, misalnya, ketika kita mengirim kawalan tertentu (contohnya untuk paparan ini), kita perlu mengirim awalan, nombor 254, untuk membolehkan komunikasi.
Oleh itu, kami menyediakan ARRAY untuk memudahkan sesuatu, yang merupakan kumpulan pemboleh ubah yang diakses dengan indeks angka. Ini akan dihantar ke paparan sebagai konfigurasi awal.
// comando para limpar toda a tela do displayconst char limparTela = {254, 1}; // comandos de configuração inicial / * 254, 254 acende o backlight 254, 1 limpa a tela 254, 253, 1 configura o contraste em nível alto 254, 13 liga o kursor paraficar piscando * / const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};
Langkah 6: Operasi Papan Kekunci
Bagaimana fungsi papan kekunci? Pertama, ia memasang array. Susunan ini mempunyai watak yang sebenarnya akan dipaparkan di sana. Oleh itu, jika saya meletakkan X, ketika saya menekan butang kiri pertama di bahagian atas, ia akan dipaparkan. Ini adalah kandungan papan kekunci, yang akan diperintahkannya.
Perkara lain yang kita maksudkan ialah baris nombor 4 dan lajur nombor 4, dalam kes ARRAY papan kekunci ini. Kami masih mempunyai pin garis, yang merupakan pin Arduino, dan pin lajur. Kami masih mempunyai pembangun Keypad kustom dengan parameter simbol, pin, baris, dan lajur.
const byte LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // define 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 '}}; bait PINOS_LINHA [LINHAS] = {8, 9, 10, 11}; // pinos que indicam sebagai linhas do teclado byte PINOS_COLUNA [COLUNAS] = {4, 5, 6, 7}; // pinos que indicam as colunas do teclado // instancia de Keypad, responsável por capturar a tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
Langkah 7: Penetapan Kata Laluan
Di bahagian ini, kita menentukan kata laluan, dan kemudian kita perlu memasukkan kata laluan, yang merupakan rentetan kosong. Di bawah ini, kami meletakkan contoh perisianSerial.
// variáveis resposnsáveis por armazenar sebagai senhasconst String SENHA_ESPERADA = "1234ABCD"; Rentetan SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Paparan melalui perisian siriSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
Langkah 8: Persediaan
Mengenai Penyediaan, berikut adalah displaySerial.begin (2, 400), yang mengenai kelajuan. Dalam kes kami, ini cukup untuk menghantar bait. Berikutan ini, terdapat penantian 700 milisaat. Kami menyertakan displaySerial.print (initialConfig) dari konfigurasi awal dengan kelewatan baru 10 milisaat, dan kami pergi ke fungsi permulaan. Dalam fungsi permulaan, kami meletakkan displaySerial.print ("kata laluan:").
batal persediaan () {Serial.begin (2400); // inicializando a serial de comunicação com o display // importante o baud rate ser de 2400 displaySerial.begin (2400); // tempo de espera pela inicialização do display delay (700); // seta a configuração inicial do displaySerial.print (configInicial); kelewatan (10); inicio (); } // função responsável por imprimir na tela a mensagem para digitar a senha // é chamada toda vez q a senha telah digitada e perbandingan, também quando // a tecla limpar display juga pressionada. batal inicio () {displaySerial.print ("Senha:"); }
Langkah 9: Gelung
Dalam gelung, kami membuat customKey = customKeypad.getKey (), dan mengikut urutan, kami memasukkan perintah Switch.
// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla juga pressionada jika (customKey) {Serial.println (customKey); tukar (customKey) {/… /}}
Suis Gelung Bahagian 1
Di dalam perintah Switch: ia menunjukkan senarai kemungkinan kunci yang boleh dicetak, jika ditekan, dan menambah kata laluan: mengambil customKey dan menggabungkan kata laluan yang dimasukkan. Seterusnya, displaySerial.print (customKey) menunjukkan isi utama.
beralih (customKey) {// caso alguma das teclas imprimíveis juga pressionada case 'A': case 'B': case 'C': case 'D': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': // concatena o novo símbolo a senha que estamos digitando SENHA_DIGITADA + = customKey; Serial.println (SENHA_DIGITADA); // imrpime na tela o símbolo pressionado displaySerial.print (customKey); rehat;
Gelung Suis Bahagian 2
Dalam kod ini, kami menunjukkan senario sekiranya kekunci CLEAR ditekan. Sekiranya anda mengetik huruf C dan membersihkan pemboleh ubah yang menyimpan kata laluan yang anda taip, maka ia memanggil arahan untuk membersihkan skrin dan memulakan semula.
// caso a tecla CLEAR tenha sido pressionada case 'c': // limpa a variável que guarda a senha que está sendo digitada SENHA_DIGITADA = ""; // chama o comando para limpar a tela displaySerial.print (limparTela); // configura a mensagem para digitar a senha inicio (); rehat;
Suis Gelung Bahagian 3
Kemungkinan lain adalah jika anda mengetik huruf E. Dalam kes ini, skrin akan dibersihkan dan dianalisis jika kata laluan yang dimasukkan betul atau tidak betul. Seterusnya, kami akan memberikan kelewatan baru 2 saat, membersihkan skrin, menetapkan semula pemboleh ubah kata laluan, dan kembali ke awal.
// caso a tecla ENTER seja pressionada, devemos dibandingkan dengan kes senhas 'e': // limpa a tela displaySerial.print (limparTela); // se a senha digitada juga memberi ESPERADA jika (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // imprime mensagem de senha coreta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada lain {Serial.println ("Senha Incorreta!"); // imprime mensagem de senha incorreta displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);
Disyorkan:
Paparan LCD I2C / IIC - Gunakan LCD SPI ke Paparan LCD I2C Menggunakan Modul SPI hingga IIC Dengan Arduino: 5 Langkah
Paparan LCD I2C / IIC | Gunakan LCD SPI ke Paparan LCD I2C Menggunakan Modul SPI hingga IIC Dengan Arduino: Hai kawan kerana SPI LCD 1602 biasa mempunyai terlalu banyak wayar untuk disambungkan sehingga sangat sukar untuk menghubungkannya dengan arduino tetapi ada satu modul yang tersedia di pasaran yang boleh menukar paparan SPI menjadi paparan IIC jadi anda hanya perlu menyambungkan 4 wayar
Betulkan Kekunci Papan Kekunci: 5 Langkah (dengan Gambar)
Betulkan Kekunci Papan Kekunci: Saya menjumpai papan kekunci yang hebat di longgokan sampah kami, iaitu Papan Kekunci Microsoft Natural Ergonomik. Ia mempunyai susun atur yang selesa, tetapi hanya ada satu masalah. Kekunci N tidak terlalu responsif. Anda harus benar-benar memukulnya untuk mendapatkannya untuk mendaftar. Sememangnya, ini tidak berlaku
Papan Kekunci Quick and Dirty Das (Papan Kekunci Kosong): 3 Langkah
Papan Kekunci Quick and Dirty Das (Papan Kekunci Kosong): Papan Kekunci Das adalah nama papan kekunci yang paling popular tanpa tulisan pada kekunci (papan kekunci kosong). Papan Kekunci Das dijual pada harga $ 89.95. Instruksional ini akan membimbing anda walaupun membuat sendiri dengan papan kekunci lama yang anda miliki
Bina Paparan Tersuai di Studio LCD (Untuk Papan Kekunci G15 dan Skrin LCD) .: 7 Langkah
Bina Paparan Tersuai di Studio LCD (Untuk Papan Kekunci G15 dan Skrin LCD): Ok jika anda baru sahaja mendapatkan papan kekunci G15 anda dan sangat tidak terkesan dengan paparan asas yang disertakan dengannya maka saya akan membimbing anda melalui asas penggunaan LCD Studio untuk membuat anda sendiri. Contoh ini ialah membuat paparan yang hanya menunjukkan asas
Membersihkan Papan Kekunci Apple Aluminium . atau Papan Kekunci Sentuhan Lembut Lain: 5 Langkah
Membersihkan Papan Kekunci Apple Aluminium …. atau Papan Kekunci Sentuhan Lembut Lain: Sebersih anda atau saya mungkin cuba menyimpan papan kekunci epal aluminium kami, ia menjadi kotor setelah setahun atau lebih. Petunjuk ini adalah untuk membantu anda membersihkannya. Hati-hati, kerana saya tidak bertanggungjawab sekiranya papan kekunci anda rosak semasa melakukan ini …. SUCKS F