● online
- Potensiometer 10K - Mono Potensio Meter Linear Res....
- LCD 16x2 / 1602 Display Biru + I2C Backpack Sudah ....
- Kapton Tape Polymide Film 50mm Polimida 50 mm Isol....
- Raspberry Pi 4 Model B 4GB Original UK E14 Raspi 4....
- Jasa Cetak PCB....
- LCD CHARACTER 16X2 1602 5V GREEN HIJAU BACKLIGHT M....
- Max7219 Led Dot Matrix 32x8 Display Module For Ard....
- 10X RESISTOR 1K 1KOHM 1/4W 1% METAL FILM....
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Tutorial Mengendalikan Motor DC Menggunakan Arduino Uno dan Motor Driver MX1508
Motor merupakan salah satu komponen paling penting dalam dunia robotika karena memungkinkan sebuah sistem untuk bergerak secara fisik. Dengan motor, kamu bisa membuat berbagai proyek menarik seperti mobil robot, conveyor mini, hingga mekanisme otomatis lainnya. Namun, motor tidak bisa langsung dikendalikan dari pin Arduino Uno.
Alasannya sederhana: motor membutuhkan arus dan daya yang jauh lebih besar dibandingkan kemampuan pin digital Arduino. Selain itu, motor juga bisa menghasilkan tegangan balik saat berhenti atau berubah arah secara tiba-tiba, yang berisiko merusak Arduino. Karena itulah dibutuhkan motor driver sebagai perantara agar motor bisa dikendalikan dengan aman.
Pada percobaan ini, kamu akan belajar cara mengendalikan empat motor DC menggunakan Arduino Uno dan motor driver MX1508. Sebelum digunakan untuk sistem robot, setiap motor akan diuji untuk memastikan arah putaran dan koneksi sudah benar.
Cara Kerja Sistem Kendali Motor
Arduino mengirimkan sinyal logika ke pin input motor driver. Ketika satu pin bernilai HIGH dan pasangannya bernilai LOW, motor akan berputar ke satu arah. Jika kombinasi logika dibalik, motor akan berputar ke arah sebaliknya. Ketika kedua pin bernilai LOW, motor akan berhenti.
Dengan mengatur beberapa motor secara bersamaan, Arduino dapat mengontrol pergerakan mobil robot, seperti maju, berhenti, dan mundur.
Alat dan Bahan yang Diperlukan
Untuk menjalankan percobaan ini, siapkan komponen berikut:
- Arduino Uno Trainer Kit
- Motor driver MX1508
- Motor DC
- Baterai sebagai sumber daya motor
- Roda atau ban mobil mainan
- Kabel jumper
- Software Arduino IDE
Wiring Rangkaian Motor Driver
Sebelum menulis program, susun terlebih dahulu rangkaian motor driver dengan Arduino Uno.
- Motor driver dihubungkan ke sumber daya motor melalui pin positif dan ground.
- Setiap motor DC dihubungkan ke keluaran motor driver.
Pin kendali motor driver dihubungkan ke pin digital Arduino sebagai berikut:
Motor Driver 1
- IN1 ke pin D13 Arduino
- IN2 ke pin D12 Arduino
- IN3 ke pin D11 Arduino
- IN4 ke pin D10 Arduino
Motor Driver 2
- IN1 ke pin D9 Arduino
- IN2 ke pin D8 Arduino
- IN3 ke pin D7 Arduino
- IN4 ke pin D6 Arduino

Gambar 1. Wiring Rangkaian Menggerakan Motor Driver
Setiap pasangan pin IN digunakan untuk mengatur satu motor, dengan kombinasi logika tertentu untuk menentukan arah putaran.
Menulis Program Menggerakkan Motor DC
Setelah rangkaian terpasang dengan benar, buka Arduino IDE, lalu tuliskan program berikut dan unggah ke papan Arduino Uno.
// ===== DRIVER 1 =====
#define D1_IN1 13
#define D1_IN2 12
#define D1_IN3 11
#define D1_IN4 10
// ===== DRIVER 2 =====
#define D2_IN1 9
#define D2_IN2 8
#define D2_IN3 7
#define D2_IN4 6
void setup() {
pinMode(D1_IN1, OUTPUT);
pinMode(D1_IN2, OUTPUT);
pinMode(D1_IN3, OUTPUT);
pinMode(D1_IN4, OUTPUT);
pinMode(D2_IN1, OUTPUT);
pinMode(D2_IN2, OUTPUT);
pinMode(D2_IN3, OUTPUT);
pinMode(D2_IN4, OUTPUT);
Serial.begin(9600);
Serial.println("2 Motor Driver MX1508 siap digunakan");
}
void loop() {
Serial.println("SEMUA MOTOR MAJU");
semuaMotorMaju();
delay(2000);
Serial.println("SEMUA MOTOR STOP");
stopSemuaMotor();
delay(1000);
Serial.println("SEMUA MOTOR MUNDUR");
semuaMotorMundur();
delay(2000);
Serial.println("SEMUA MOTOR STOP");
stopSemuaMotor();
delay(2000);
}
// ===== FUNGSI =====
void semuaMotorMaju() {
digitalWrite(D1_IN1, LOW);
digitalWrite(D1_IN2, HIGH);
digitalWrite(D1_IN3, LOW);
digitalWrite(D1_IN4, HIGH);
digitalWrite(D2_IN1, LOW);
digitalWrite(D2_IN2, HIGH);
digitalWrite(D2_IN3, HIGH);
digitalWrite(D2_IN4, LOW);
}
void semuaMotorMundur() {
digitalWrite(D1_IN1, HIGH);
digitalWrite(D1_IN2, LOW);
digitalWrite(D1_IN3, HIGH);
digitalWrite(D1_IN4, LOW);
digitalWrite(D2_IN1, HIGH);
digitalWrite(D2_IN2, LOW);
digitalWrite(D2_IN3, LOW);
digitalWrite(D2_IN4, HIGH);
}
void stopSemuaMotor() {
digitalWrite(D1_IN1, LOW);
digitalWrite(D1_IN2, LOW);
digitalWrite(D1_IN3, LOW);
digitalWrite(D1_IN4, LOW);
digitalWrite(D2_IN1, LOW);
digitalWrite(D2_IN2, LOW);
digitalWrite(D2_IN3, LOW);
digitalWrite(D2_IN4, LOW);
}
Penjelasan Kode
- #define D1_IN1 13 hingga #define D1_IN4 10 digunakan untuk mendefinisikan pin kendali motor driver pertama agar mudah dipanggil dalam program
- #define D2_IN1 9 hingga #define D2_IN4 6 digunakan untuk mendefinisikan pin kendali motor driver kedua, dengan penyesuaian arah pada salah satu channel
- pinMode(…, OUTPUT); digunakan untuk mengatur seluruh pin yang terhubung ke motor driver sebagai keluaran
- semuaMotorMaju(); digunakan untuk menjalankan seluruh motor ke arah maju dengan kombinasi logika yang sesuai
- semuaMotorMundur(); digunakan untuk menjalankan seluruh motor ke arah mundur dengan kombinasi logika kebalikan dari arah maju
- stopSemuaMotor(); digunakan untuk menghentikan seluruh motor dengan mematikan semua pin kendali
- digitalWrite(…, HIGH atau LOW); digunakan untuk mengatur arah putaran motor melalui motor driver
Hasil Percobaan
Setelah program diunggah dan rangkaian terhubung dengan benar, sistem akan berjalan sesuai urutan yang telah ditentukan. Pada tahap pertama, seluruh motor akan bergerak maju secara bersamaan. Pergerakan ini menunjukkan bahwa Arduino berhasil mengirimkan sinyal kendali yang tepat ke kedua motor driver, termasuk penyesuaian arah motor yang memiliki orientasi terbalik.

