0981676163Miền Nam
0984601144Miền Bắc

Cách Điều Khiển Động Cơ Servo Và Nguyên Tắc Điều Khiển Động Cơ DC Servo

02 thg 2 2024 16:19

Bạn có bao giờ tự hỏi cách những cánh tay robot có thể di chuyển chính xác đến từng milimet hay những cánh quạt máy bay có thể quay đều đặn không? Câu trả lời nằm ở động cơ servo, một loại động cơ điện có khả năng điều khiển vị trí, tốc độ và mô-men xoắn.

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về cách điều khiển động cơ servo, bao gồm cả nguyên tắc điều khiển động cơ servo DC. Chúng ta cũng sẽ tìm hiểu về các loại động cơ servo, các ứng dụng của động cơ servo và những lưu ý khi vận hành servo motor.

1. Khái niệm motor servo là gì?

Trong công nghiệp, động cơ servo motor chính là loại cảm biến phản hồi chính xác về vị trí. Do đó, khi điều khiển động cơ servo thường là một bộ code được mã hóa có độ chính xác cao. Trong khi đó, ở các động cơ RC hoặc motor nhỏ hơn, cảm biến vị trí thường dùng là một chiết áp rất đơn giản. 

Vị trí thực tế đã được tìm thấy bởi các thiết bị điều khiển này sẽ được đưa trở lại bộ phát hiện lỗi nơi mà nó được so sánh đối với vị trí đích. Sau đó, theo các lỗi, bộ điều khiển sẽ sửa vị trí thực tế của động cơ để cho nó khớp với vị trí đích.

Động cơ servo motor chính là cảm biến phản hồi chính xác về vị trí

Động cơ servo motor chính là cảm biến phản hồi chính xác về vị trí

Động cơ thường sử dụng bộ truyền động có kích thước nhỏ, chúng được sử dụng để thực hành điều khiển xe ô tô, tàu thuyền, máy bay,... Chúng cũng được áp dụng bởi các sinh viên chuyên ngành kỹ thuật dùng để chế tạo robot, tạo ra cánh tay của robot, robot lấy cảm hứng từ nguyên liệu sinh học, robot hình người,...

2. Nguyên tắc điều khiển động cơ DC servo

Bên trong một động cơ servo cổ điển sẽ có 4 thành phần chính, đó là động cơ DC, hộp số, con biến trở cũng như mạch điều khiển. Động cơ DC có tốc độ tương đối cao và mô men xoắn thấp, nhưng đồng thời hộp số lại giảm tốc độ xuống còn khoảng 60 vòng/ phút, đồng thời gia tăng mô men xoắn lên.

Chiết áp sẽ được gắn trên bánh răng cuối cùng hoặc trên trục đầu ra của nó, do đó động cơ cũng quay theo chiết áp.Từ đó, tạo ra một điện áp liên quan rất lớn đến góc tuyệt đối của cái trục đầu ra. 

Trong mạch điều khiển, điện áp của bộ chiết áp này được đem so sánh với điện áp đến từ ngay đường tín hiệu. Nếu cần, bộ điều khiển này sẽ kích hoạt mạch cầu H nhằm tích hợp cho phép động cơ của máy quay theo 2 hướng cho đến khi cả 2 tín hiệu đạt được mức chênh lệch giữa chúng bằng không.

Một động cơ servo thông thường được điều khiển bằng cách gửi 1 loạt các xung chạy qua đường tín hiệu. Tần số của tín hiệu của điều khiển lúc này phải là 50Hz hoặc 1 chu kỳ xung được tính là 20ms. Độ rộng của xung nhằm giúp xác định vị trí góc của servo cũng như các loại servo này thường có thể xoay được tới 180 độ (chúng có giới hạn vật lý mỗi khi di chuyển).

Nói chung, các xung có được tại 1ms tương ứng với vị trí là 0 độ và 1,5ms 90 độ và 2ms 180 độ. Mặc dù thời gian tối thiểu và thời gian tối đa của các xung đôi khi còn có thể thay đổi được theo các loại khác nhau nhưng chúng có thể là 0,5ms cho 0 độ và 2,5ms ở tại vị trí 180 độ.

3. Sơ đồ mạch điều khiển servo motor

Sơ đồ đấu nối mạch điều khiển servo gồm có:

Arduino Uno

Động cơ Servo SG90

5V

Dây điện màu đỏ

GND

Dây điện màu đen

D9

Dây điện màu vàng

Khi có 1 nguồn điện đi vào bên trong động cơ (Vin), trong trường hợp núm vặn cũng đượ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 của động cơ sẽ cao nhất.

Và ngược lại, khi các bạn vặn về hướng R2 thì điện trở sẽ đạt giá trị cao nhất và cường độ dòng điện của nó sẽ giảm dần.

