Đã được đăng vào 15/06/2020 @ 16:31
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 Điều khiển động cơ RC Servo sử dụng Arduino để có thể hiểu hơn nhé.
Xem thêm:
- Động cơ RC Servo là gì?
- Arduino cơ bản 10: Điều khiển động cơ RC Servo sử dụng Arduino
- Tài liệu động cơ bước và mạch điều khiển động cơ bước
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…
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.
- Board Arduino Uno
- Động cơ Servo SG90
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 độ).
Nguồn: arduinokit.vn
Để lại một bình luận