Серво: как да използвате серво мотора с Arduino

серво, серво мотор

Ако искате да използвате серво мотор или сервоС Arduino, в тази статия ще научите какво ви е необходимо, за да започнете. Вече видяхме в други статии какво е необходимо да се използва електрически двигатели, стъпкови двигатели, както и други понятия, необходими за разбиране на работата на този тип устройства, като статията за PWM.

Сега можете да добавите още един нов електронен компонент към списъка с устройства анализирани и че можете да отидете интегриране на вашите DIY проекти за да добавите нова функционалност.

Какво е серво?

серво

Un сервомотор, или просто серво, е електронен двигател с прилики с конвенционалните постояннотокови двигатели, но с някои елементи, които ги правят специални. В този случай той има способността да задържа позиция, която е посочена, нещо, което електрическите двигатели не позволяват.

От друга страна, серво може също точно контрол скоростта на въртене, благодарение на поредица от вътрешни зъбни колела и система, която позволява много по-добро управление, отколкото би могло да се направи при други видове двигатели.

Тези функции го правят особено интересен за приложения роботика или за други устройства, при които трябва да се контролират движението и позицията, като принтер или автомобил с дистанционно управление. В този тип радиоуправляеми автомобили има конвенционален мотор за задвижване на автомобила и серво за кормилното управление, с което да се контролира прецизно завоя.

Разлика между стъпков двигател и серво мотор

Nema 17

Ако се чудите разликата между серво мотор и стъпков двигател, истината е, че те могат да бъдат объркани, тъй като в стъпковия двигател или степъра въртенето също може да се контролира доста прецизно и приложенията са много подобни на серво. Вместо това има някои разлики.

И това е, което сервомоторите обикновено използват рядкоземни магнити, докато стъпковите двигатели използват по-евтини и по-конвенционални магнити. Следователно серво може да постигне по-висок въртящ момент, въпреки че остава компактен. Следователно силата на завъртане ще бъде много висока.

Технически характеристики

Винаги, когато купувате серво, трябва да се консултирате с техническия лист или листа с данни. По този начин ще осигурите технически характеристики има, но и границите, на които можете да го подложите, като напрежение, интензивност, максимално натоварване, въртящ момент и т.н. Не забравяйте, че всеки модел може да бъде доста различен.

Например, ако погледнете един от най-популярните, Micro Servo 9G SG90 от добре познатата фирма Tower Pro, тогава ще имате някои много особени характеристики, въпреки че програмирането и свързването на моделите са горе-долу еднакви и всичко казано тук е полезно за всеки.

В случая с този модел това е висококачествен мотор, с ъгъл на завъртане, който позволява a почистване между -90 и 90º, тоест общ завой от 180º. Разделителната способност, която можете да постигнете, е много висока, така че ще можете да напредвате много малко по малко. Например с ограниченията на ШИМ сигнала от Arduino UNO, можете дори да получите аванс от клас до клас.

По същия начин ШИМ сигналът също ще наложи друга граница и това е броят пъти, в които всяка позиция може да се промени за единица време. Например, тъй като импулсите работят с между 1 и 2 ms и с Периоди от 20 ms (50Hz), след това серво може да се движи веднъж на всеки 20 ms.

В допълнение, той ще има тегло 9 грама и въпреки това тегло и компактен размер, той може да развие въртящ момент или въртящ момент от 1.8 kg / cm с 4.8v. Това е благодарение на неговия комплект зъбни колела POM.

И накрая, вече знаете, че в зависимост от това, което искате да постигнете, трябва да изберете един или друг модел, така че той да има функции, необходими за вашия проект. Тоест, не е същото, че искате двигател да движи товар X, отколкото такъв за XX ...

Къде да купя серво

сервомотор

Ако искате да започнете да използвате този тип сервомотор, можете да го намерите евтино в много специализирани магазини и можете да го получите онлайн на Amazon. Например, ето няколко примера за препоръчани продукти което може да ви заинтересува:

Всички те имат доста добър ъгъл на завъртане, но основно се различават по въртящия момент, който всеки може да понесе. Включих три различни модела. Първият и по-евтин може да е достатъчен за повечето приложения. Но ако имате нужда от такъв с по-голяма сила за други приложения, имате 25 и 35, които вече са доста забележителни ...

Интеграция с Arduino

arduino серво

Както можете да видите на изображението по-горе, серво се свързва много лесно към Ардуино. Той има само три кабела, които можете да свържете по този начин:

  • Червено с 5V
  • Черен с GND
  • Жълто с PWM щифт Arduino, в случая с -9.

За да програмирате скица, за да започнете да използвате тези видове двигатели, имате няколко опции. Но на първо място, за да започнете, трябва добавете Arduino IDE библиотека за задвижване на този тип серво мотори:

  1. Отворете Arduino IDE.
  2. Отидете на Програма.
  3. След това Включете библиотека.
  4. Servo

В cuanto др код на скицаМоже да е толкова просто, при което сервомеханизмът ще премине през своите позиции, спирайки на 0º, 90º и 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);
}

Сега ако искате преместете го от степен на степен, тогава би било така:

// 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);
  }
}


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.