Sơ đồ đấu nối mạch điều khiển servo motor

Sơ đồ đấu nối mạch điều khiển servo motor

4. Điều khiển động cơ servo dùng Code Arduino

Chúng ta hãy tiến hành kiểm tra những thông tin ở trên và làm một ví dụ thực tế về cách điều khiển một servo motor cổ điển bằng Arduino. Sử dụng MG996R đây là 1 động cơ servo có mô men xoắn cao và có bánh răng kim loại cùng với mô men xoắn đạt được 10 kg-cm. Mô-men xoắn cao thì sẽ có dòng điện ổn định của servo là 2.5A. Dòng điện sẽ chạy từ 500mA 900mA và điện áp cũng hoạt động từ 4,8 7,2V.

Xếp hạng hiện tại còn cho thấy rằng động cơ không thể tiến hành kết nối trực tiếp servo này vào với Arduino, nên chúng ta cần phải sử dụng đến nguồn điện riêng cho nó. Đây là sơ đồ mạch điển hình cho ví dụ này.

Điều khiển động cơ servo dùng Code Arduino

Điều khiển động cơ servo dùng Code Arduino

Chúng ta chỉ cần tiến hành kết nối chân điều khiển của servo motor với bất kỳ chân kỹ thuật số nào của bộ phận board Arduino, từ đó sẽ kết nối Ground và dây dương vào nguồn điện 5V bên ngoài, đồng thời kết nối phần ground của Arduino vào chân GND của servo.

Bây giờ chúng ta hãy nhìn vào code Arduino để tiến hành điều khiển động cơ servo. Code rất đơn giản, chỉ cần xác định được chân mà servo motor được kết nối, xác định chân đó chính là đầu ra và trong phần vòng lặp sẽ tạo ra các xung với chu kỳ và tần số cụ thể giống như chúng ta đã giải thích ở phần trên.

Sau một số thử nghiệm, chúng ta có thể đưa ra các giá trị trong khoảng thời gian các xung hoạt động bên trong servo. Các xung có thời lượng khoảng 0,6ms tương ứng với vị trí là 0 độ và 1,45ms cho đến 90 độ và 2,3ms.

Tiếp theo, kết nối một thiết bị đo vạn năng cho nó nối tiếp với servo để tiến hành kiểm tra dòng điện. Mức dòng điện tối đa mà chúng ta nhận thấy là lên tới 0,63A, bởi vì đây không phải là bản gốc của TowerPro MG996R, mà chỉ là bản sao rẻ hơn, cho nên rõ ràng chúng sẽ có hiệu suất kém hơn.

Tuy nhiên, chúng ta hãy sử dụng 1 cách thuận tiện hơn để có thể điều khiển các servo bằng Arduino. Đó là sử dụng hệ thống thư viện Arduino Arduino. Ở đây, bạn chỉ cần nạp thư viện, sau đó xác định đối tượng servo rồi sử dụng hàm attach để xác định chân mà servo motor được kết nối cũng như xác định được giá trị tối thiểu cũng như giá trị tối đa của thời lượng xung. 

Sau đó, chúng ta hãy sử dụng hàm write để tiến hành đặt vị trí của servo từ 0 180 độ. Với thư viện như trên, chúng ta có thể điều khiển cùng 1 lúc tới 12 48 servo bằng cách sử dụng bộ phận board Arduino Mega.

5. Trình điều khiển PWM của motor Servo Arduino và PCA9685

Ngoài ra, người ta còn sử dụng một cách khác để điều khiển được motor servo bằng Arduino, đó là sử dụng trình điều khiển động cơ servo PCA9685. Đây là trình điều khiển servo bao gồm 16 kênh 12 bit, có thể giao tiếp với Arduino bằng bus I2C. Nó có 1 chiếc đồng hồ tích hợp để có thể chạy được cả 16 động cơ cùng lúc, hoặc hoạt động độc lập với Arduino.

Chúng ta có thể xâu chuỗi hoạt động lên tới 62 trình điều khiển này ngay trên cùng một bus I2C. Vì vậy, về mặt lý thuyết, con người có thể điều khiển được tới 992 động cơ mà chỉ dùng 2 chân I2C từ board Arduino. Còn 6 chân chọn địa chỉ cũng sẽ được sử dụng để cài đặt địa chỉ I2C khác nhau cho mỗi trình nhằm điều khiển bổ sung. Chúng ta chỉ cần kết nối với các miếng hàn dựa theo bảng này.

Dưới đây là sơ đồ mạch và chúng ta sẽ nhận thấy rằng, động cơ luôn cần một nguồn cung cấp điện dành riêng cho các servo. 

Trình điều khiển PWM của motor Servo Arduino và PCA9685

Trình điều khiển PWM của motor Servo Arduino và PCA9685

Các linh kiện cần thiết sử dụng:

  • Động cơ motor Servo MG996R
  • Trình điều khiển motor Servo PCA9685 PWM
  • Board Arduino
  • Nguồn cung cấp điện cho động cơ 5V6A DC

Bây giờ hãy kiểm tra code Arduino. Để vận hành được trình điều khiển servo này, chúng ta sẽ sử dụng thư viện PCA9685, bạn có thể tải xuống từ GitHub.

Code Servo Arduino PCA9685

Trước tiên, các bạn cần bao quát, khoanh vùng các thư viện và xác định chính xác đối tượng PCA9685. Sau đó, sử dụng đối tượng Servo Evaluator để xác định chu kỳ xung hoặc tính đầu ra PWM của chương trình điều khiển. Lưu ý rằng các đầu ra thông thường là 12 bit, độ phân giải sẽ được 4096 bước. 

Vì vậy, thời gian xung tối thiểu của động cơ là 0,5ms hoặc 0 độ, chúng sẽ tương ứng với 102 bước và thời lượng xung tối đa là 2,5ms hoặc 180 độ ở vị trí 512 bước. Như đã giải thích ở trước đó, các giá trị này sẽ được tự động điều chỉnh tùy theo động cơ servo của bạn. Trong trường hợp servo cò giá trị từ 102 470 thì sẽ tương ứng với vị trí từ 0 180 độ.

Trong phần thiết lập mạch điều khiển, chúng ta cần xác định được tốc độ xung I2C, đặt địa chỉ của trình điều khiển và cuối cùng là đặt tần số thành 50Hz. Trong phần vòng lặp, bạn hãy sử dụng các hàm set Channel PWM và pwm For Angle, chúng ta chỉ cần cài đặt servo theo góc mà mình mong muốn.

Khi đã kết nối 1 servo thứ 2 cùng với trình điều khiển thì chúng sẽ không ở vị trí giống như ban đầu. Bởi vì các động cơ mà bạn đang sử dụng chỉ là bản sao rẻ tiền và chúng hoàn toàn không đáng tin cậy. 

Tuy nhiên, các bạn cũng đừng lo lắng, đây không phải là vấn đề lớn vì ngoài việc sử dụng phiên bản Servo Evaluator, chúng ta còn có thể đặt thêm các cài đặt đầu ra khác nhau dành cho mỗi servo. Chúng ta cũng có thể tự mình điều chỉnh vị trí 90 độ trong trường hợp động cơ không bắt đầu ở giữa. Theo cách đó, tất cả các servo motor sẽ hoạt động giống y như nhau và vị trí góc cũng chính xác hơn.

Video cấu hình và các loại AC Servo

6. Hộp số giảm tốc motor servo

Video Motor Giảm Tốc IRV 140w 250w 60w 370w, Trục ra Vuông Góc Trục Vào

7.Các loại động cơ servo

Động cơ servo là loại động cơ điện có khả năng điều khiển vị trí, tốc độ và mô-men xoắn. Động cơ servo được sử dụng trong nhiều ứng dụng khác nhau, chẳng hạn như điều khiển máy móc, robot, ô tô, máy bay, thiết bị điện tử,...

Có nhiều loại động cơ servo khác nhau, mỗi loại có đặc điểm và ứng dụng riêng. Các loại động cơ servo phổ biến bao gồm:

  • Động cơ servo có hộp số

Động cơ servo có hộp số là loại động cơ servo có gắn thêm hộp số để giảm tốc độ và tăng mô-men xoắn. Động cơ servo có hộp số được sử dụng trong các ứng dụng yêu cầu lực lớn, chẳng hạn như máy móc công nghiệp, robot.

  • Động cơ servo không có hộp số

Động cơ servo không có hộp số là loại động cơ servo không có gắn thêm hộp số. Động cơ servo không có hộp số có tốc độ cao hơn động cơ servo có hộp số, nhưng mô-men xoắn thấp hơn. Động cơ servo không có hộp số được sử dụng trong các ứng dụng yêu cầu tốc độ cao, chẳng hạn như ô tô, máy bay, thiết bị điện tử.

  • Động cơ servo có encoder

Động cơ servo có encoder là loại động cơ servo có gắn thêm encoder để đo vị trí của trục quay. Động cơ servo có encoder được sử dụng trong các ứng dụng yêu cầu độ chính xác cao, chẳng hạn như robot, thiết bị điện tử.

  • Động cơ servo không có encoder

