Servo: cách sử dụng động cơ servo với Arduino

servo, động cơ servo

Nếu bạn muốn sử dụng động cơ servo, hoặc servo, Với Arduino, trong bài viết này, bạn sẽ tìm hiểu những gì bạn cần để bắt đầu. Chúng tôi đã thấy trong các bài viết khác những gì cần thiết để sử dụng động cơ điện, động cơ bướcvà các khái niệm khác cần thiết để hiểu hoạt động của loại thiết bị này, chẳng hạn như bài viết trên PWM.

Bây giờ, bạn có thể thêm một thành phần điện tử mới khác vào danh sách thiết bị đã phân tích và bạn có thể đi tích hợp các dự án DIY của bạn để thêm chức năng mới.

Servo là gì?

servo

Un động cơ servo, hay đơn giản là servo, là một động cơ điện tử có những điểm tương đồng với động cơ DC thông thường, nhưng với một số yếu tố khiến chúng trở nên đặc biệt. Trong trường hợp này, nó có khả năng giữ một vị trí được chỉ định, điều mà động cơ điện không cho phép.

Mặt khác, servo cũng có thể kiểm soát chính xác tốc độ quay, nhờ một loạt bánh răng bên trong và một hệ thống cho phép điều khiển tốt hơn nhiều so với những loại động cơ khác.

Những tính năng này đặc biệt thú vị đối với ứng dụng robot hoặc cho các thiết bị khác cần thiết để điều khiển chuyển động và vị trí, chẳng hạn như máy in hoặc ô tô được điều khiển từ xa. Trong loại ô tô điều khiển bằng sóng vô tuyến này có một động cơ thông thường để dẫn động ô tô và một bộ trợ lực để lái, có thể điều khiển rẽ chính xác.

Sự khác biệt giữa động cơ bước và động cơ servo

nema 17

Nếu bạn tự hỏi sự khác biệt giữa động cơ servo và động cơ bước, sự thật là chúng có thể bị nhầm lẫn, vì trong động cơ bước, hoặc bước quay, vòng quay cũng có thể được điều khiển khá chính xác và các ứng dụng rất giống với servo. Thay vào đó, có một số khác biệt.

Và đó là động cơ servo thường sử dụng nam châm đất hiếm, trong khi động cơ bước sử dụng nam châm rẻ hơn và thông thường hơn. Do đó, một servo có thể đạt được sự phát triển mô-men xoắn cao hơn, mặc dù vẫn nhỏ gọn. Do đó, lực quay sẽ rất cao.

Đặc tính kỹ thuật

Bất cứ khi nào bạn mua một servo, bạn nên tham khảo bảng kỹ thuật hoặc bảng dữ liệu của nó. Bằng cách đó, bạn sẽ đảm bảo đặc tính kỹ thuật nó có, nhưng cũng có giới hạn mà bạn có thể chịu, chẳng hạn như điện áp, cường độ, tải tối đa, mô-men xoắn, v.v. Hãy nhớ rằng mỗi mô hình có thể khá khác nhau.

Ví dụ: nếu bạn nhìn vào một trong những loại phổ biến nhất, Micro Servo 9G SG90 từ công ty Tower Pro nổi tiếng, thì bạn sẽ có một số đặc điểm rất đặc biệt, mặc dù lập trình và kết nối của các mô hình ít nhiều giống nhau và mọi thứ được nói ở đây đều hữu ích cho bất kỳ ai.

Trong trường hợp của mô hình này, nó là một động cơ chất lượng cao, với góc quay cho phép quét từ -90 đến 90º, có nghĩa là, tổng số lần quay là 180º. Quyết tâm mà bạn có thể đạt được là rất cao, vì vậy bạn sẽ có thể thăng tiến từng chút một. Ví dụ, với các giới hạn tín hiệu PWM của Arduino UNO, bạn thậm chí có thể được thăng tiến từ lớp này sang lớp khác.

Tương tự như vậy, tín hiệu PWM cũng sẽ áp đặt một giới hạn khác và đó là số lần mỗi vị trí có thể thay đổi trên một đơn vị thời gian. Ví dụ, vì các xung hoạt động với từ 1 đến 2 ms và với Khoảng thời gian 20 mili giây (50Hz), sau đó servo có thể di chuyển 20 ms một lần.

