Servo: cara menggunakan motor servo dengan Arduino

servo, motor servo

Sekiranya anda ingin menggunakan a motor servo, atau servo, Dengan Arduino, dalam artikel ini anda akan mempelajari apa yang anda perlukan untuk memulakan. Kami telah melihat dalam artikel lain apa yang perlu digunakan motor elektrik, motor stepper, dan juga konsep lain yang diperlukan untuk memahami operasi jenis peranti ini, seperti artikel di PWM.

Sekarang, anda boleh menambahkan komponen elektronik baru ke senarai peranti dianalisis dan anda boleh pergi mengintegrasikan projek DIY anda untuk menambah fungsi baru.

Apa itu servo?

servo

Un servomotor, atau sekadar servo, adalah motor elektronik dengan persamaan dengan motor DC konvensional, tetapi dengan beberapa elemen yang menjadikannya istimewa. Dalam kes ini, ia memiliki kemampuan untuk memegang posisi yang ditunjukkan, sesuatu yang tidak dibenarkan oleh motor elektrik.

Sebaliknya, servo juga boleh kawalan dengan tepat kelajuan putaran, berkat rangkaian gear dalaman dan sistem yang membolehkan kawalan jauh lebih baik daripada yang boleh dilakukan pada jenis motor lain.

Ciri-ciri ini menjadikannya sangat menarik untuk aplikasi robotik, atau untuk peranti lain di mana pergerakan dan kedudukan perlu dikendalikan, seperti pencetak, atau kereta yang dikendalikan dari jauh. Di dalam kereta kawalan radio jenis ini, terdapat motor konvensional untuk menggerakkan kereta, dan servo untuk kemudi, untuk mengawal belok dengan tepat.

Perbezaan antara motor stepper dan motor servo

nema 17

Sekiranya anda tertanya-tanya perbezaan antara motor servo dan motor stepper, sebenarnya mereka boleh keliru, kerana pada motor stepper, atau stepper, putarannya juga dapat dikendalikan dengan tepat, dan aplikasinya sangat mirip dengan servo. Sebaliknya, terdapat beberapa perbezaan.

Dan servomotor biasanya menggunakan magnet nadir bumi, sementara motor stepper menggunakan magnet yang lebih murah dan konvensional. Oleh itu, servo dapat mencapai pengembangan tork yang lebih tinggi, walaupun tetap padat. Oleh itu, daya putar akan sangat tinggi.

ciri-ciri teknikal

Setiap kali anda membeli servo, anda harus melihat lembaran teknikal atau lembar data. Dengan cara itu, anda akan memastikan ciri teknikal ia mempunyai, tetapi juga had-had yang boleh dikenakan, seperti voltan, intensiti, beban maksimum, tork, dll. Ingat bahawa setiap model boleh berbeza.

Sebagai contoh, jika anda melihat salah satu yang paling popular, Micro Servo 9G SG90 firma Tower Pro yang terkenal, maka anda akan mempunyai beberapa ciri yang sangat pelik, walaupun pengaturcaraan dan penyambungan model lebih kurang sama dan semua yang dinyatakan di sini berguna untuk sesiapa sahaja.

Untuk model ini, ini adalah motor berkualiti tinggi, dengan sudut putaran yang memungkinkan a sapu antara -90 hingga 90º, iaitu, jumlah giliran 180º. Resolusi yang dapat anda capai sangat tinggi, jadi anda akan dapat maju sedikit demi sedikit. Sebagai contoh, dengan had isyarat PWM sebanyak Arduino UNO, malah anda boleh mendapat pendahuluan dari gred ke gred.

Begitu juga, isyarat PWM juga akan mengenakan had yang lain, dan ini adalah berapa kali setiap kedudukan dapat berubah per unit masa. Sebagai contoh, kerana nadi berfungsi antara 1 hingga 2 ms dan dengan 20 ms tempoh (50Hz), maka servo boleh bergerak 20ms sekali.

Di samping itu, ia akan mempunyai berat 9 gram dan, walaupun berat dan ukurannya padat, ia dapat mengembangkan a tork atau tork 1.8 kg / cm dengan 4.8v. Itu berkat set gear POMnya.

Akhirnya, anda sudah tahu bahawa, bergantung pada apa yang ingin anda capai, anda mesti memilih satu atau lain model, sehingga ia mempunyai model yang sesuai ciri yang diperlukan untuk projek anda. Maksudnya, tidak sama dengan yang anda mahukan motor memindahkan beban X, daripada satu untuk XX ...

Di mana untuk membeli servo

servomotor

Sekiranya anda ingin mula menggunakan servomotor jenis ini, anda boleh mendapatkannya dengan murah di banyak kedai khusus, dan anda juga boleh mendapatkannya secara dalam talian di Amazon. Sebagai contoh, berikut adalah beberapa contoh produk yang disyorkan yang mungkin menarik minat anda:

Mereka semua mempunyai sudut putaran yang cukup baik, tetapi pada dasarnya berbeza dengan tork yang masing-masing dapat bertoleransi. Saya telah memasukkan tiga model yang berbeza. Yang pertama, dan lebih murah, mungkin mencukupi untuk kebanyakan aplikasi. Tetapi jika anda memerlukannya dengan kekuatan yang lebih besar untuk aplikasi lain, anda mempunyai 25 dan 35, yang sudah cukup luar biasa ...

Integrasi dengan Arduino

servo arduino

Seperti yang anda lihat dalam gambar di atas, servo menyambung dengan sangat mudah ke Arduino. Ia hanya mempunyai tiga kabel, yang boleh anda sambungkan dengan cara ini:

  • Merah dengan 5V
  • Hitam dengan GND
  • Kuning dengan pin Arduino PWM, dalam kes ini dengan -9.

Untuk memprogram sketsa untuk mula menggunakan jenis mesin ini, anda mempunyai beberapa pilihan. Tetapi, pertama sekali, untuk memulakan, anda harus tambah perpustakaan Arduino IDE untuk memandu motor servo jenis ini:

  1. Buka Arduino IDE.
  2. Pergi ke Program.
  3. Kemudian Sertakan Perpustakaan.
  4. Servo

Untuk kod lakaranMungkin sesederhana itu di mana servo akan melalui kedudukannya, berhenti pada 0º, 90º dan 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);
}

Sekarang jika anda mahu alihkannya dari darjah ke darjah, maka seperti ini:

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


Menjadi yang pertama untuk komen

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.