Bài 11: Điều khiển động cơ Servo bằng biến trở sử dụng Arduino

20 Tháng 05 2019 | Đăng bởi: Lực Nguyễn

 

Trong chuỗi bài viết khóa học lập trình Arduino cơ bản dành cho người mới nhập môn, trong bài viết hôm nay chúng ta sẽ đi vào tìm hiểu cấu tạo và nguyên lý hoạt động của biến trở.

Qua đó sẽ vận dụng biến trở để có thể điều khiển góc quay của servo, nếu các bạn chưa biết cách hoạt động của servo ra làm sao? Các bạn xem bài viết  để có thể hiểu hơn nhé.

Biến trở 

Biến trở là một linh kiện khá phổ biến trong thiết kế mạch điện tử, thường dùng để phân áp, phân dòng trong mạch.

Biến trở thường được ứng dụng trong các mạch điều chỉnh âm lượng hay là điều chỉnh ánh sáng của đèn...

 

Biến trở than

 

Cấu tạo

Thông thường có 3 dạng biến trở:

  • Biến trở tay quay và biến trở con chạy: Cuộn dây dẫn bằng hợp kim có điện trở xuất lớn Nikelin, Nicrom..., được quấn đều đặn dọc theo một lõi bằng sứ.

  • Biến trở than: Chạy trên một lớp than và được chỉnh bằng tay quay "3".

Nguyên lý hoạt động

 

Ví dụ : Khi có một nguồn điện đi vào (Vin), trong trường hợp núm vặn được xoay về hướng R1 thì lúc này điện trở sẽ nhỏ nhất và cường độ dòng điện sẽ cao nhất. Và ngược lại khi vặn về hướng R2 thì điện trở sẽ cao nhất và cường độ dòng điện sẽ giảm dần.

Sơ đồ đấu nối

Arduino Uno

Động cơ Servo SG90

5V

Dây màu đỏ

GND

Dây màu đen

D9

Dây màu vàng

 

 

Các linh kiện cần thiết cho dự án.

Code

#include <Servo.h> 
Servo myservo;
 
int potpin = 0;
int val;
 
void setup() { 
  myservo.attach(9); 
} 
 
void loop() { 
  val = analogRead(potpin);
  val = map(val, 0, 1023, 0, 179);
  myservo.write(val);
  delay(15);
}

Giải thích code

Hàm map()

Hàm map() dùng để chuyển đổi giá trị từ thang đo này sang một giá trị của thang đo khác.

Giá trị trả về của hàm map() luôn là một số nguyên.

Cú pháp:

map(val, A1, A2, B1, B2);

Trong đó:

  • val: Là giá trị cần chuyển đổi.

  • A1, A2: Là giới hạn trên và dưới của thang đo hiện tại.

  • B1, B2: là giới hạn trên và dưới của thang đo cần chuyển tới.

val = map(val, 0, 1023, 0, 179);

Trong bài viết này mình chuyển đổi giá trị điện áp 0 - 1023 (0 - 5V) và giá trị chuyển đổi 0 - 179 (tức là góc quay của Servo là 180 độ).

Lời kết

 

Tham gia cộng đồng Arduino KIT

  • Để nhận được nhiều kiến thức bổ ích, các bạn Đăng ký để nhận thông báo khi có bài viết mới nhé.

  • Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino.

Nếu các bạn thấy bài viết bổ ích nhớ LikeShare cho mọi người cùng học nhé.

Bài viết liên quan

Viết bình luận: