Servo: kumaha cara ngagunakeun motor servo sareng Arduino

servo, motor servo

Upami anjeun hoyong nganggo a motor servo, atanapi servojeung Arduino, dina tulisan ieu anjeun bakal diajar naon anu anjeun kedah ngamimitian. Kami parantos atos ningali dina tulisan sanés naon anu kedah dianggo motor listrik, motor stepper, sareng ogé konsép sanés anu diperyogikeun pikeun ngartos operasi alat ieu, sapertos tulisan dina PWM.

Ayeuna, anjeun tiasa nambihan komponén éléktronik énggal pikeun daptar alat dianalisis sareng anjeun tiasa angkat ngahijikeun proyék DIY anjeun pikeun nambihan fungsionalitas énggal.

Naon ari servo?

servo

Un servomotor, atanapi ngan saukur servo, mangrupikeun motor éléktronik anu sami sareng motor DC konvensional, tapi sareng sababaraha elemen anu ngajantenkeun aranjeunna khusus. Dina hal ieu, éta ngagaduhan kamampuan pikeun nahan posisi anu dituduhkeun, hal anu henteu diidinan ku motor listrik.

Di sisi séjén, servo ogé tiasa persis ngadalikeun kagancangan rotasi, hatur nuhun kana séri gir internal sareng sistem anu ngamungkinkeun pangendali langkung saé tibatan dilakukeun dina jinis motor anu sanés.

Fitur ieu ngajantenkeun pikaresepeun khususna aplikasi robotika, atanapi pikeun alat-alat sanés anu kedahna dikontrol gerakan sareng posisi, sapertos printer, atanapi mobil kadali jarak jauh. Dina jenis mobil anu dikawasa radio ieu aya motor konvensional pikeun nyetir mobil, sareng servo pikeun setir, kalayan anu pikeun ngatur péngkolan tepatna.

Beda antara motor stepper sareng motor servo

teu 17

Upami anjeun heran bédana antara motor servo sareng motor stepper, kaleresan aranjeunna tiasa bingung, kumargi dina motor stepper, atanapi stepper, rotasi ogé tiasa dikontrol sacara tepat, sareng aplikasina mirip pisan sareng servo. Sabalikna, aya sababaraha bédana.

Sareng éta servomotor biasana dianggo magnet bumi langka, sedengkeun motor stepper nganggo magnet anu langkung mirah sareng langkung konvensional. Ku alatan éta, servo tiasa ngahontal pangembangan torsi anu langkung luhur, sanaos tetep kompak. Ku alatan éta, gaya balikkeun bakal luhur pisan.

Ciri téknis

Iraha anjeun ngagaleuh servo, anjeun kedah konsultasi ka lambaran téknis atanapi datasheet na. Ku cara éta, anjeun bakal mastikeun ciri téknis éta ngagaduhan, tapi ogé watesan-wates anu anjeun tiasa tundukkeun, sapertos tegangan, intensitas, beban maksimum, torsi, jst. Émut yén unggal modél tiasa rada béda.

Salaku conto, upami anjeun ningali salah sahiji anu pang populerna, Micro Servo 9G SG90 ti teguh Tower Pro anu kawéntar, maka anjeun bakal ngagaduhan ciri anu khas pisan, sanaos pamrograman sareng sambungan modélna kirang langkung sami sareng sadayana anu nyarios didieu aya gunana pikeun saha waé.

Dina kasus modél kieu, éta mangrupikeun motor anu saé kualitasna, kalayan sudut péngkolan anu ngamungkinkeun a nyapu antara -90 sareng 90º, maksudna, giliran total 180º. Resolusi anu anjeun tiasa ngahontal nyaéta luhur pisan, janten anjeun bakal tiasa maju sakedik sakedik. Salaku conto, ku watesan sinyal PWM tina Arduino UNO, anjeun bahkan tiasa kéngingkeun sateuacanna ti kelas dugi ka kelas.

Kitu ogé, sinyal PWM ogé bakal maksa wates sanés, sareng éta mangrupikeun sababaraha kali unggal posisi tiasa robih per unit waktos. Salaku conto, nalika pulsa tiasa dianggo antara 1 sareng 2 ms sareng Période 20 mdet (50Hz), maka servo tiasa ngalih sakali unggal 20 ms.

Salaku tambahan, éta bakal ngagaduhan beurat 9 gram sareng, sanaos beurat sareng ukuranana kompak, éta tiasa ngembangkeun a torsi atanapi torsi 1.8 kg / cm kalayan 4.8v. Éta berkat set gear POM na.

Akhirna, anjeun parantos terang yén, gumantung kana naon anu anjeun hoyong pikahontal, anjeun kedah milih hiji atanapi modél anu sanés, supados ngagaduhan fitur anu diperyogikeun pikeun proyek anjeun. Nyaéta, henteu sami sareng anjeun hoyong motor mindahkeun beban X, tibatan hiji pikeun XX ...

Dimana ngagaleuh servo

servomotor

Upami anjeun badé mimitian nganggo jenis servomotor ieu, anjeun tiasa mendakan éta murah di seueur toko khusus, sareng anjeun ogé tiasa kéngingkeun online di Amazon. Salaku conto, ieu sababaraha conto tina produk disarankeun anu tiasa dipikaresep ku anjeun:

Éta sadayana gaduh sudut pandang anu saé, tapi dasarna bénten sareng torsi anu masing-masing tiasa sabar. Kuring parantos kalebetkeun tilu modél anu béda. Anu baheula, sareng langkung mirah, panginten cekap kanggo kaseueuran aplikasi. Tapi upami anjeun peryogi anu langkung kuat pikeun aplikasi sanés, anjeun ngagaduhan 25 sareng 35, anu parantos lumayan luar biasa ...

Integrasi sareng Arduino

servo arduino
Sakumaha anjeun tiasa tingali dina gambar di luhur, servo nyambung pisan gampang ka Arduino. Éta ngan ukur gaduh tilu kabel, anu tiasa anjeun sambungkeun ku cara kieu:

  • Beureum ku 5V
  • Hideung sareng GND
  • Konéng sareng pin Arduino PWM, dina hal ieu nganggo -9.

Dina raraga program skétsa pikeun mimitian nganggo jinis mesin ieu, anjeun gaduh sababaraha pilihan. Tapi, mimiti mimiti, pikeun ngamimitian, anjeun kedah tambahkeun perpustakaan Arduino IDE pikeun nyetir jenis motor servo ieu:

  1. Buka Arduino IDE.
  2. Buka Program.
  3. Teras Kalebet Perpustakaan.
  4. Servo

Sedengkeun pikeun kode sketsa, éta tiasa saderhana servo bakal ngalangkungan posisi na lirén di 0º, 90º sareng 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);
}

Ayeuna upami anjeun hoyong mindahkeun éta ti gelar ka tingkat, maka bakal sapertos kieu:

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


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

Janten kahiji komen

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun. Widang diperlukeun téh ditandaan ku *

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.