Mục lục:

Sử dụng bàn phím số với Arduino: 4 bước
Sử dụng bàn phím số với Arduino: 4 bước

Video: Sử dụng bàn phím số với Arduino: 4 bước

Video: Sử dụng bàn phím số với Arduino: 4 bước
Video: 🔴 Arduino #7 | Cách Sử Dụng Bàn Phím Ma Trận 4x4 | How To Use 4x4 Matrix Keypad 2024, Tháng mười một
Anonim
Sử dụng bàn phím số với Arduino
Sử dụng bàn phím số với Arduino

Bàn phím số có thể cung cấp một giải pháp thay thế đơn giản cho người dùng cuối cho các giao diện khác nhau cho các dự án của bạn. Hoặc nếu bạn cần nhiều nút, chúng có thể giúp bạn tiết kiệm rất nhiều thời gian liên quan đến việc xây dựng. Chúng tôi sẽ chạy thông qua việc kết nối chúng, sử dụng thư viện Arduino và sau đó kết thúc bằng một bản phác thảo ví dụ hữu ích.

Bước 1: Bắt đầu

Bắt đầu
Bắt đầu

Cho dù bạn lấy bàn phím từ đâu, hãy đảm bảo rằng bạn có thể lấy bảng dữ liệu - vì điều này sẽ giúp cuộc sống dễ dàng hơn khi kết nối chúng. Ví dụ - hình ảnh trong bước này.

Bảng dữ liệu rất quan trọng vì nó sẽ cho bạn biết chân hoặc đầu nối nào trên bàn phím dành cho các hàng và cột. Nếu bạn không có bảng dữ liệu - bạn sẽ cần xác định thủ công địa chỉ liên hệ nào dành cho các hàng và cột.

Điều này có thể được thực hiện bằng cách sử dụng chức năng liên tục của đồng hồ vạn năng (bộ rung). Bắt đầu bằng cách đặt một đầu dò vào chân 1, đầu dò còn lại vào chân 2 và nhấn các phím lần lượt. Ghi lại thời điểm một nút hoàn thành mạch, sau đó chuyển sang chân tiếp theo. Chẳng bao lâu bạn sẽ biết cái nào là cái nào. Ví dụ: trên bàn phím ví dụ, chân 1 và 5 dành cho nút “1”, 2 và 5 cho “4”, v.v.

Tại thời điểm này, vui lòng tải xuống và cài đặt thư viện bàn phím Arduino. Bây giờ chúng tôi sẽ trình bày cách sử dụng cả hai bàn phím trong các ví dụ đơn giản.

Bước 2: Sử dụng bàn phím 12 chữ số

Chúng tôi sẽ sử dụng bàn phím nhỏ màu đen, tương thích với Arduino Uno và màn hình LCD có giao diện I2C cho mục đích hiển thị. Nếu không có màn hình LCD, bạn luôn có thể gửi văn bản đến màn hình nối tiếp.

Nối dây màn hình LCD của bạn, sau đó kết nối bàn phím với Arduino theo cách sau: Bàn phím hàng 1 với Arduino kỹ thuật số 5Keypad hàng 2 với Arduino kỹ thuật số 4Keypad hàng 3 với Arduino kỹ thuật số 3Keypad hàng 4 với Arduino kỹ thuật số 2Keypad cột 1 đến Arduino kỹ thuật số 8Keypad cột 2 đến Arduino kỹ thuật số 7Keypad cột 3 đến Arduino kỹ thuật số 6 Nếu bàn phím của bạn khác với bàn phím của chúng tôi, hãy lưu ý các dòng trong bản phác thảo từ:

// định nghĩa loại bàn phím

Khi bạn cần thay đổi các số trong mảng rowPins [ROWS] và colPins [COLS]. Bạn nhập số pin kỹ thuật số được kết nối với các hàng và cột của bàn phím tương ứng.

