Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Trong hướng dẫn này, chúng tôi sẽ tạo một dự án sẽ điều khiển một Micro-Servo bằng bàn phím chạy nó với Arduino Uno.
Vật liệu được sử dụng:
Arduino Uno
Breadboard
Bàn phím 4x4
Micro-Servo
Bước 1: Nối bàn phím
Việc đầu tiên bạn cần làm là nối dây nguồn và thanh nối đất trên breadboard từ Arduino của bạn
- Kết nối chân 5V với thanh nguồn (màu đỏ)
- Kết nối chân nối đất (GND) với thanh nối đất (màu xanh lam)
Bây giờ breadboard đã có điện và được nối đất, chúng ta có thể bắt đầu nối dây các thành phần của mình.
Kết nối bàn phím rất dễ dàng nhưng bạn cần lưu ý các chân cắm trên bàn phím và arduino. Nó sẽ có ích khi chúng ta chuyển sự chú ý vào mã của mình.
Hãy nhớ bắt đầu ở bên trái khi sử dụng dây của bạn!
- Pin đầu tiên chuyển đến 13
- Pin thứ hai chuyển đến 12
- Pin thứ ba chuyển đến 11
- Chốt thứ tư chuyển đến 10
- Pin thứ năm đến 9
- Ghim thứ sáu đến 8
- Ghim thứ bảy đến 7
- Ghim thứ tám đến 6
Khi đấu dây bàn phím, hãy nhớ giữ một chốt pwm kỹ thuật số luôn mở. Chúng tôi sẽ cần nó cho micro-servo
Trước khi chúng ta xem mã, hãy đảm bảo rằng bạn đã cài đặt Thư viện bàn phím. Nó có thể được tìm thấy trong bản phác thảo của bạn, sau đó là tab bản phác thảo, bao gồm thư viện. Bạn sẽ không thể sử dụng bàn phím nếu không có nó.
Bây giờ chúng ta hãy chuyển sang mã và đảm bảo bàn phím hoạt động và cung cấp các giá trị đã tham dự
Ghi chú nhanh: Đảm bảo bạn có câu lệnh if để kiểm tra bàn phím, nếu không nó sẽ không hoạt động. Ngoài ra, hãy cẩn thận với sự chậm trễ, chúng sẽ gây rối với các nút được đăng ký từ bàn phím
#bao gồm
const hàng byte = 4; // bốn hàng vì bàn phím đã đầy
cột byte const = 4; // bốn cột, giống như trên
nút char [hàng] [cột] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};
byte rowP [row] = {13, 12, 11, 10}; // các chân hàng của bàn phím
byte cộtP [cột] = {9, 8, 7, 6}; // chân cột của bàn phím
Bàn phím bàn phím = Bàn phím (makeKeymap (các nút), rowP, cộtP, hàng, cột); // tạo bàn phím
void setup () {
Serial.begin (9600); }
void loop () {
char buttonPressed = pad.getKey (); // lấy ký tự từ bàn phím if (buttonPressed) // hiển thị nút nào được nhấn trên bàn phím {Serial.println (buttonPressed); }}
Bước 2: Thêm Micro Servo
Bây giờ, hãy thêm động cơ servo. Cái này thực sự dễ dàng để thêm vào dự án hiện tại của chúng tôi vì máy chủ vi mô chỉ có ba dây.
- Dây màu nâu đi đến đường ray nối đất trên breadboard
- Màu đỏ chuyển đến Đường ray điện
- Màu cam đi đến Pin 3 trên Arduino. Hãy nhớ máy chủ vi mô phải có chân PWM trên Arduino. Điều này là do servo sử dụng TIMER2
Bây giờ, hãy đảm bảo rằng chúng tôi đã đấu dây đúng micro servo và nó di chuyển
#include #include "Servo.h"
const hàng byte = 4; // bốn hàng vì bàn phím đã đầy
cột byte const = 4; // bốn cột, giống như trên
nút char [hàng] [cột] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};
byte rowP [row] = {13, 12, 11, 10}; // các chân hàng của bàn phím
byte cộtP [cột] = {9, 8, 7, 6}; // chân cột của bàn phím
Bàn phím bàn phím = Bàn phím (makeKeymap (các nút), rowP, cộtP, hàng, cột); // tạo bàn phím
Servo currentServo; // tạo đối tượng servo để điều khiển một servo
// có thể tạo mười hai đối tượng servo trên hầu hết các bảng
int pos = 0; // biến để lưu vị trí servo
void setup () {
Serial.begin (9600); currentServo.attach (3); // gắn servo trên chân 9 vào đối tượng servo
}
void loop () {
char buttonPressed = pad.getKey (); // lấy ký tự từ bàn phím if (buttonPressed) // hiển thị nút nào được nhấn trên bàn phím {Serial.println (buttonPressed); }
currentServo.write (95);
}
Bước 3: Sửa đổi mã để sử dụng bàn phím trên Servo
Biết rằng chúng ta sẽ sửa đổi mã của mình để khi chúng ta nhấn một nút cụ thể trên bàn phím, servo sẽ di chuyển đến một vị trí cụ thể. Một điều quan trọng đầu tiên. Vị trí servo cho 0 thật kỳ lạ. Vì tôi có một servo quay liên tục, bất cứ khi nào nó gần về 0, servo chỉ bắt đầu quay. Số lượng tôi nhập mã thấp đến mức tôi có thể làm được nếu không có chuyện đó xảy ra. Dù sao, đây là mã cuối cùng của tôi:
#include #include
const hàng byte = 4; // bốn hàng vì bàn phím đã đầy
cột byte const = 4; // bốn cột, giống như trên
nút char [hàng] [cột] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};
byte rowP [row] = {13, 12, 11, 10}; // các chân hàng của bàn phím
byte cộtP [cột] = {9, 8, 7, 6}; // chân cột của bàn phím
Bàn phím bàn phím = Bàn phím (makeKeymap (các nút), rowP, cộtP, hàng, cột); // tạo bàn phím
Servo myServo; //
void setup () {
Serial.begin (9600); myServo.attach (5); // gắn servo trên chân 9 vào đối tượng servo}
void loop () {
khóa char = pad.getKey (); // lấy char từ bàn phím if (key == '0') {myServo.write (11); Serial.println ("0"); chậm trễ (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); chậm trễ (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); chậm trễ (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); chậm trễ (15); }
if (key == '4')
{myServo.write (48); Serial.println ("4"); chậm trễ (15); }
if (key == '5')
{myServo.write (60); Serial.println ("5"); chậm trễ (15); }
if (key == '6')
{myServo.write (72); Serial.println ("6"); chậm trễ (15); }
if (key == '7')
{myServo.write (84); Serial.println ("7"); chậm trễ (15); }
if (key == '8')
{myServo.write (96); Serial.println ("8"); chậm trễ (15); }
if (key == '9')
{myServo.write (108); Serial.println ("9"); chậm trễ (15); }
if (key == '*')
{myServo.write (120); Serial.println ("*"); chậm trễ (15); }
if (key == '#')
{myServo.write (132); Serial.println ("#"); chậm trễ (15); }
if (key == 'A')
{myServo.write (146); Serial.println ("A"); chậm trễ (15); }
if (key == 'B')
{myServo.write (158); Serial.println ("B"); chậm trễ (15); }
if (key == 'C')
{myServo.write (170); Serial.println ("C"); chậm trễ (15); }
if (key == 'D')
{myServo.write (180); Serial.println ("D"); chậm trễ (15); }}