Mục lục:

Định vị Servo bằng bàn phím: 3 bước
Định vị Servo bằng bàn phím: 3 bước

Video: Định vị Servo bằng bàn phím: 3 bước

Video: Định vị Servo bằng bàn phím: 3 bước
Video: [SERVO] Bài 3: Điều khiển Servo học vị trí và chạy, dừng đa điểm PLC – MR J4 B - HMI. Positioning 2024, Tháng Chín
Anonim
Định vị Servo bằng bàn phím
Định vị Servo bằng bàn phím

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

Nối bàn phím
Nối bàn phím
Nối bàn phím
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

  1. Kết nối chân 5V với thanh nguồn (màu đỏ)
  2. 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

Thêm Micro Servo
Thêm Micro Servo
Thêm Micro Servo
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); }}

Đề xuất: