Servo: cum se folosește servomotorul cu Arduino

servo, servo motor

Dacă doriți să utilizați un servomotor sau servo, Cu Arduino, în acest articol veți afla de ce aveți nevoie pentru a începe. Am văzut deja în alte articole ce este necesar să folosim motoare electrice, motoare pas cu pas, precum și alte concepte necesare pentru a înțelege funcționarea acestui tip de dispozitiv, cum ar fi articolul de pe PWM.

Acum, puteți adăuga o altă componentă electronică nouă lista dispozitivelor analizate și că poți merge integrarea proiectelor dvs. DIY pentru a adăuga noi funcționalități.

Ce este un servo?

servo

Un servo motor, sau pur și simplu servo, este un motor electronic cu asemănări cu motoarele DC convenționale, dar cu unele elemente care le fac speciale. În acest caz, are capacitatea de a menține o poziție indicată, lucru pe care motoarele electrice nu îl permit.

Pe de altă parte, și servo-ul poate controlul precis viteza de rotație, datorită unei serii de roți dințate interne și unui sistem care permite un control mult mai bun decât s-ar putea face la alte tipuri de motoare.

Aceste caracteristici îl fac deosebit de interesant pentru aplicații robotică sau pentru alte dispozitive în care este necesar să controlați mișcarea și poziția, cum ar fi o imprimantă sau o mașină controlată de la distanță. În acest tip de mașină radio controlată există un motor convențional pentru a conduce mașina și un servo pentru direcție, cu care se poate controla cu precizie virajul.

Diferența dintre motorul pas cu pas și servomotorul

nema 17

Dacă vă întrebați diferența dintre un servomotor și un motor pas cu pas, adevărul este că pot fi confuzi, deoarece în motorul pas cu pas, sau pas cu pas, rotația poate fi de asemenea controlată destul de precis, iar aplicațiile sunt foarte asemănătoare cu servo. În schimb, există unele diferențe.

Și servomotorii folosesc de obicei magneți de pământ rar, în timp ce motoarele pas cu pas folosesc magneți mai ieftini și mai convenționali. Prin urmare, un servo poate realiza o dezvoltare a cuplului mai mare, în ciuda faptului că este compact. Prin urmare, forța de rotire va fi foarte mare.

caracteristici tehnice

Ori de câte ori cumpărați un servo, trebuie să consultați fișa tehnică sau fișa tehnică a acestuia. În acest fel, veți asigura caracteristici tehnice are, dar și limitele la care îl puteți supune, precum tensiunea, intensitatea, sarcina maximă, cuplul etc. Amintiți-vă că fiecare model poate fi destul de diferit.

De exemplu, dacă te uiți la unul dintre cele mai populare, Micro Servo 9G SG90 de la cunoscuta firmă Tower Pro, atunci veți avea câteva caracteristici deosebite, deși programarea și conectarea modelelor sunt mai mult sau mai puțin la fel și tot ce se spune aici este util pentru oricine.

În cazul acestui model, este un motor de înaltă calitate, cu un unghi de rotire care permite o măturați între -90 și 90º, adică un viraj total de 180º. Rezoluția pe care o puteți obține este foarte mare, așa că veți putea avansa foarte puțin câte puțin. De exemplu, cu limitările semnalului PWM de Arduino UNO, ai putea obține chiar un avans de la notă la notă.

De asemenea, semnalul PWM va impune, de asemenea, o altă limită și este numărul de ori în care fiecare poziție se poate schimba pe unitate de timp. De exemplu, deoarece impulsurile funcționează între 1 și 2 ms și cu Perioade de 20 ms (50Hz), atunci servo se poate deplasa o dată la fiecare 20 ms.

În plus, va avea o greutate de 9 grame și, în ciuda greutății și dimensiunilor compacte, poate dezvolta un cuplu sau cuplu de 1.8 kg / cm cu 4.8v. Asta datorită setului său de viteze POM.

În sfârșit, știți deja că, în funcție de ceea ce doriți să realizați, va trebui să alegeți unul sau alt model, astfel încât acesta să aibă caracteristici necesare proiectului dumneavoastră. Adică nu este același lucru cu care doriți ca un motor să deplaseze o sarcină X, decât unul pentru XX ...

De unde să cumpărați un servo

servo motor

Dacă doriți să începeți să utilizați acest tip de servomotor, îl puteți găsi ieftin în multe magazine specializate și îl puteți obține și online de la Amazon. De exemplu, iată câteva exemple de Produse Recomandate care te poate interesa:

Toate au un unghi de viraj destul de bun, dar diferă în principiu de cuplul pe care fiecare îl poate tolera. Am inclus trei modele diferite. Primul, și mai ieftin, poate fi suficient pentru majoritatea aplicațiilor. Dar dacă aveți nevoie de una cu rezistență mai mare pentru alte aplicații, aveți 25 și 35, care sunt deja destul de remarcabile ...

Integrare cu Arduino

servo arduino

După cum puteți vedea în imaginea de mai sus, servo se conectează foarte ușor către Arduino. Are doar trei cabluri, pe care le puteți conecta în acest fel:

  • Roșu cu 5V
  • Negru cu GND
  • Galben cu un pin Arduino PWM, în acest caz cu -9.

Pentru a programa o schiță pentru a începe să utilizați aceste tipuri de motoare, aveți mai multe opțiuni. Dar, în primul rând, pentru a începe, trebuie adăugați biblioteca IDE Arduino pentru a acționa acest tip de servomotoare:

  1. Deschideți Arduino IDE.
  2. Accesați Program.
  3. Apoi Includeți biblioteca.
  4. Servo

Ca cod schiță, ar putea fi atât de simplu în care servo-ul va trece prin pozițiile sale oprindu-se la 0º, 90º și 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);
}

Acum dacă vrei mutați-l de la grad la grad, atunci ar fi așa:

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


Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.