Servo: kung paano gamitin ang servo motor kasama ang Arduino

servo, servo motor

Kung nais mong gumamit a servo motor, o servo, Sa Arduino, sa artikulong ito matututunan mo kung ano ang kailangan mo upang makapagsimula. Nakita na natin sa iba pang mga artikulo kung ano ang kinakailangang gamitin electric motor, stepper motor, at iba pang mga konsepto na kinakailangan upang maunawaan ang pagpapatakbo ng ganitong uri ng aparato, tulad ng artikulo sa PWM.

Ngayon, maaari kang magdagdag ng isa pang bagong elektronikong sangkap sa ang listahan ng aparato pinag-aralan at maaari kang pumunta pagsasama ng iyong mga proyekto sa DIY upang magdagdag ng bagong pagpapaandar.

Ano ang isang servo?

magpaandar buhat sa malayo

Un serbomotor, o simpleng servo, ay isang elektronikong motor na may pagkakatulad sa maginoo na DC Motors, ngunit may ilang mga elemento na ginagawa silang espesyal. Sa kasong ito, mayroon itong kakayahang humawak ng isang posisyon na ipinahiwatig, isang bagay na hindi pinapayagan ng mga de-kuryenteng motor.

Sa kabilang banda, maaari din ang servo tumpak na kontrol ang bilis ng pag-ikot, salamat sa isang serye ng mga panloob na gears at isang system na nagbibigay-daan sa isang mas mahusay na kontrol kaysa sa maaaring gawin sa iba pang mga uri ng motor.

Ang mga tampok na ito ay ginagawang mas kawili-wili para sa application robotics, o para sa iba pang mga aparato kung saan kinakailangan upang makontrol ang paggalaw at posisyon, tulad ng isang printer, o isang malayuang kontroladong kotse. Sa ganitong uri ng kotseng kinokontrol ng radyo ay mayroong isang maginoo na motor upang magmaneho ng kotse, at isang servo para sa pagpipiloto, kung saan makokontrol nang tumpak ang pagliko.

Pagkakaiba sa pagitan ng stepper motor at servo motor

nema 17

Kung magtataka ka ang pagkakaiba sa pagitan ng isang servo motor at isang stepper motor, ang totoo ay maaari silang malito, dahil sa stepper motor, o stepper, ang pag-ikot ay maaari ring kontrolin nang tumpak, at ang mga aplikasyon ay halos kapareho sa servo. Sa halip, mayroong ilang mga pagkakaiba.

At ito ay karaniwang ginagamit ng mga servomotor bihirang mga magnet ng lupa, habang ang mga stepper motor ay gumagamit ng mas mura at mas maginoo na mga magnet. Samakatuwid, ang isang servo ay maaaring makamit ang isang mas mataas na pag-unlad ng metalikang kuwintas, sa kabila ng natitirang compact. Samakatuwid, ang lakas ng pag-on ay magiging napakataas.

Mga katangiang teknikal

Tuwing bibili ka ng isang servo, dapat kang kumunsulta sa teknikal na sheet o datasheet na ito. Sa ganoong paraan, tiyakin mo ang mga teknikal na katangian mayroon ito, ngunit pati na rin ang mga limitasyon na maaari mo itong mapailalim, tulad ng boltahe, kasidhian, maximum na pagkarga, metalikang kuwintas, atbp. Tandaan na ang bawat modelo ay maaaring magkakaiba.

Halimbawa, kung titingnan mo ang isa sa pinakatanyag, ang Micro Servo 9G SG90 mula sa ang kilalang Tower Pro firm, pagkatapos ay magkakaroon ka ng ilang mga kakaibang katangian, kahit na ang pagprograma at koneksyon ng mga modelo ay halos pareho o mas kaunti at lahat ng sinabi dito ay kapaki-pakinabang para sa sinuman.

Sa kaso ng modelong ito, ito ay isang de-kalidad na motor, na may isang anggulo ng pagikot na nagpapahintulot sa a walisin sa pagitan ng -90 at 90º, iyon ay upang sabihin, isang kabuuang pagliko ng 180º. Ang resolusyon na maaari mong makamit ay napakataas, kaya magagawa mong maisulong nang kaunti. Halimbawa, sa mga limitasyon ng signal ng PWM ng Arduino UNO, maaari ka ring makakuha ng advance mula sa antas hanggang sa antas.

Gayundin, ang signal ng PWM ay magpapataw din ng isa pang limitasyon, at ito ang bilang ng beses na maaaring mabago ang bawat posisyon bawat yunit ng oras. Halimbawa, dahil ang mga pulso ay gumagana sa pagitan ng 1 at 2 ms at kasama 20 ms mga panahon (50Hz), pagkatapos ang servo ay maaaring ilipat nang isang beses bawat 20 ms.

Bilang karagdagan, magkakaroon ito ng bigat na 9 gramo at, sa kabila ng bigat at compact na laki, maaari itong bumuo ng a metalikang kuwintas o metalikang kuwintas ng 1.8 kg / cm na may 4.8v. Salamat sa set ng gear ng POM nito.

Sa wakas, alam mo na iyan, depende sa kung ano ang nais mong makamit, pumili ka ng isa o ibang modelo, upang magkaroon ito ng mga tampok na kinakailangan para sa iyong proyekto. Iyon ay, hindi ito pareho na nais mo ng isang motor na ilipat ang isang load X, kaysa sa isa para sa XX ...

Kung saan bibili ng isang servo

serbomotor

Kung nais mong simulang gamitin ang ganitong uri ng servomotor, mahahanap mo itong mura sa maraming mga dalubhasang tindahan, at maaari mo rin itong makuha sa online sa Amazon. Halimbawa, narito ang ilang mga halimbawa ng inirekumenda na mga produkto na maaaring interesado ka:

Ang lahat sa kanila ay may isang mahusay na anggulo ng pag-ikot, ngunit ito ay naiiba talaga sa metalikang kuwintas na ang bawat isa ay maaaring magparaya. Isinama ko na tatlong magkakaibang mga modelo. Ang dating, at mas mura, ay maaaring sapat para sa karamihan ng mga aplikasyon. Ngunit kung kailangan mo ng isa na may higit na lakas para sa iba pang mga application, mayroon kang 25 at 35, na kung saan ay medyo kapansin-pansin ...

Pagsasama sa Arduino

arduino servo

Tulad ng nakikita mo sa imahe sa itaas, ang servo ay napakadali kay Arduino. Mayroon lamang itong tatlong mga kable, na maaari mong ikonekta sa ganitong paraan:

  • Pula na may 5V
  • Itim na may GND
  • Dilaw na may isang Arduino PWM pin, sa kasong ito na may -9.

Upang mai-program ang isang sketch upang simulang gamitin ang mga ganitong uri ng mga makina, mayroon kang maraming mga pagpipilian. Ngunit, una sa lahat, upang magsimula, kailangan mo magdagdag ng Arduino IDE library upang himukin ang ganitong uri ng mga motor na servo:

  1. Buksan ang Arduino IDE.
  2. Pumunta sa Program.
  3. Pagkatapos Isama ang Library.
  4. Magpaandar buhat sa malayo

Ukol sa sketch code, maaaring maging simple iyon kung saan dadaan ang servo sa mga posisyon nito na humihinto sa 0º, 90º at 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);
}

Ngayon kung gusto mo ilipat ito mula degree hanggang degree, kung gayon magiging ganito:

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


Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.