Motor stepper: integrasi dengan Arduino

Motor stepper

Motor listrik semakin diminati, di antaranya mungkin yang bekerja dengan arus searah menonjol, yang paling populer dalam proyek pembuat dengan Arduino, karena mereka menyediakan mobilitas. Diantaranya, sorot motor stepper yang digunakan untuk berbagai aplikasi, terutama untuk robotika, seperti aktuator, dll.

Mobil listrik, robot otonom kecil, aplikasi industri untuk otomasi, perangkat gerakan berulang, dll. Alasan motor servo dan motor stepper sangat bagus untuk aplikasi ini adalah karena mereka bisa melakukan gerakan lambat atau cepat, tetapi di atas segalanya terkontrol. Selain itu, penggerak kontinu untuk aplikasi yang memerlukan banyak penghentian dan start dengan presisi tinggi.

Jenis motor listrik

Di dalam motor listrik jenis berikut dapat disorot:

  • Motor DC atau DC: Motor DC bekerja dengan jenis arus ini, seperti namanya. Mereka dapat berkisar dari daya beberapa mW hingga beberapa MW dalam yang paling kuat dan besar, yang digunakan untuk aplikasi industri, kendaraan, elevator, konveyor, kipas angin, dll. Kecepatan belok (RPM) dan torsi yang diterapkan dapat diatur sesuai dengan umpan.
  • Motor AC atau AC (asynchronous dan gulungan rotor): mereka bekerja dengan arus bolak-balik, dengan rotor yang sangat spesifik yang bekerja berkat fase yang dikontribusikan oleh jenis arus ini untuk menghasilkan rotasi melalui tolakan magnetis elektromagnet dengan cara yang mirip dengan yang dilakukan DC. Mereka sangat murah dan naik hingga beberapa kW. Mereka dapat diatur dalam kecepatan putaran, tetapi elemen pengaturan lebih mahal daripada DC. Ini sering digunakan untuk peralatan rumah tangga.
  • Motor stepper- Juga dikenal sebagai stepper, mereka mirip dalam banyak hal dengan DC, tetapi dengan kecepatan dan daya putaran rendah. Di sini yang menonjol adalah pemosisian sumbu, yaitu ketepatan untuk menempatkannya pada posisi tertentu. Sudut dan kecepatan rotasinya dapat dikontrol banyak, itulah sebabnya mereka digunakan dalam floppy drive, hard drive (HDD), robot, otomatisasi proses, dll.
  • Motor servo: dapat dikatakan bahwa ini adalah evolusi dari motor stepper, bekerja dengan tenaga dan kecepatan kecil yang mencapai 7000 RPM dalam beberapa kasus. Motor ini dilengkapi kotak reduksi roda gigi dan sirkuit kontrol. Mereka memiliki presisi pemosisian yang sama dengan stepper dan sangat stabil dalam hal torsi yang diterapkan, menjadikannya ideal untuk beberapa robot dan aplikasi industri.

Motor stepper dan motor servo

rotor dan stator

Anda sudah tahu apa itu dua jenis motor elektronik, tapi saya ingin mengatakan sesuatu lebih lanjut tentang steppers. Giliran yang mereka buat tidak dilakukan terus menerus, tetapi dalam langkah-langkah kecil, demikianlah namanya. Rotor (bagian yang berputar) berbentuk roda bergigi, sedangkan stator (bagian yang tidak berputar) terdiri dari elektromagnet terpolarisasi berselang-seling. Dengan cara ini, ketika salah satu "diaktifkan", sisi-sisinya tidak diaktifkan, yang menarik gigi rotor ke arahnya, sehingga memungkinkan gerak maju yang tepat yang dicirikan.

drv8825
Artikel terkait:
DRV8825: driver untuk motor stepper

Tergantung pada gigi rotor, akan memungkinkan untuk maju lebih banyak atau lebih sedikit pada gilirannya. Jika Anda memiliki lebih banyak gigi, diperlukan lebih banyak langkah untuk menyelesaikan belokan, tetapi langkahnya akan lebih pendek, sehingga akan menjadi motor yang lebih akurat. Jika Anda memiliki sedikit gigi, langkah-langkah lompatan akan lebih mendadak, tanpa terlalu presisi. Oleh karena itu, langkah yang harus diambil motor stepper untuk menyelesaikan belokan akan bergantung pada langkah sudut.

Langkah-langkah itu sudut distandarisasi, meskipun Anda dapat menemukan beberapa motor yang memiliki nada tidak standar. Sudut biasanya: 1.8º, 5.625º, 7.5º, 11.25º, 18º, 45º, dan 90º. Untuk menghitung berapa langkah yang dibutuhkan motor stepper untuk menyelesaikan putaran atau putaran penuh (360º), Anda hanya perlu membagi. Misalnya, jika Anda memiliki motor stepper 45º, Anda akan memiliki 8 langkah (360/45 = 8).

