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ì?
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
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
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:
-
AZDDelivery Servo MG90S Micro: hỗ trợ tối đa 13.4 kg.
- Đổi mới-Liên minh Châu Âu: lên đến 25 kg / cm.
- Đổi mới-Liên minh Châu Âu: một mô hình chống thấm nước khác, và lên đến 35kg / cm.
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
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:
- Mở Arduino IDE.
- Đi tới Chương trình.
- Sau đó Bao gồm Thư viện.
- 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); } }