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.
Indeks
Apa itu 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
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
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:
-
AZDelivery Servo MG90S Mikro: menyokong sehingga 13.4 kg.
- Inovateking-EU: dengan berat hingga 25 kg / cm.
- Inovateking-EU: model kalis air yang lain, dan dengan berat hingga 35kg / cm.
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
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:
- Buka Arduino IDE.
- Pergi ke Program.
- Kemudian Sertakan Perpustakaan.
- 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