berputar dengan bias (fase)

Di dalam motor ini Anda memiliki unipolar (paling populer), dengan 5 atau 6 kabel, atau bipolar, dengan 4 kabel. Menurut ini, satu atau lainnya akan dilakukan urutan polarisasi melewati arus melalui kumparannya:

  • Polarisasi untuk bipolar:
Paso Terminal A Terminal B Terminal C Terminal D
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V
  • untuk unipolar:
Paso Kumparan A Coil B Coil C Coil D
1 +V +V 0 0
2 0 +V +V 0
3 0 0 +V +V
4 +V 0 0 +V

Pengoperasian dalam kedua kasus sama, mempolarisasi kumparan untuk menarik rotor ke tempat yang Anda inginkan untuk meletakkan sumbu. jika kamu mau pertahankan dalam satu posisi, Anda harus mempertahankan polarisasi untuk posisi dan voila itu. Dan jika Anda ingin magnet itu bergerak maju, Anda mempolarisasi magnet berikutnya dan magnet itu akan mengambil langkah lain, dan seterusnya ...

Jika Anda menggunakan motor servo, Anda sudah tahu bahwa ini pada dasarnya adalah motor stepper sehingga semua yang dikatakan bekerja untuk mereka juga. Satu-satunya hal yang mencakup gigi reduksi tersebut untuk mendapatkan lebih banyak langkah per putaran dan dengan demikian memiliki presisi yang jauh lebih tinggi. Misalnya, Anda dapat menemukan motor dengan 8 langkah per putaran yang jika memiliki kotak roda gigi 1:64, karena itu berarti bahwa setiap langkah dari delapan langkah tersebut dibagi lagi menjadi 64 langkah yang lebih kecil, yang akan memberikan maksimum 512 langkah per putaran. Artinya, setiap langkah akan menjadi sekitar 0.7º.

L298n
Artikel terkait:
L298N: modul untuk mengontrol motor untuk Arduino

Tambahkan juga bahwa Anda harus menggunakan beberapa pengawas yang dapat digunakan untuk mengontrol polarisasi, kecepatan, dll., dengan, misalnya, H-Bridge. Beberapa model adalah L293, ULN2003, ULQ2003, dll.

Dónde comprar

Anda membelinya di berbagai situs online atau di toko elektronik khusus. Juga, jika Anda seorang pemula, Anda dapat menggunakan kit yang mencakup semua yang Anda butuhkan dan bahkan piringnya Arduino UNO dan manual untuk mulai bereksperimen dan membuat proyek Anda. Kit ini mencakup semua yang Anda butuhkan, mulai dari motor itu sendiri, pengontrol, papan, papan tempat memotong roti, dll.

Contoh motor stepper dengan Arduino

Arduino dengan motor stepper dan pengontrol

Terakhir, tunjukkan a contoh praktis dengan Arduino, menggunakan pengontrol ULN2003 dan motor stepper 28BYJ-48. Ini sangat sederhana, tetapi cukup bagi Anda untuk mulai membiasakan diri dengan cara kerjanya sehingga Anda dapat mulai melakukan beberapa tes dan melihat bagaimana perilakunya ...

Seperti yang Terlihat Di skema koneksi, koil motor A (IN1), B (IN2), C (IN3) dan D (IN4) masing-masing telah ditetapkan ke koneksi 8, 9, 10, dan 11 pada papan Arduino. Di sisi lain, papan driver atau pengontrol harus diumpankan pada pin 5-12V-nya (ke GND dan 5V dari Arduino) dengan tegangan yang sesuai sehingga pada gilirannya memberi makan motor yang terhubung ke konektor plastik putih yang memiliki driver ini. atau pengontrol.

ini Mesin 28BYJ-48 Ini adalah motor stepper tipe unipolar dengan empat kumparan. Oleh karena itu, untuk memberi Anda gambaran tentang cara kerjanya, Anda dapat mengirim nilai TINGGI (1) atau RENDAH (0) ke kumparan dari papan Arduino sebagai berikut untuk langkah-langkahnya:

Paso Kumparan A Coil B Coil C Coil D
1 TINGGI TINGGI RENDAH RENDAH
2 RENDAH TINGGI TINGGI RENDAH
3 RENDAH RENDAH TINGGI TINGGI
4 TINGGI RENDAH RENDAH TINGGI

Mengenai sketsa atau kode yang diperlukan untuk memprogram gerakan Anda, karena akan menjadi penggunaan berikut ini IDE Arduino (memodifikasi dan bereksperimen untuk menguji bagaimana gerakan diubah):

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}


Jadilah yang pertama mengomentari

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.