Mục lục:
- Bước 1: Hiển thị nối tiếp
- Bước 2: Bàn phím ma trận
- Bước 3: Lắp ráp
- Bước 4: Mã nguồn
- Bước 5: Hiển thị lệnh
- Bước 6: Thao tác bàn phím
- Bước 7: Cài đặt mật khẩu
- Bước 8: Thiết lập
- Bước 9: Vòng lặp
Video: Bàn phím bảng điều khiển với màn hình LCD và Arduino Uno: 9 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Đây là bàn phím ma trận chạy cùng với màn hình LCD và Arduino Uno, cơ bản nhất tồn tại ngày nay. Mục đích của thiết lập này là tạo một chương trình nhận mật khẩu được nhập trên bàn phím ma trận, so sánh mật khẩu đó với mật khẩu chính xác và hiển thị thông báo xác nhận trên màn hình.
Điều quan trọng cần nhớ là cả bàn phím ma trận và màn hình này đều hoạt động với ESP8266 và ESP32.
Như bạn có thể thấy, chúng tôi cấp nguồn cho mạch Arduino bằng USB, vì chúng tôi không sử dụng nguồn bên ngoài. Tám dây được kết nối theo cách rất đơn giản với các cổng của Arduino tạo nên kết nối bàn phím của chúng tôi. Bàn phím này không có nguồn và bị động, điều này tạo điều kiện thuận lợi cho các kết nối.
Màn hình được kết nối với Arduino thông qua UART, cổng nối tiếp, cũng cấp nguồn cho thiết bị.
Trong một cuộc biểu tình, chúng tôi cho thấy trong video kiểm tra mạch của chúng tôi xem mật khẩu được nhập trên bàn phím có đúng hay không.
Trong tệp PDF được sử dụng trong video và có sẵn ở đây, chúng tôi có sơ đồ chân đầy đủ của con chip đang được sử dụng.
Bước 1: Hiển thị nối tiếp
Đây là màn hình nối tiếp giao tiếp với UART, là RS với TXRX. Nó cũng tồn tại trong các phiên bản I2C, nhưng các mô hình khác sẽ vẫn được lắp ráp sắp tới. Trong trường hợp này, màn hình này hoạt động bởi UART bởi RS.
Bước 2: Bàn phím ma trận
Ví dụ về bàn phím ma trận mà chúng tôi sử dụng là trong ảnh và nó nằm ở phía bên phải. Chúng tôi có một sơ đồ cho thấy nó hoạt động như thế nào. Nó thực sự chỉ có 4x4 dòng. Do đó, nó sử dụng số lượng dây tối thiểu; một dây cho mỗi hàng và cột, sao cho có tổng cộng tám dây.
Nó không cần nguồn vì nó hoạt động như sau: khi nhấn phím 7, bàn phím sẽ chọn phím 7 và kết nối với dòng và cột, giúp nhận dạng bằng cách quét thuật toán tự động.
Điều quan trọng cần nhớ là bất kỳ bàn phím 4x4 nào là ma trận điểm sẽ hoạt động trong hệ thống này.
Bước 3: Lắp ráp
Trong sơ đồ chung, chúng tôi kết nối tám dây trực tiếp với các cổng của Arduino, vì bàn phím không có nguồn. Trong màn hình, chúng ta có một tín hiệu của RS 232, và công suất âm và dương. Đèn nền vẫn còn, cũng đã được kết nối (được xác định bởi BKL).
Bước 4: Mã nguồn
Trong mã nguồn của dự án này, bạn phải bao gồm serial và keypad. Nó có một bộ RX_PIN và một TX_PIN, cần thiết cho phần mềm nối tiếp và cũng có INVERTED 1. Bộ này được đặt bên dưới để khuếch đại tín hiệu sử dụng đầu vào với logic đảo ngược.
// biblioteca responseável pela comunicação com o display LCD # include // biblioteca responseável por capturar a tecla que foi pressionada no teclado #include // pinofinityido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // pino TX da nossnoa wire Màn hình LCD #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH e ngược lại #define INVERTED 1
Bước 5: Hiển thị lệnh
Quan trọng: Trong màn hình này, chỉ đặt một sợi dây trên đó là chưa đủ. Bạn cần gửi các ký tự điều khiển. PDF chứa liên kết của trang web nơi bạn có sổ tay hướng dẫn hiển thị này. Nhưng nếu bạn có màn hình nối tiếp của một thương hiệu khác, tốt hơn là bạn nên xem mã kiểm soát của họ liên quan đến điều này. Trong mô hình này, ví dụ: khi chúng tôi gửi một điều khiển nhất định (ví dụ: thông tin cho màn hình này), chúng tôi cần gửi một tiền tố, số 254, để kích hoạt giao tiếp.
Vì vậy, chúng tôi thiết lập ARRAY để tạo điều kiện thuận lợi cho mọi thứ, là tập hợp các biến được truy cập bằng chỉ mục số. Điều này sẽ được gửi đến màn hình dưới dạng cấu hình ban đầu.
// 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 con trỏ paraficar piscando * / const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};
Bước 6: Thao tác bàn phím
Bàn phím hoạt động như thế nào? Đầu tiên, nó gắn kết một mảng. Mảng này là của ký tự sẽ thực sự được hiển thị ở đó. Vì vậy, nếu tôi đặt một dấu X, khi tôi nhấn nút đầu tiên bên trái ở trên cùng, nó sẽ được hiển thị. Đây là nội dung của bàn phím, là những gì nó sẽ ra lệnh.
Những thứ khác mà chúng tôi có định nghĩa là hàng số 4 và cột số 4, trong trường hợp SẮP XẾP của bàn phím này. Chúng ta vẫn có các chân của các dòng, đó là các chân Arduino và các chân của cột. Chúng tôi vẫn có một trình tạo bàn phím CustomKeypad với các tham số biểu tượng, ghim, hàng và cột.
const byte LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // định nghĩa 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 '}}; byte PINOS_LINHA [LINHAS] = {8, 9, 10, 11}; // pinos que indicam as linhas do teclado byte PINOS_COLUNA [COLUNAS] = {4, 5, 6, 7}; // pinos que indicam as colunas do teclado // instancia de Keypad, responseável bởi capturar a tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
Bước 7: Cài đặt mật khẩu
Trong phần này, chúng ta xác định mật khẩu, và sau đó chúng ta cần nhập mật khẩu, là một chuỗi rỗng. Dưới đây, chúng tôi đặt ví dụ của softwareSerial.
// variáveis resposnsáveis bởi armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; Chuỗi SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Hiển thị qua nối tiếp SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
Bước 8: Thiết lập
Về phần Cài đặt, đây là displaySerial.begin (2, 400), nói về tốc độ. Trong trường hợp của chúng tôi, điều này là đủ để gửi một byte. Sau đó, có khoảng thời gian chờ là 700 mili giây. Chúng tôi bao gồm displaySerial.print (initialConfig) từ cấu hình ban đầu với độ trễ mới là 10 mili giây và chúng tôi chuyển đến hàm bắt đầu. Trong hàm start, chúng tôi đặt displaySerial.print ("password:").
void setup () {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 làm trễ hiển thị (700); // seta a configuração inicial do display displaySerial.print (configInicial); chậm trễ (10); inicio (); } // função responseável por printmir na tela a mensagem para digitar a senha // é chamada toda vez q a senha foi digitada e comparada, também quando // a tecla limpar display foi pressionada. void inicio () {displaySerial.print ("Senha:"); }
Bước 9: Vòng lặp
Trong vòng lặp, chúng tôi tạo một customKey = customKeypad.getKey () và trong chuỗi, chúng tôi nhập lệnh Switch.
// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); chuyển đổi (customKey) {/… /}}
Chuyển mạch vòng 1
Bên trong lệnh Switch: nó hiển thị danh sách các khả năng của các phím có thể in, nếu được nhấn và tăng mật khẩu: lấy customKey và nối mật khẩu đã nhập. Tiếp theo, displaySerial.print (customKey) hiển thị các nội dung chính.
switch (customKey) {// caso alguma das teclas printmíveis foi 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); nghỉ;
Chuyển mạch vòng 2
Trong đoạn mã này, chúng tôi hiển thị một kịch bản nếu phím XÓA được nhấn. Nếu bạn nhập ký tự C và xóa biến chứa mật khẩu bạn đang nhập, thì biến đó sẽ gọi lệnh xóa màn hình và khởi động lại.
// 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 (); nghỉ;
Chuyển mạch vòng 3
Một khả năng khác là nếu bạn nhập ký tự E. Trong trường hợp này, màn hình sẽ được làm sạch và phân tích xem mật khẩu đã nhập là đúng hay sai. Tiếp theo, chúng tôi sẽ đưa ra thời gian trễ mới là 2 giây, xóa màn hình, đặt lại biến mật khẩu và quay lại từ đầu.
// caso a tecla ENTER seja pressionada, devemos comparar as senhas case 'e': // limpa a tela displaySerial.print (limparTela); // se a senha digitada foi igual a ESPERADA if (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // printme mensagem de senha correta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // printme mensagem de senha increta displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);
Đề xuất:
Điều khiển đèn LED của bạn bằng điều khiển từ xa TV của bạn ?! -- Hướng dẫn Arduino IR: 5 bước (có hình ảnh)
Điều khiển đèn LED của bạn bằng điều khiển từ xa TV của bạn ?! || Hướng dẫn sử dụng Arduino IR: Trong dự án này, tôi sẽ chỉ cho bạn cách tôi định vị lại các nút vô dụng trên điều khiển từ xa của TV để điều khiển đèn LED phía sau TV. Bạn cũng có thể sử dụng kỹ thuật này để kiểm soát tất cả mọi thứ với một chút chỉnh sửa mã. Tôi cũng sẽ nói một chút về lý thuyết
Đồng hồ LCD Arduino lớn với hai báo thức và màn hình nhiệt độ được điều khiển bằng điều khiển từ xa IR TV: 5 bước
Đồng hồ LCD Arduino lớn với hai báo thức và màn hình nhiệt độ được điều khiển bằng điều khiển từ xa IR TV: Cách xây dựng đồng hồ LCD dựa trên Arduino với hai báo thức và màn hình nhiệt độ được điều khiển bằng điều khiển từ xa IR TV
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Bàn phím với màn hình LCD Sử dụng Vi điều khiển CloudX: 4 bước
Bàn phím có màn hình LCD Sử dụng Vi điều khiển CloudX: Đối với dự án này, chúng tôi sẽ chấp nhận dữ liệu từ Bàn phím ma trận và sau đó hiển thị nó trên LCDModule
Điều khiển các thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) với Màn hình nhiệt độ và độ ẩm: 9 bước
Điều khiển thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) Có Hiển thị nhiệt độ và độ ẩm: xin chào, tôi là Abhay và đây là blog đầu tiên của tôi về Các thiết bị điện và hôm nay tôi sẽ hướng dẫn bạn cách điều khiển các thiết bị điện bằng điều khiển từ xa bằng cách xây dựng cái này dự án đơn giản. cảm ơn atl lab đã hỗ trợ và cung cấp tài liệu