Hơn nữa, các phím mảng lưu trữ các giá trị được hiển thị trên màn hình LCD khi một nút cụ thể được nhấn. Bạn có thể thấy chúng tôi đã khớp nó với bàn phím vật lý được sử dụng, tuy nhiên bạn có thể thay đổi nó thành bất kỳ thứ gì bạn cần. Nhưng bây giờ, hãy nhập và tải lên bản phác thảo sau khi bạn hài lòng với việc phân bổ số hàng / số pin:

/ * Bàn phím số và I2C LCD https://tronixstuff.com Sử dụng thư viện Bàn phím cho Arduino https://www.arduino.cc/playground/Code/Keypad của Mark Stanley, Alexander Brevig * /

#include "Keypad.h"

#include "Wire.h" // cho I2C LCD #include "LiquidCrystal_I2C.h" // cho mô-đun LCD bus I2C // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) Màn hình LCD LiquidCrystal_I2C (0x27, 16, 2); // đặt địa chỉ LCD thành 0x27 để hiển thị 16 ký tự và 2 dòng

// định nghĩa loại bàn phím

const byte ROWS = 4; // bốn hàng const byte COLS = 3; // khóa ký tự ba cột [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

byte rowPins [ROWS] = {

5, 4, 3, 2}; // kết nối với sơ đồ hàng của byte bàn phím colPins [COLS] = {8, 7, 6}; // kết nối với sơ đồ cột của bàn phím

int count = 0;

Bàn phím bàn phím = Bàn phím (makeKeymap (phím), rowPins, colPins, ROWS, COLS);

void setup ()

