Điều khiển servo bằng PWM Arduino
Bài viết hôm nay xin giới thiệu với các bạn bài viết điều khiển servo RC bằng pwm. Ở các bài viết trước chúng ta đã tìm hiểu về cách điều khiển động cơ DC và AC Servo. Hôm nay chúng ta cùng nhau tìm hiểu cách điều khiển một loại động cơ thông dụng nửa là RC Servo bằng pwm.
Điều khiển động cơ RC servo bằng pwm
Bạn đang đọc: Điều khiển servo bằng PWM Arduino
[ button color = ” orange ” size = ” medium ” link = ” http://bblink.com/OMJ7Roo ” icon = ” ” target = ” false ” ] Download 5 mạch điều khiển Motor DC Pdf và mô phỏng [ / button ]
1. Tìm hiểu về động cơ servo
1.1 Động cơ RC servo là gì
Khác với những loại động cơ DC, AC servo trong công nghiệp sử dụng encoder để phản hồi vị trí. Động cơ servo là loại động cơ một chiều đơn thuần có cảm ứng phản hồi vị trí là một biến trở. Vị trí trong thực tiễn được so sánh với vị trí tiềm năng, bộ điều khiển sẽ dựa vào sai số này để biến hóa vị tri trong thực tiễn đúng với nhu yếu .Động cơ RC servo được sử dụng trong xác định bánh lái của thuyền, camera, cảm ứng và sử dụng thông dụng trong điều khiển góc quay những khớp của robot .>> > Xem thêm :
Điều khiển động cơ DC servo
Điều khiển động cơ AC servo hãng LS
Điều khiển động cơ AC servo Dorna hãng Tecorp
1.2 Cấu tạo động cơ RC servo
Động cơ servo gồm có 4 bộ phận : động cơ một chiều, hộp số, biến trở và mạch điều khiển .
Cấu tạo động cơ rc servo
+ Động cơ DC có vận tốc cao và moment thấp nên cần hộp số để giảm vận tốc và tăng moment giúp điều khiển tốt vị trí. Tốc độ sau khi qua hộp giảm tốc khoảng chừng 60 vòng / phút .
+ Biến trở được nối với hộp số hoặc trục của động cơ, nên khi động cơ quay thì biến trở cũng đồng thời quay theo. Biến trở quay sẽ ứng với động cơ quay theo một góc tuyệt đối so với vị trí ban đầu. Mạch điều khiển đọc điện áp từ biến trở và so sánh với điện áp của tín hiệu điều khiển. Ở một số động cơ rc servo có tích hợp thêm mạch cầu H để điều chỉnh động cơ quay theo chiều ngược lại khi động cơ quay qua vị trí mong muốn. Cho đến khi sai số giữa hai tín hiệu điện áp này bằng 0.
1.3 Nguyên lý điều khiển động cơ servo bằng pwm
+ Động cơ RC servo được điều khiển bằng cách cấp một chuỗi xung PWM. Tần số của xung điều khiển nên là 50 Hz, góc quay của động cơ nhờ vào vào độ rộng của xung điều khiển. Loại động cơ này có số lượng giới hạn về góc quay, góc quay tối đa là 180 độ .+ Cho ví dụ độ rộng xung 1 mS ứng với góc quay động cơ là 0 độ, độ rộng 1,5 mS ứng với góc quay là 90 độ và 2 mS ứng với góc quay 180 độ. Góc quay hoàn toàn có thể khác nhau so với những loại động cơ của những thương hiệu khác nhau .
Góc quay của động cơ phụ thuộc xung điều khiển
1.4 Kết nối động cơ Rc servo
Động cơ servo thường thì sẽ có 3 chân VCC, tín hiệu và chân GND. Màu sắc dây những chân của động cơ servo sẽ biến hóa tùy theo nhà phân phối. Tuy nhiên ta thấy hầu hết những chân của động cơ sẽ pháp luật theo sắc tố như sau .+ GND – Màu đen hoặc nâu, chân MASS cho động cơ và mạch điều khiển .+ Tín hiệu – Màu trắng hoặc vàng, chân ngỏ vào của tín hiệu điều khiển+ VCC – Chân cấp nguồn cho động cơ và mạch điều khiển, thường là 5V .
2. Điều khiển động cơ servo bằng PWM Arduino
2.1 Tại sao lựa chọn Arduino điều khiển servo RC
+ Như đã trình diễn ở trên, động cơ servo cần xung điều khiển PWM để hoạt động giải trí một cách đúng mực. Có nhiều cách để tạo xung điều khiển PWM, trong đó dùng vi điều khiển sẽ có nhiều ưu điểm hơn để điều khiển servo hiệu suất cao. Và Arduino là một sự lựa chọn tuyệt vời và hoàn hảo nhất. Với mã nguồn mở, giá tiền rẻ, những hàm tính năng dễ sử dụng .+ Phần mềm lập trình Arduino IDE cung ứng thư viện điều khiển Servo, hoàn toàn có thể sử dụng những hàm điều khiển servo thuận tiện .+ Trên mỗi board mạch Arduino có 1 số ít chân điều khiển PWM. Trên board Arduino UNO có 4 chân PWM có tần số 490 Hz và 2 chân PWM có tần số 980 Hz .+ Lưu ý khi sử dụng thư viện Servo cần sử dụng một số ít bộ timer bên trong Arduino, đơn cử là timer 1. Điều này gây trở ngại cho những thư viện khác cần sử dụng bộ timer tương tự như
2.2 Chọn nguồn cấp cho mạch
+ Động cơ SG90 sẽ hoạt động giải trí tốt với nguồn cung ứng với nguồn 5V cấp từ Arduino do moment yếu, dòng điện nhỏ .
Điều khiển động cơ servo G90 bằng arduino+ Tuy nhiên so với một số ít Servo có moment lớn như MG9995 hoặc khi có gắn thêm tải thì dòng điện hoàn toàn có thể lớn hơn dòng cấp tối đa của Arduino. Giống như 1 số ít loại động cơ khác, khi hoạt động giải trí hoàn toàn có thể sinh ra nhiễu trên đường dây cấp nguồn. Khi nhiễu trên đường dây cấp nguồn cho vi điều khiển và một số ít thiết bị khác sẽ dẫn đến sai số .Vì thế nên cấp nguồn ngoài cho động cơ servo, liên kết GND và chân tín hiệu với Arduino. Có thể sử dụng tụ 100 uF hoặc lớn hơn nối song song với nguồn cấp gần động cơ để giảm nhiễu .
điều khiển động cơ servo MG9995 bằng pwm
2.3 Lập trình điều khiển servo RC bằng PWM
a. Điều khiển servo quay từ 0 đến 180 độ và ngược lại
+ Kết nối mạch không hề đơn thuần hơn, trong ví dụ này sử dụng chân 9 là chân tín hiệu điều khiển servo. Chân 9 là một trong 6 chân có năng lực phát xung PWM, những chân phát xung sẽ có ký hiệu là dấu “ ~ ” .
Điều khiển động cơ servo RC bằng pwm
+ Hãy xem code ví dụ trong mục File/ Examples/ Servo/ Sweep
Trong ví dụ này điều khiển động cơ servo quay một 180 độ sau đó dừng 2 s và quay trở về vị trí bắt đầu 0 độ. Mỗi bước quay là 1 độ, thời hạn chờ để động cơ đạt đến vị trí điều khiển là 15 mS. Do thời hạn chờ rất bé, nên ta nhìn thấy động cơ quay liên tục .
***************************************************
/ * Sweep – Điều khiển động cơ servo bằng arduino
by BARRAGAN
* /
#include
Servo myservo ; / / Tạo đối tượng người tiêu dùng tên myservoint pos = 0 ; / / Tạo biến nhận giá trị góc quayvoid setup ( ) {myservo.attach ( 9,500,2500 ) ; / / Chân 9, Chu kỳ Min, Max}void loop ( ) {/ / Điều khiển servo quay một góc 180 độfor ( pos = 0 ; pos < = 180 ; pos + = 1 ) { / / Biến pos sẽ chạy từ 0-180myservo.write ( pos ) ; / / ra lệnh servo quay một góc “ pos ”delay ( 15 ) ; / / Chờ 15 ms để động cơ đạt đến vị trí pos}
delay(500); //Khi quay đến vị trí góc 180 độ dừng 2s
/ / Điều khiển servo quay về vị trí 0 độfor ( pos = 180 ; pos > = 0 ; pos – = 1 ) { / / Biến pos sẽ chạy từ 180 về 0myservo.write ( pos ) ;delay ( 15 ) ;}delay ( 500 ) ; / / Khi quay đến vị trí góc 0 độ dừng 2 s}
***************************************************
+ Lưu ý : chương trình định nghĩa một đối tượng người tiêu dùng tên myservo để đại diện thay mặt cho động cơ servo cần điều khiển, nếu điều khiển nhiều servo thì mỗi động cơ cần định nghĩa một đối tượng người tiêu dùng riêng .Video tìm hiểu thêm mô phỏng điều khiển servo bằng pwm trên ứng dụng ProteusVideo thực tiễn điều khiển động cơ servo bằng arduino
b. Điều khiển động cơ servo xoay theo biến trở
+ Ở ví dụ này ta sẽ dùng Arduino đọc giá trị biến trở điều khiển góc quay của động cơ servo bằng PWM. Động cơ sẽ quay theo biến trở .
Điều khiển servo bằng arduino
***************************************************
/ *Điều khiển vị trí động cơ servo bằng biến trở arduino
by Michal Rinott
http://www.arduino.cc/en/Tutorial/Knob* /
#include
Servo myservo ; / / Tạo đối tượng người tiêu dùng tên myservoint potpin = 2 ; / / chân Analog 0 liên kết biến trởint val ; / / biến đọc giá trị chân Analogvoid setup ( ) {myservo.attach ( 9,500,2500 ) ; / / Chân 9, Min, Max}void loop ( ) {val = analogRead ( potpin ) ; / / Đọc giá trị biến trở 0 – 1023val = map ( val, 0, 1023, 0, 180 ) ; / / quy đổi giá trị val về 0-180myservo.write ( val ) ; / / ra lệnh servo quay một góc “ var ”delay ( 15 ) ; / / chờ 15 mS để động cơ đạt đến vị trí “ var ”}
***************************************************
Video mô phỏng trên chương trình ứng dụng ProteusVideo trong thực tiễn điều khiển động cơ quay theo biến trở>> > Xem thêm :
Động cơ servo là gì?
Điều khiển động cơ DC servo
Nơi mua Arduino, mạch cầu H giá rẻ mà chất lượng?
Với giá cả cạnh tranh đối đầu trên những sàn thương mại điện tử được nhiều người sử dụng nhìn nhận cao. Giao hàng tận nơi, với chủ trương hoàn trả tiền nếu loại sản phẩm bị lỗi nên người mua hoàn toàn có thể yên tâm đặt sử dụng những mẫu sản phẩm của chúng tôi .
Xem giá bán Arduino giá cạnh tranh:
+ Giao hàng nhanh+ Đổi hàng hoặc hoàn tiền trong vong 3 ngày .+ Sản phẩm được nhiều khác hàng yêu thích+ Giá rẻ giật mình chỉ từ 55.000 với arduino chíp dán
Xem giá bán động cơ RC Servo giá chỉ từ 16.00 VNĐ:
Tài liệu tìm hiểu thêm
Servo motor with Arduino – DroneBot WorkShopHow to control servos using Arduino – How It Work
Source: https://baoduongdieuhoa24h.com
Category: Điện Tử