Ngoài ra, nó sẽ có trọng lượng 9 gram và, mặc dù trọng lượng và kích thước nhỏ gọn đó, nó có thể phát triển một mô-men xoắn hoặc mô-men xoắn 1.8 kg / cm với 4.8v. Đó là nhờ bộ bánh răng POM của nó.

Cuối cùng, bạn đã biết rằng, tùy thuộc vào những gì bạn muốn đạt được, bạn sẽ phải chọn một hoặc một mô hình khác, để nó có các tính năng cần thiết cho dự án của bạn. Có nghĩa là, không giống như việc bạn muốn một động cơ di chuyển một tải X, hơn một tải cho XX ...

Mua servo ở đâu

động cơ servo

Nếu bạn muốn bắt đầu sử dụng loại động cơ servo này, bạn có thể tìm thấy nó giá rẻ ở nhiều cửa hàng chuyên dụng và bạn cũng có thể mua trực tuyến tại Amazon. Ví dụ, đây là một số ví dụ về Sản phẩm khuyến cáo điều đó có thể khiến bạn quan tâm:

Tất cả chúng đều có góc xoắn khá tốt, nhưng về cơ bản nó khác nhau về mômen xoắn mà mỗi loại có thể chịu được. Tôi đã bao gồm ba mô hình khác nhau. Trước đây, và rẻ hơn, có thể đủ cho hầu hết các ứng dụng. Nhưng nếu bạn cần một cái có sức mạnh lớn hơn cho các ứng dụng khác, bạn có 25 và 35, đã khá đáng chú ý ...

Tích hợp với Arduino

arduino servo

Như bạn có thể thấy trong hình trên, servo kết nối rất dễ dàng sang Arduino. Nó chỉ có ba loại cáp, bạn có thể kết nối theo cách này:

  • Màu đỏ với 5V
  • Đen với GND
  • Màu vàng với chân Arduino PWM, trong trường hợp này là -9.

Để lập trình một bản phác thảo để bắt đầu sử dụng các loại động cơ này, bạn có một số tùy chọn. Nhưng, trước hết, để bắt đầu, bạn phải thêm thư viện Arduino IDE để điều khiển loại động cơ servo này:

  1. Mở Arduino IDE.
  2. Đi tới Chương trình.
  3. Sau đó Bao gồm Thư viện.
  4. Servo

Khi đến mã phác thảo, có thể đơn giản như vậy trong đó servo sẽ đi qua các vị trí của nó dừng ở 0º, 90º và 180º:

//Incluir la biblioteca del servo
#include <Servo.h>
 
//Declarar la variable para el servo
Servo servoMotor;
 
void setup() {
  // Iniciar el monitor serie
  Serial.begin(9600);
 
  // Iniciar el servo para que use el pin 9 al que conectamos
  servoMotor.attach(9);
}
 
void loop() {
  
  // Desplazar a la posición 0º
  servoMotor.write(0);
  // Esperar 1 segundo
  delay(1000);
  
  // Desplazar a la posición 90º
  servoMotor.write(90);
  // Esperar 1 segundo
  delay(1000);
  
  // Desplazamos a la posición 180º
  servoMotor.write(180);
  // Esperar 1 segundo
  delay(1000);
}

Bây giờ nếu bạn muốn di chuyển nó từ mức độ này sang mức độ khác, thì nó sẽ như thế này:

// Incluir la biblioteca servo
#include <Servo.h>
 
// Declarar la variable para el servo
Servo servoMotor;
 
void setup() {
  // Iniciar la velocidad de serie
  Serial.begin(9600);
 
  // Poner el servo en el pin 9
  servoMotor.attach(9);
 
  // Iniciar el servo en 0º
  servoMotor.write(0);
}
 
void loop() {
 
  // Los bucles serán positivos o negativos, en función el sentido del giro
  // Positivo
  for (int i = 0; i <= 180; i++)
  {
    // Desplazar ángulo correspondiente
    servoMotor.write(i);
    // Pausa de 25 ms
    delay(25);
  }
 
  // Negativo
  for (int i = 179; i > 0; i--)
  {
    // Desplazar el ángulo correspondiente
    servoMotor.write(i);
    // Pausa e 25 ms
    delay(25);
  }
}


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.