Ако искате да използвате серво мотор или сервоС Arduino, в тази статия ще научите какво ви е необходимо, за да започнете. Вече видяхме в други статии какво е необходимо да се използва електрически двигатели, стъпкови двигатели, както и други понятия, необходими за разбиране на работата на този тип устройства, като статията за PWM.
Сега можете да добавите още един нов електронен компонент към списъка с устройства анализирани и че можете да отидете интегриране на вашите DIY проекти за да добавите нова функционалност.
Какво е серво?
Un сервомотор, или просто серво, е електронен двигател с прилики с конвенционалните постояннотокови двигатели, но с някои елементи, които ги правят специални. В този случай той има способността да задържа позиция, която е посочена, нещо, което електрическите двигатели не позволяват.
От друга страна, серво може също точно контрол скоростта на въртене, благодарение на поредица от вътрешни зъбни колела и система, която позволява много по-добро управление, отколкото би могло да се направи при други видове двигатели.
Тези функции го правят особено интересен за приложения роботика или за други устройства, при които трябва да се контролират движението и позицията, като принтер или автомобил с дистанционно управление. В този тип радиоуправляеми автомобили има конвенционален мотор за задвижване на автомобила и серво за кормилното управление, с което да се контролира прецизно завоя.
Разлика между стъпков двигател и серво мотор
Ако се чудите разликата между серво мотор и стъпков двигател, истината е, че те могат да бъдат объркани, тъй като в стъпковия двигател или степъра въртенето също може да се контролира доста прецизно и приложенията са много подобни на серво. Вместо това има някои разлики.
И това е, което сервомоторите обикновено използват рядкоземни магнити, докато стъпковите двигатели използват по-евтини и по-конвенционални магнити. Следователно серво може да постигне по-висок въртящ момент, въпреки че остава компактен. Следователно силата на завъртане ще бъде много висока.
Технически характеристики
Винаги, когато купувате серво, трябва да се консултирате с техническия лист или листа с данни. По този начин ще осигурите технически характеристики има, но и границите, на които можете да го подложите, като напрежение, интензивност, максимално натоварване, въртящ момент и т.н. Не забравяйте, че всеки модел може да бъде доста различен.
Например, ако погледнете един от най-популярните, 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. Например, ето няколко примера за препоръчани продукти което може да ви заинтересува:
-
AZDelivery Servo MG90S Micro: поддържа до 13.4 кг.
- Иновации-ЕС: с до 25 кг / см.
- Иновации-ЕС: друг водоустойчив модел и с до 35 кг / см.
Всички те имат доста добър ъгъл на завъртане, но основно се различават по въртящия момент, който всеки може да понесе. Включих три различни модела. Първият и по-евтин може да е достатъчен за повечето приложения. Но ако имате нужда от такъв с по-голяма сила за други приложения, имате 25 и 35, които вече са доста забележителни ...
Интеграция с Arduino
Както можете да видите на изображението по-горе, серво се свързва много лесно към Ардуино. Той има само три кабела, които можете да свържете по този начин:
- Червено с 5V
- Черен с GND
- Жълто с PWM щифт Arduino, в случая с -9.
За да програмирате скица, за да започнете да използвате тези видове двигатели, имате няколко опции. Но на първо място, за да започнете, трябва добавете Arduino IDE библиотека за задвижване на този тип серво мотори:
- Отворете Arduino IDE.
- Отидете на Програма.
- След това Включете библиотека.
- 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); } }