Haloo Sahabat Indobot. Sedang ada project apa hari ini?
Kali ini kita akan membahas terkait motor stepper. Ada yang masih belum tau apa itu motor stepper?
Adalah salah satu jenis motor DC yang perputarannya berdasarkan langkah (langkah) diskrit. Input pada Motor ini berasal dari pulsa-pulsa digital yang diterima saat di hubungkan dengan tegangan. Step yang mengendalikan putaran motor, berasal dari konstruksi kumparan yang di susun menjadi beberapa fase. Motor ini dapat berputar jika motor di aliri listrik secara berurutan.
[lwptoc numeration=”none” title=”Daftar Isi”] |
Motor Ini engubah kelistrikan tadi menjadi energi mekanik. Jika di bandingkan motor DC biasa, torsi dari motor stepper masih kalah. Namun motor stepper memiliki keunggulan dalam tingkat presisi dalam setiap putarannya.
Pada project kali ini, kita akan mencoba mengendalikan Motor Stepper dengan menggunakan Arduino Uno dan potensiometer. Potensiometer berguna untuk mengirimkan sinyal listrik analog yang akan dibaca arduino Uno dan diterapkan sebagai nilai dari motor stepper.
Langsung saja kita coba ya gaes.
Mengendalikan dengan Arduino Uno
Siapkan Alat dan Bahan
Alat dan bahan yang digunakan untuk project kita kali ini adalah sebagai berikut. Jangan sampai ada yang kelewat ya.
- laptop/PC yang terinstall Arduino IDE
- Arduino Uno 1
- Motor stepper 1
- Driver Motor stepper 1
- Potensiometer 1
- Breadboard 1
- Kabel jumper secukupnya
Susun Skema Rangkaian
Susunlah rangkaian seperti berikut ini.
Tulislah Program pada Aplikasi Arduino IDE
Program pertama yang kita buat adalah program untuk mengetahui jumlah langkah dalam satu putaran (360 derajat). Tulislah program arduino seperti berikut. Jangan sampai ada yang terlewat ya. Perhatikan keterangan-keterangannya agar teman-teman juga memahami program yang teman-teman buat.
//Memutar dengan pelan (step by step) #include <Stepper.h> const int stepsPerRevolution = 200; // nilai banyaknya step per putaran // menginisialisasi stepper menggunakan pin 8, 9, 10, dan 11 secara berurutan Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); int stepCount = 0; // nilai step void setup() { // inisialisasi serial 9600 Serial.begin(9600); } void loop() { // perubahan setiap 1 langkah myStepper.step(1); Serial.print("steps:"); Serial.println(stepCount); //menuliskan langkah di serial monitor stepCount++; delay(500); } |
Program di atas akan membuat motor bergerak dengan kecepatan sekitar 0,5 detik setiap 1 step. Coba hitung berapa berapa step yang dibutuhkan untuk mencapai 1 putaran penuh. Bagaimana caranya?
Pada program di atas, akan tertulis jumlah langkah setiap 1 putarannya dan yang perlu kita lakukan adalah memperhatikan putaran hingga sudah mencapai 1 putaran penuh. Jika sudah, cek di serial monitor, berapa jumlah step yang dibutuhkan. Jumlah ini kemudian dapat dimasukkan ke const int stepsPerRevolution = 200. Ubah angka 200 sesuai dengan perhitungan.
baca juga: Tutorial Arduino UNO R3 Mengatur Gerak Servo Menggunakan Potensio
Berikut ini adalah program untuk mengendalikan kecepaan motor stepper dengan potensiometer.
//Mengendalikan kecepatan #include <Stepper.h> const int stepsPerRevolution = 200; // ubah angka ini sesuai dengan jumlah step dalam 1 putaran // menginisialisasi stepper menggunakan pin 8, 9, 10, dan 11 secara berurutan Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); int stepCount = 0; // nilai dari step awal void setup() { Serial.print ("Speed Control Motor Stepper"); delay(1000); //persiapan } void loop() { // membaca nilai masukkan dari potensio int sensorReading = analogRead(A0); // proses pembacaan potensio menjadi kecepatan motor int motorSpeed = map(sensorReading, 0, 1023, 0, 100); // mengatur kecepatan motor berdasarkan potensio if (motorSpeed > 0) { myStepper.setSpeed(motorSpeed); myStepper.step(stepsPerRevolution / 100); } } |
Upload program di atas. kemudian uji dengan menggerakkan potensiometer. Motor stepper akan berputar semakin cepat ketika kita menggerakkan potensio ke kanan.
baca juga: Menghidupkan Motor dengan Handphone
Program berikutnya adalah mengendalikan putaran sesuai dengan putaran potensiometer.
//Mengendalikan sudut putaran sesuai dengan potensio #include <Stepper.h> // ubah angka ini dengan step yang anda butuhkan #define STEPS 100 // menginisialisasi stepper menggunakan pin 8, 9, 10, dan 11 secara berurutan Stepper stepper(STEPS, 8, 9, 10, 11); // kembali membaca nilai masukkan dari potensio int previous = 0; void setup() { // mengatur kecepatan motor menjadi 30 RPMs stepper.setSpeed(30); } void loop() { // memperoleh nilai dari potensio int val = analogRead(0); //menyamakan step dengan nilai potensio stepper.step(val - previous); previous = val; } |
Upload program di atas. kemudian coba putar potensiometernya. Motor akan berputar sesuai dengan putaran kita pada potensiometer.
Program yang terakhir, kita akan mencoba untuk memutar motor tanpa potensio dengan memutar searah jarum jam dan sebaliknya. Berikut program yang dapat digunakan.
//memutar motor bergerak kanan kiri #include <Stepper.h> //atur banyaknya step untuk satu putaran const int stepsPerRevolution = 200; // menginisialisasi stepper menggunakan pin 8, 9, 10, dan 11 secara berurutan Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { // mengatur kecepatan stepper myStepper.setSpeed(60); Serial.begin(9600); } void loop() { // langkah untuk memutar stepper searah jarum jam Serial.println("clockwise"); myStepper.step(stepsPerRevolution); delay(500); // langkah memutar stepper berlawanan jarum jam Serial.println("counterclockwise"); myStepper.step(-stepsPerRevolution); delay(500); } |
baca juga: Dasar Kendali Motor Servo dengan Arduino
Nah jadi begitu cara untuk mengendalikan motor dengan menggunakan arduino Uno. Teman-teman juga dapat mengubah potensiometer dengan sensor yang teman-teman inginkan lo. Caranya gampang. Kita hanya perlu merubah analogRead nya saja sesuai dengan sensor yang kita gunakan.
Sekian untuk pembahasan kali ini. Silakan mencoba ya guys.
Ijin tanya master,kalau stepper di program 2 putaran penuh,tapi sebelum sampai 2 putaran tiba tiba power off (mati lampu).
Bagaimana supaya waktu power on kembali stepper kembali ke titik nol nya,
Apakah harus ada elemen tambahan dan cara coding nya bagaimana?,
Terima kasih atas perhatian nya