Servo: kaip naudoti servo variklį su „Arduino“

servo, servo variklis

Jei norite naudoti a servo variklis arba servo, Su Arduino, šiame straipsnyje sužinosite, ko jums reikia norint pradėti. Mes jau matėme kituose straipsniuose, ką būtina naudoti elektros varikliai, žingsniniai varikliai, taip pat kitas sąvokas, reikalingas suprasti šio tipo prietaisų veikimą, pavyzdžiui, straipsnį apie TIM.

Dabar galite pridėti dar vieną naują elektroninį komponentą prietaisų sąrašą išanalizuota ir kad tu gali eiti integruoti savo pasidaryk pats projektus pridėti naujų funkcijų.

Kas yra servo?

servo

Un servo variklis, arba tiesiog servo, yra elektroninis variklis, panašus į įprastinius nuolatinės srovės variklius, tačiau su kai kuriais elementais, kurie juos daro ypatingus. Šiuo atveju jis turi galimybę užimti nurodytą padėtį, ko neleidžia elektriniai varikliai.

Kita vertus, servo taip pat gali tiksliai valdyti sukimosi greitis, dėl vidinių pavarų serijos ir sistemos, leidžiančios daug geriau valdyti, nei būtų galima padaryti kitų tipų varikliuose.

Dėl šių funkcijų tai ypač įdomu programos robotika, arba kitiems įrenginiams, kur būtina valdyti judėjimą ir padėtį, pavyzdžiui, spausdintuvui ar nuotolinio valdymo automobiliui. Šio tipo radijo bangomis valdomame automobilyje yra įprastas variklis automobiliui vairuoti, o vairo servo serveris - tiksliai valdyti posūkį.

Skirtumas tarp žingsninio variklio ir servo variklio

Nr. 17

Jei jums įdomu, skirtumas tarp servo variklio ir žingsninio variklio, tiesa ta, kad juos galima supainioti, nes žingsniniame variklyje arba žingsnyje sukimą taip pat galima valdyti gana tiksliai, o programos yra labai panašios į servo. Vietoj to, yra keletas skirtumų.

Tai yra tai, ką paprastai naudoja servovarikliai retųjų žemių magnetai, o stepper varikliuose naudojami pigesni ir labiau įprasti magnetai. Todėl servo gali pasiekti didesnį sukimo momentą, nepaisant to, kad jis lieka kompaktiškas. Todėl posūkio jėga bus labai didelė.

Techninės charakteristikos

Kai perkate servo servisą, turėtumėte perskaityti jo techninį lapą arba duomenų lapą. Tokiu būdu jūs užtikrinsite techninės charakteristikos jis turi, bet ir ribas, kurioms galite tai pritaikyti, pvz., įtampa, intensyvumas, didžiausia apkrova, sukimo momentas ir kt. Atminkite, kad kiekvienas modelis gali būti gana skirtingas.

Pavyzdžiui, jei pažvelgsite į vieną iš populiariausių, „Micro Servo 9G SG90“ iš gerai žinoma „Tower Pro“ firma, tada turėsite keletą labai savitų bruožų, nors modelių programavimas ir sujungimas yra daugmaž vienodi ir viskas, kas čia pasakyta, yra naudinga bet kam.

Šio modelio atveju tai yra aukštos kokybės variklis, kurio posūkio kampas leidžia a valymas tarp -90 ir 90º, tai yra, bendras posūkis 180º. Rezoliucija, kurią galite pasiekti, yra labai didelė, todėl galėsite žengti labai pamažu. Pavyzdžiui, kai PWM signalo apribojimai yra Arduino UNO, jūs netgi galėtumėte gauti avansą iš klasės į klasę.

PWM signalas taip pat nustatys kitą ribą ir tai, kiek kartų kiekviena padėtis gali pasikeisti per laiko vienetą. Pavyzdžiui, kai impulsai veikia nuo 1 iki 2 ms ir su 20 ms laikotarpiai (50Hz), tada servo gali judėti kartą per 20 ms.

Be to, jo svoris bus 9 gramai ir, nepaisant tokio svorio ir kompaktiško dydžio, jis gali išsivystyti a sukimo momentas arba 1.8 kg / cm su 4.8v. Tai dėka jo POM pavarų rinkinio.

Galiausiai jūs jau žinote, kad, atsižvelgiant į tai, ko norite pasiekti, turite pasirinkti vieną ar kitą modelį, kad jis turėtų jūsų projektui reikalingų funkcijų. Tai reiškia, kad ne tas pats, ko norite, kad variklis perkeltų apkrovą X, nei vienas, skirtas XX ...

Kur nusipirkti servo

servo variklis

Jei norite pradėti naudoti tokio tipo servovariklius, pigių galite rasti daugelyje specializuotų parduotuvių, taip pat galite įsigyti internetu „Amazon“. Pavyzdžiui, čia yra keletas pavyzdžių rekomenduojami produktai tai gali jus dominti:

Visi jie turi gana gerą sukimo kampą, tačiau jis iš esmės skiriasi sukimo momentu, kurį kiekvienas gali toleruoti. Aš įtraukiau trys skirtingi modeliai. Pirmojo ir pigesnio gali pakakti daugumai programų. Bet jei jums reikia didesnio stiprumo kitoms programoms, turite 25 ir 35, kurie jau yra gana nuostabūs ...

Integracija su „Arduino“

arduino servo

Kaip matote aukščiau esančiame paveikslėlyje, servo jungiasi labai lengvai į Arduino. Jame yra tik trys kabeliai, kuriuos galite prijungti tokiu būdu:

  • Raudona su 5V
  • Juoda su GND
  • Geltona su „Arduino PWM“ kaiščiu, šiuo atveju su -9.

Norėdami užprogramuoti eskizą pradėti naudoti šių tipų variklius, turite keletą galimybių. Bet, visų pirma, jūs turite tai padaryti pridėti „Arduino IDE“ biblioteką vairuoti tokio tipo servovariklius:

  1. Atidarykite „Arduino IDE“.
  2. Eikite į programą.
  3. Tada įtraukite biblioteką.
  4. Servo

Dėl eskizo kodasTai gali būti taip paprasta, kai servo serveris eis per savo padėtį, sustodamas ties 0º, 90º ir 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);
}

Dabar, jei norite perkelkite jį nuo laipsnio į laipsnį, tada būtų taip:

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


Būkite pirmas, kuris pakomentuos

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.