{lcd.init (); // khởi tạo lcd lcd.backlight (); // bật đèn nền LCD}

void loop ()

{char key = keypad.getKey (); if (key! = NO_KEY) {lcd.print (key); tính ++; if (count == 17) {lcd.clear (); đếm = 0; }}}

Và kết quả của bản phác thảo được hiển thị trong video. Vì vậy, bây giờ bạn có thể thấy cách các lần nhấn nút có thể được chuyển thành dữ liệu để sử dụng trong bản phác thảo. Bây giờ chúng ta sẽ lặp lại phần trình diễn này với bàn phím lớn hơn.

Bước 3: Sử dụng bàn phím 16 chữ số

Chúng tôi sẽ sử dụng bàn phím 4 × 4 lớn hơn, tương thích với Arduino Uno và để thay đổi I2C LCD từ Akafugu cho mục đích hiển thị. Một lần nữa, nếu bạn không có màn hình LCD, bạn luôn có thể gửi văn bản đến màn hình nối tiếp. Nối dây màn hình LCD và sau đó kết nối bàn phím với Arduino theo cách sau:

  • Bàn phím hàng 1 (chân tám) đến Arduino kỹ thuật số 5
  • Bàn phím hàng 2 (chân 1) đến Arduino kỹ thuật số 4
  • Bàn phím hàng 3 (chân 2) đến Arduino kỹ thuật số 3
  • Bàn phím hàng 4 (chân 4) đến Arduino kỹ thuật số 2
  • Cột bàn phím 1 (chân 3) đến Arduino kỹ thuật số 9
  • Cột bàn phím 2 (chân 5) đến Arduino kỹ thuật số 8
  • Bàn phím cột 3 (chân 6) đến Arduino kỹ thuật số 7
  • Bàn phím cột 4 (chân 7) sang Arduino kỹ thuật số 6

Bây giờ đối với bản phác thảo - hãy lưu ý cách chúng ta đã điều chỉnh cho bàn phím số lớn hơn: cột phụ trong các phím ký tự mảng ghim phụ trong mảng colPins và byte COLS = 4.

/ * Bàn phím số và I2C LCD https://tronixstuff.com Sử dụng thư viện Bàn phím cho Arduino https://www.arduino.cc/playground/Code/Keypad của Mark Stanley, Alexander Brevig * /

#include "Keypad.h"

#include "Wire.h" // cho I2C LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // bốn hàng

const byte COLS = 4; // khóa ký tự bốn cột [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // kết nối với sơ đồ hàng của byte bàn phím colPins [COLS] = {9, 8, 7, 6}; // kết nối với sơ đồ cột của bàn phím int count = 0;

Bàn phím bàn phím = Bàn phím (makeKeymap (phím), rowPins, colPins, ROWS, COLS);

void setup ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Kiểm tra bàn phím!"); chậm trễ (1000); lcd.clear (); }

void loop ()

{char key = keypad.getKey (); if (key! = NO_KEY) {lcd.print (key); Serial.print (key); tính ++; if (count == 17) {lcd.clear (); đếm = 0; }}}

Và một lần nữa bạn có thể xem kết quả của bản phác thảo ở trên trong video.

Bây giờ đối với một dự án ví dụ, một dự án có lẽ là cách sử dụng bàn phím số được yêu cầu nhiều nhất…

Bước 4: Dự án mẫu - Hệ thống truy cập mã PIN

Việc sử dụng được yêu cầu nhiều nhất cho bàn phím số dường như là một ứng dụng kiểu “PIN”, nơi Arduino được hướng dẫn thực hiện điều gì đó dựa trên một số chính xác được nhập vào bàn phím. Bản phác thảo sau sử dụng phần cứng được mô tả cho bản phác thảo trước và triển khai hệ thống nhập mã PIN gồm sáu chữ số.

Các hành động cần thực hiện có thể được chèn vào các hàm đúngPIN () và saiPIN (). Và mã PIN được đặt trong mảng char PIN [6]. Với một chút công việc bổ sung, bạn cũng có thể tạo chức năng thay đổi mã PIN của riêng mình.

// Công tắc mã PIN với bàn phím số 16 chữ số // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // bốn hàng

const byte COLS = 4; // khóa ký tự bốn cột [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // kết nối với sơ đồ hàng của byte bàn phím colPins [COLS] = {9, 8, 7, 6}; // kết nối với sơ đồ cột của bàn phím

Bàn phím bàn phím = Bàn phím (makeKeymap (phím), rowPins, colPins, ROWS, COLS);

char PIN [6] = {

'1', '2', 'A', 'D', '5', '6'}; // số char try (!) bí mật của chúng tôi [6] = {'0', '0', '0', '0', '0', '0'}; // dùng để so sánh int z = 0;

void setup ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Khóa mã PIN"); chậm trễ (1000); lcd.clear (); lcd.print ("Nhập mã PIN…"); }

void truePIN () // thực hiện việc này nếu nhập đúng mã PIN

{lcd.print ("* Mã PIN chính xác *"); chậm trễ (1000); lcd.clear (); lcd.print ("Nhập mã PIN…"); }

void saiPIN () // thực hiện việc này nếu nhập sai mã PIN

{lcd.print ("* Thử lại *"); chậm trễ (1000); lcd.clear (); lcd.print ("Nhập mã PIN…"); }

void checkPIN ()

{int đúng = 0; int i; for (i = 0; i <6; i ++) {

if (cố gắng == PIN )

{đúng ++; }} if (đúng == 6) {đúngPIN (); } else {saiPIN (); }

for (int zz = 0; zz <6; zz ++) {try [zz] = '0'; }}

void readKeypad ()

{char key = keypad.getKey (); if (key! = NO_KEY) {try [z] = key; z ++; switch (phím) {case '*': z = 0; nghỉ; case '#': z = 0; chậm trễ (100); // để gỡ lỗi thêm lcd.clear (); checkPIN (); nghỉ; }}}

void loop ()

{readKeypad (); }

Dự án được chứng minh trong video.

Vì vậy, bây giờ bạn có khả năng sử dụng bàn phím mười hai và mười sáu nút với hệ thống Arduino của mình. Tôi chắc chắn rằng bạn sẽ nghĩ ra điều gì đó hữu ích và thú vị bằng cách sử dụng bàn phím trong tương lai gần.

Bài đăng này được mang đến cho bạn bởi pmdway.com - mọi thứ dành cho các nhà sản xuất và những người đam mê điện tử, với giao hàng miễn phí trên toàn thế giới.

Đề xuất: