Như đã thảo luận trước đó, Arduino Due là một bo mạch dựa trên bộ điều khiển ARM được thiết kế cho các kỹ sư điện tử và những người yêu thích. Bảng DUE này có thể được sử dụng để chế tạo máy CNC, máy in 3D, cánh tay robot, v.v… Tất cả các dự án này đều có một tính năng chung là Kiểm soát vị trí. Bất kỳ dự án nào trong số này đều cần độ chính xác đối với vị trí của chúng. Các vị trí chính xác trong các máy này có thể đạt được nhờ Động cơ Servo. Trong phần này, chúng ta sẽ điều khiển vị trí của Động cơ Servo bằng Arduino Due. Chúng tôi đã đề cập đến Giao diện động cơ Servo với Arduino Uno và Giao diện động cơ Servo với Vi điều khiển 8051.
Động cơ Servo:
Động cơ Servo được biết đến với chuyển động hoặc vị trí trục chính xác của chúng. Chúng không được đề xuất cho các ứng dụng tốc độ cao. Chúng được đề xuất cho các ứng dụng tốc độ thấp, mô-men xoắn trung bình và vị trí chính xác. Những động cơ này được sử dụng trong các máy cánh tay robot, hệ thống điều khiển và điều khiển chuyến bay. Động cơ servo cũng được sử dụng trong một số máy in và máy fax.
Động cơ servo có sẵn ở các hình dạng và kích thước khác nhau. Chúng tôi sẽ sử dụng Động cơ Servo SG90 trong hướng dẫn này. SG90 là động cơ servo 180 độ. Vì vậy, với servo này, chúng ta có thể định vị trục từ 0 đến 180 độ.
Một động cơ Servo chủ yếu có ba dây, một dây dùng cho điện áp dương, một dây nối đất và dây cuối cùng để thiết lập vị trí. Dây ĐỎ được kết nối với nguồn, dây Nâu được nối với đất và dây VÀNG (hoặc TRẮNG) được kết nối với tín hiệu.
Động cơ Servo là sự kết hợp của động cơ DC, hệ thống điều khiển vị trí và bánh răng. Trong servo, chúng ta có một hệ thống điều khiển lấy tín hiệu PWM từ chân tín hiệu. Nó giải mã tín hiệu và lấy tỷ lệ nhiệm vụ từ nó. Sau đó, nó so sánh tỷ lệ với các giá trị vị trí được xác định trước. Nếu có sự khác biệt trong các giá trị, nó sẽ điều chỉnh vị trí của servo cho phù hợp. Vì vậy, vị trí trục của động cơ servo dựa trên tỷ lệ nhiệm vụ của tín hiệu PWM với chân SIGNAL.
Tần số của tín hiệu PWM (Điều chế độ rộng xung) có thể thay đổi tùy theo loại động cơ servo. Điều quan trọng ở đây là TỶ LỆ NHIỆM VỤ của tín hiệu PWM. Kiểm tra điều này cho PWM với Arduino Due. Tuy nhiên, trong trường hợp này, chúng ta thậm chí không cần phải lo lắng về việc lựa chọn Tỷ lệ nhiệm vụ. Trong Arduino chúng ta có một chức năng đặc biệt; khi gọi nó, chúng tôi có thể điều chỉnh vị trí của servo, chỉ bằng cách nêu góc. Chúng tôi sẽ nói về điều đó trong Phần làm việc bên dưới.
Trước khi kết nối động cơ Servo với Arduino đến hạn, bạn có thể kiểm tra servo của mình với sự trợ giúp của Mạch kiểm tra động cơ Servo này. Cũng kiểm tra các dự án này để Điều khiển Servo bằng Cảm biến linh hoạt hoặc Cảm biến lực.
Các thành phần:
Phần cứng: Arduino Do, bộ nguồn (5v), động cơ Servo.
Phần mềm: Arduino hàng đêm, tải xuống từ liên kết bên dưới (https://www.arduino.cc/en/Main/Software)
Để biết chi tiết về Cách tải xuống và cài đặt phần mềm này, hãy truy cập hướng dẫn đầu tiên Bắt đầu với Arduino Do.
Sơ đồ mạch và giải thích hoạt động:
Như đã nói trước đó trong ARDUINO, chúng tôi có các thư viện được xác định trước, các thư viện này sẽ đặt tần suất và tỷ lệ nhiệm vụ cho phù hợp, khi tệp tiêu đề được gọi hoặc bao gồm. Trong ARDUINO, chúng ta chỉ cần nêu vị trí của servo cần thiết và DUE tạo ra tín hiệu PWM thích hợp cho servo. Những điều chúng ta cần làm để có được vị trí chính xác của servo là,
#include
Servo myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (cần_mặt_ góc);
Tệp tiêu đề “#include
Thứ hai, một tên sẽ được chọn cho servo bằng cách sử dụng “Servo myservo” , ở đây myservo là tên được chọn, vì vậy trong khi viết cho vị trí, chúng tôi sẽ sử dụng tên này, tính năng này rất hữu ích khi chúng tôi có nhiều servo để điều khiển, chúng tôi có thể kiểm soát tối đa 12 servo bằng cách này.
Với Arduino Do có 12 kênh PWM, chúng ta cần cho DUE biết chân tín hiệu của servo được kết nối ở đâu hoặc nơi cần tạo tín hiệu PWM. Để làm điều này, chúng tôi có “myservo.attach (2);” , ở đây chúng tôi đang nói với DUE rằng chúng tôi đã kết nối chân tín hiệu của servo tại PIN2.
Tất cả việc còn lại là thiết lập vị trí, chúng ta sẽ đặt vị trí của servo bằng cách sử dụng “ myservo.write (45);” , bằng lệnh này, tay servo di chuyển 45 độ. Nếu chúng ta thay đổi '45' thành '175', trục servo sẽ góc thành 175 độ và vẫn ở đó. Sau đó, bất cứ khi nào chúng ta cần thay đổi vị trí của servo, chúng ta chỉ cần gọi lệnh “ myservo.write (need_position_angle);” .
Trong chương trình, chúng ta sẽ tăng và giảm các góc bằng cách sử dụng các vòng lặp. Vì vậy, servo quét từ 0 đến 180, sau đó từ 180 đến 0, v.v. Các Servo Motor điều khiển bằng Arduino Do được giải thích tốt nhất trong từng bước của mã C xuống dưới đây.