Gambar 2. Hasil Percobaan Menggerakan Motor
Setelah beberapa detik, semua motor akan berhenti sejenak. Kondisi ini menandakan bahwa perintah penghentian motor bekerja dengan baik dan sistem berada dalam keadaan aman. Selanjutnya, motor akan bergerak mundur dengan arah putaran yang berlawanan, tanpa perlu mengubah sambungan kabel.
Siklus maju, berhenti, dan mundur akan terus berulang selama Arduino mendapatkan catu daya. Percobaan ini membuktikan bahwa Arduino Uno mampu mengendalikan beberapa motor DC secara bersamaan dengan stabil dan menjadi dasar yang kuat untuk pengembangan robot bergerak yang lebih kompleks.
Tutorial Mengendalikan Motor DC Menggunakan Arduino Uno dan Motor Driver MX1508
UI (User Interface) dan UX (User Experience) dalam sebuah pengembangan website dan aplikasi sangat penting dan saling berkaitan. Tetapi... selengkapnya
Tidak jauh-jauh dari shield ESP-01 lagi, kali ini akan membahas module shield untuk relay. Cukup praktis dan hemat size... selengkapnya
Siapa yang kenal dengan modul SIM? dengan modul ini kita bisa berkomunikasi dengan SIM GSM baik untuk mengirim... selengkapnya
Hari ini kita akan belajar untuk membaca data analog dari sensor LDR menggunakan Blynk dan NodeMCU. Tidak hanya membaca... selengkapnya
MP3 DFPlayer merupakan sebuah modul elektronik yang berfungsi untuk memainkan sebuah suara yang filenya berketensi MP3. Seperti memutar sebuah... selengkapnya
Salah satu fitur paling menarik dari Raspberry Pi adalah deretan pin GPIO (General-Purpose Input/Output) yang terletak di sepanjang sisi atas... selengkapnya
Sensor getar Piezoelectric Ceramic (Piezo) merupakan sensor getaran sederhana namun sangat sensitif yang mampu menghasilkan tegangan saat terjadi tekanan atau... selengkapnya
Secara bawaan, Arduino Uno sebenarnya sudah memiliki pin analog. Tapi pada beberapa proyek, terutama saat jumlah sensor analog semakin banyak,... selengkapnya
Di dalam dunia elektronika, dikenal dua jenis input dan output (I/O) yaitu, analog dan digital. Untuk yang digital itu gampang... selengkapnya
Hallo untuk selingan ya :p kali ini ini akan membahas khusus pemula yang ingin belajar Arduino yaitu membuat simulasi... selengkapnya
Support terus UKM indonesia dengan membeli produk-produk dalam negeri. Untuk kualitas tidak usah diragukan, udah kita tes QC dengan sangat… selengkapnya
Rp 8.500Kabel Jumper Dupont Pelangi 10 cm.. male to female 1 lembar isi 40 kabel
Rp 9.000Tang Crimping Press Skun Ratchet YTH SN-48B Model YTH SN-48B FOR NON INSULATED TERMINAL YTH SN-48B dengan mata Press 0.5… selengkapnya
Rp 150.000ESR meter/LCR meter dengan layar lebar lebih jelas dan mantap dan dengan tempat batre jd lebih rapih batre lebih aman… selengkapnya
Rp 131.000 Rp 134.000Features – Calibrated directly in Celsius (Centigrade) – Linear + 10.0 mV/C scale factor – 0.5C accuracy guaranteeable (at +25C)… selengkapnya
Rp 8.000Modul sensor tegangan AC bolak balik 3 fasa ini menggunakan optocoupler sehingga tegangan input (AC) tidak akan mengganggu/membahayakan tegangan output… selengkapnya
Rp 57.000Compatibility: USB v2.0 standard Interface: Network: USB Series: RS-485 Port: an independent RS-485 Connector: Network: USB type A connector Series:… selengkapnya
Rp 38.800ESP-WROOM-32 is Powered by Espressif’s most advanced SoC, the ESP-WROOM-32 features high performance, a wide range of peripherals, Wi-Fi and… selengkapnya
Rp 38.400Kinerja Produk: Warnanya coklat (amber), Goldfinger tape sticky baik, patuh, suhu tinggi, pelarut, tidak ada rembesan timah dan tidak ada… selengkapnya
Rp 11.900Ini yang Seri SN – DS3231 I2C RTC Module khusus DS3231SN – Include Baterai – Module jam digital – Keperluan… selengkapnya
Rp 34.900

Saat ini belum tersedia komentar.