Động cơ servo không có encoder là loại động cơ servo không có gắn thêm encoder. Động cơ servo không có encoder có giá thành thấp hơn động cơ servo có encoder, nhưng độ chính xác thấp hơn. Động cơ servo không có encoder được sử dụng trong các ứng dụng không yêu cầu độ chính xác cao, chẳng hạn như đồ chơi, mô hình.

8. Các ứng dụng của động cơ servo

Động cơ servo được sử dụng trong nhiều ứng dụng khác nhau, chẳng hạn như:

  • Điều khiển máy móc

Động cơ servo được sử dụng để điều khiển các máy móc công nghiệp, chẳng hạn như máy CNC, máy đóng gói, máy in,... Động cơ servo giúp điều khiển các máy móc hoạt động chính xác và ổn định.

  • Robot

Động cơ servo được sử dụng để điều khiển các chi tiết chuyển động của robot. Động cơ servo giúp robot di chuyển chính xác và linh hoạt.

  • Ô tô

Động cơ servo được sử dụng trong các hệ thống lái xe tự động, hệ thống treo, hệ thống phanh,... Động cơ servo giúp ô tô vận hành an toàn và hiệu quả.

  • Máy bay

Động cơ servo được sử dụng trong các hệ thống điều khiển bay của máy bay. Động cơ servo giúp máy bay bay ổn định và chính xác.

  • Thiết bị điện tử

Động cơ servo được sử dụng trong các thiết bị điện tử, chẳng hạn như camera, máy ảnh, máy quay,... Động cơ servo giúp các thiết bị điện tử hoạt động chính xác và ổn định.

9. Các kỹ thuật điều khiển động cơ servo

Có nhiều kỹ thuật điều khiển động cơ servo khác nhau, mỗi kỹ thuật có ưu điểm và nhược điểm riêng. Các kỹ thuật điều khiển động cơ servo phổ biến bao gồm:

  • Điều khiển vòng hở

Điều khiển vòng hở là kỹ thuật điều khiển động cơ servo đơn giản nhất. Trong kỹ thuật này, vị trí của động cơ servo được điều khiển bằng cách gửi tín hiệu xung có độ rộng thay đổi (PWM) đến động cơ. Độ rộng xung PWM càng lớn thì tốc độ quay của động cơ càng lớn.

Điều khiển vòng hở có ưu điểm là đơn giản, dễ thực hiện và chi phí thấp. Tuy nhiên, kỹ thuật này có nhược điểm là độ chính xác thấp, động cơ servo có thể bị lệch vị trí.

  • Điều khiển vòng kín

Điều khiển vòng kín là kỹ thuật điều khiển động cơ servo chính xác hơn so với điều khiển vòng hở. Trong kỹ thuật này, vị trí thực tế của động cơ servo được đo bằng encoder và so sánh với vị trí đích. Sự khác biệt giữa vị trí thực tế và vị trí đích được sử dụng để điều chỉnh tín hiệu PWM đến động cơ.

Điều khiển vòng kín có ưu điểm là độ chính xác cao, động cơ servo có thể duy trì vị trí chính xác. Tuy nhiên, kỹ thuật này phức tạp hơn và chi phí cao hơn

Kết luận

Chốt lại, thế giới của điều khiển động cơ Servo rộng lớn và thú vị, phải không nào? Từ những robot tí hon đến các dự án DIY sáng tạo, Servo luôn mang đến khả năng biến ý tưởng thành chuyển động thực sự. Dù bạn là người mới bắt đầu hay đã quen thuộc, đừng ngại khám phá và trải nghiệm điều khiển Servo. Biết đâu bạn sẽ tạo ra được những điều tuyệt vời đấy!

Nhớ nhé, hành trình học hỏi luôn vui hơn khi có bạn đồng hành. Nếu bạn có bất kỳ câu hỏi nào về Servo, hãy cứ thoải mái chia sẻ. Chúng tôi luôn sẵn sàng hỗ trợ bạn trên con đường chinh phục thế giới của những chuyển động chính xác và linh hoạt này!

Nội Dung Có Thể Bạn Quan Tâm:

7.664 reviews

Tin tức liên quan

Bảng Tra Công Suất Motor 3 Pha, 1 Pha Chi Tiết 02/2024
Top Phớt Máy Bơm - Phớt Bơm Giá Tốt, Siêu Bền Bán Chạy Nhất
Top Motor 12V Không Chổi Than Chế Quạt Giá Tốt, Siêu Bền, Bán Chạy Nhất
Motor Cấp Thức Ăn Tự Động Cho Gà, Vịt, Lợn Giá Rẻ, Bán Chạy Nhất Việt nam
Ly Hợp Thắng Từ Là Gì? Nguyên Lý Hoạt Động Của Ly Hợp Phanh Từ