Mengendalikan Motor Stepper Berbasis Arduino Uno dengan Sensor

Di jejak sebelumnya kami sudah membuat kendali motor stepper berbasis Arduino tanpa masukan berbentukk push button maupun sensor, yang mampu menggerakan motor stepper berputar searah terus menerus setiap 90 derajat dan juga motor stepper yang berputar bolak balik setiap 360 derajat secara terus menerus.

Pada jejak kali ini akan mencoba mendesain agar kecepatan putar motor stepper dapat berubah-ubah tergantung besar masukan yang diberikan dari sensor. Sinyal analog yang berubah-ubah dari sensor akan dioleh oleh Arduino sehingga delay atau frekuensi sinyal pulsa yang diberikan kepada motor stepper juga berubah.

Bentuk rangkaian yang dibuat seperti gambar di bawah ini.

Rangkaian Motor Stepper dan Arduino Uno dengan Sensor

Sensor pada rangkaian di atas menggunakan potensiometer yang membentuk rangkaian Voltage Divider (Pembagi Tegangan), sehingga tegangan yang masuk ke Arduino berubah-ubah secara linier. Dari percobaan dapat dilihat bahwa perputaran motor stepper akan makin cepat apabila nilai tegangan yang masuk dari sensor ke arduino tegangannya semakin kecil.

Rangkaian ini juga dilengkapi IC ULN2003 sebagai penguat arus motor stepper karena tegangan dan kuat arus keluaran dari motor stepper sangat kecil atau kurang dari 5V. Apabila kita perhatikan prinsip kerja dari IC ILN2003 sebenarnya hanya sebagai saklar untuk menghubungkan ke ground dari kuat arus yang mengalir melewati motor stepper yang berasal dari catu daya 12V.

Program kendali Motor Stepper berbasis Arduino Uno dengan sensor dari rangkaian di atas dapat dibuat sebagai berikut.

#include <Stepper.h>

const int stepsPerRevolution = 200; // banyak langkah perputaran

// menentukan pin keluaran, pin 3 s.d. 6:
Stepper myStepper(stepsPerRevolution, 3, 4, 5, 6);

int stepCount = 0; // nomor langkah awal

void setup() {
// tidak ada pengaturan
}

void loop() {
// membaca nilai sensor:
int sensorReading = analogRead(A0);
// memetakan nilai sensor ke dalam rentang dari 0 ke 100:
int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
// mengatur kecepatan motor stepper:
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
// langkah 1/100 dari 1 putaran:
myStepper.step(stepsPerRevolution / 100);
}
}

Program di atas dapat memutarkan motor stepper yang memiliki kecepatan berubah-ubah tergantung besar keluaran sensor yang digunakan, dalam rangkaian ini menggunakan potensiometer.

 

Untuk lebih jelasnya dapat dilihat dalam video di bawah ini.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *