Motor DC merupakan salah satu komponen aktuator yang paling sering digunakan dalam berbagai proyek elektronika, robotika, maupun sistem otomasi. Namun, motor DC tidak dapat dihubungkan langsung ke pin Arduino karena membutuhkan arus yang lebih besar dibandingkan kemampuan keluaran pin mikrokontroler. Oleh karena itu, diperlukan sebuah driver motor untuk menjembatani Arduino dengan motor DC.
Salah satu solusi yang praktis adalah menggunakan Arduino Motor Shield Rev3. Shield ini dirancang khusus untuk dipasang langsung di atas board Arduino sehingga proses instalasi menjadi lebih mudah tanpa memerlukan rangkaian tambahan yang rumit.
Pada tutorial ini, Anda akan mempelajari cara menggunakan Arduino Motor Shield Rev3 untuk mengendalikan motor DC, mulai dari pemasangan perangkat keras, pengaturan sumber daya, hingga pemrograman Arduino untuk mengatur arah putaran, kecepatan, pengereman, pembacaan arus motor, serta pengendalian dua motor secara bersamaan.
Perangkat Keras yang Dibutuhkan
- Arduino Uno R3
- Kabel USB
- Arduino Motor Shield Rev3
- Motor DC
- Sumber daya eksternal (misalnya adaptor DC atau baterai)
- Socket atau konektor daya DC
Mengenal Arduino Motor Shield Rev3
Arduino Motor Shield Rev3 menggunakan IC driver L298P Dual Full-Bridge sebagai pengendali utama motor. IC ini memungkinkan Arduino untuk mengontrol dua motor DC secara independen atau satu motor stepper dengan kontrol penuh terhadap arah putaran, kecepatan, dan fungsi pengereman. Karena dirancang mengikuti bentuk fisik Arduino Uno, Motor Shield Rev3 dapat dipasang langsung di atas board Arduino tanpa memerlukan breadboard maupun kabel jumper tambahan yang berlebihan. Hal ini membuat proses perakitan menjadi lebih sederhana dan rapi.
Fitur Utama Arduino Motor Shield Rev3
1. Dua Kanal Motor Independen
Motor Shield menyediakan dua kanal pengendali motor, yaitu Channel A dan Channel B. Masing-masing kanal dapat digunakan untuk mengendalikan satu motor DC secara terpisah.
2. Pengaturan Arah Putaran
Arah putaran motor dapat dikendalikan melalui pin digital Arduino. Dengan fitur ini, motor dapat diputar ke arah maju (forward) maupun mundur (backward) sesuai kebutuhan aplikasi.
3. Kontrol Kecepatan Menggunakan PWM
Kecepatan motor diatur menggunakan sinyal PWM (Pulse Width Modulation). Nilai PWM dapat diatur dalam rentang 0 hingga 255. Semakin tinggi nilai PWM yang diberikan, semakin cepat motor akan berputar.
4. Fitur Pengereman (Brake)
Motor Shield Rev3 dilengkapi fungsi pengereman elektronik yang memungkinkan motor berhenti lebih cepat dibandingkan hanya memutus suplai daya ke motor.
5. Pembacaan Arus Motor
Shield ini juga menyediakan fitur Current Sensing yang memungkinkan Arduino memonitor arus yang digunakan oleh motor melalui pin analog. Fitur ini berguna untuk memantau beban motor dan mendeteksi kondisi abnormal seperti motor macet atau kelebihan beban.
Pemetaan Pin Arduino Motor Shield Rev3
Saat menggunakan Arduino Motor Shield Rev3, beberapa pin pada Arduino akan digunakan secara otomatis oleh shield untuk mengendalikan motor. Oleh karena itu, pin-pin tersebut sebaiknya tidak digunakan untuk keperluan lain agar tidak terjadi konflik.
Untuk Channel A, pin D12 berfungsi sebagai pengatur arah putaran (Direction), pin D3 digunakan untuk sinyal PWM yang mengatur kecepatan motor, pin D9 berfungsi sebagai kontrol rem (Brake), dan pin A0 digunakan untuk membaca arus motor melalui fitur Current Sense.
Sementara itu, pada Channel B, pin D13 digunakan untuk mengatur arah putaran motor, pin D11 berfungsi sebagai pin PWM untuk pengaturan kecepatan, pin D8 digunakan sebagai kontrol rem, dan pin A1 berfungsi untuk memantau arus motor melalui fitur Current Sense.
Dengan memahami pembagian fungsi pin ini, Anda dapat merancang rangkaian dan program Arduino dengan lebih mudah serta menghindari penggunaan pin yang sudah dipakai oleh Motor Shield Rev3.
Sumber Daya Eksternal untuk Motor
Arduino Motor Shield Rev3 memerlukan sumber daya eksternal untuk menggerakkan motor. Hal ini karena arus yang dibutuhkan motor DC umumnya jauh lebih besar dibandingkan kemampuan suplai daya dari port USB Arduino. Hubungkan sumber daya eksternal dengan tegangan sekitar 6V hingga 12V ke terminal daya yang tersedia pada Motor Shield. Sumber daya eksternal tersebut akan digunakan untuk menggerakkan motor, sedangkan Arduino tetap dapat memperoleh daya dari kabel USB atau adaptor dayanya sendiri.
Catatan: Jangan mengandalkan daya dari port USB untuk menggerakkan motor DC karena dapat menyebabkan motor tidak berputar dengan baik atau bahkan membuat Arduino menjadi tidak stabil.
Baca juga: Motor Arduino - Mengenal Motor Servo, Motor Stepper, dan Motor DC
Wiring Diagram Arduino Motor Shield Rev3
Proses pemasangan Arduino Motor Shield Rev3 cukup sederhana, yaitu:
1. Pasang Motor Shield Rev3 di atas board Arduino Uno dengan memastikan seluruh pin tersusun sejajar dengan benar.
2. Hubungkan motor DC ke terminal sekrup pada Channel A atau Channel B sesuai kebutuhan.
3. Sambungkan sumber daya eksternal ke terminal power pada Motor Shield.
4. Pastikan polaritas sumber daya sudah benar sebelum menyalakan rangkaian.
Sebagai contoh, Anda dapat menggunakan dua baterai Li-Ion 3,7V yang disusun seri sehingga menghasilkan tegangan sekitar 7,4V untuk menggerakkan motor.
Instalasi Library DIYables_DC_Motor
Untuk mempermudah pengendalian motor menggunakan Motor Shield Rev3, kita dapat menggunakan library DIYables_DC_Motor. Ikuti langkah-langkah berikut untuk menginstalnya:
1. Hubungkan board Arduino ke komputer menggunakan kabel USB.
2. Buka aplikasi Arduino IDE.
3. Pilih board dan port yang sesuai.
4. Klik menu Library Manager pada bagian kiri Arduino IDE.
5. Cari library DIYables_DC_Motor.
6. Pilih library yang diterbitkan oleh DIYables.
7. Klik tombol Install dan tunggu hingga proses instalasi selesai.
Library ini bersifat mandiri sehingga tidak memerlukan library tambahan lainnya.
Struktur Dasar Program
Setiap program yang menggunakan library DIYables_DC_Motor umumnya memiliki struktur dasar seperti berikut:
#include <DIYables_DC_Motor.h>
DIYables_DC_Motor motor(MOTOR_CH_A); // Use Channel A
void setup() {
motor.begin(); // Initialize motor pins
}
void loop() {
motor.run(MOTOR_FORWARD, 100); // Run forward at speed 100
delay(2000);
motor.brake(); // Stop the motor
delay(1000);
}
Pada program di atas, fungsi motor.begin() digunakan untuk menginisialisasi seluruh pin yang dibutuhkan oleh motor, termasuk pin arah putaran, PWM, dan rem. Selanjutnya, fungsi motor.run() digunakan untuk menjalankan motor dengan arah dan kecepatan tertentu. Parameter pertama menentukan arah putaran motor, sedangkan parameter kedua menentukan nilai kecepatan PWM. Untuk menghentikan motor, digunakan fungsi motor.brake(). Setelah fungsi ini dipanggil, motor akan masuk ke mode pengereman sehingga putaran dapat berhenti lebih cepat. Perlu diperhatikan bahwa objek motor tidak memerlukan fungsi pembaruan (update) secara terus-menerus di dalam loop(). Setelah dijalankan, motor akan tetap berputar hingga kondisi atau perintahnya diubah oleh program.
Kode Program Arduino – Kontrol Motor DC pada Channel A
Setelah memahami cara kerja Arduino Motor Shield Rev3 dan melakukan instalasi library yang diperlukan, langkah berikutnya adalah mengendalikan motor DC melalui Channel A. Contoh program berikut akan membuat motor berputar secara bergantian ke arah maju dan mundur. Setiap perubahan arah diselingi dengan proses pengereman selama beberapa detik sehingga pergerakan motor dapat diamati dengan jelas.
Kode Program
#include <DIYables_DC_Motor.h>
DIYables_DC_Motor motor(MOTOR_CH_A);
bool directionState = false;
void setup() {
Serial.begin(9600);
motor.begin();
Serial.println("Motor Shield - Channel A");
}
void loop() {
// Toggle direction each cycle
directionState = !directionState;
int direction = directionState ? MOTOR_FORWARD : MOTOR_BACKWARD;
// Run motor with speed 30 (out of 255)
motor.run(direction, 30);
Serial.print("Running ");
Serial.println(directionState ? "FORWARD" : "BACKWARD");
delay(2000);
// Brake the motor
motor.brake();
Serial.println("Braking");
delay(2000);
}
Cara Kerja Program
Pada program di atas, objek motor dibuat menggunakan parameter MOTOR_CH_A, yang berarti motor akan dikendalikan melalui Channel A pada Motor Shield Rev3. Saat program dijalankan, fungsi motor.begin() akan menginisialisasi seluruh pin yang diperlukan oleh Channel A. Setelah itu, variabel directionState digunakan untuk menentukan arah putaran motor secara bergantian.
Di dalam fungsi loop(), motor akan:
1. Berputar ke arah maju (forward) selama 2 detik.
2. Melakukan pengereman selama 2 detik.
3. Berputar ke arah mundur (backward) selama 2 detik.
4. Melakukan pengereman kembali selama 2 detik.
Proses tersebut akan terus berulang selama board Arduino masih menyala. Selain mengendalikan motor, program juga mengirimkan informasi status ke Serial Monitor sehingga pengguna dapat melihat arah putaran motor yang sedang aktif.
Langkah Pengujian
Untuk mencoba program di atas, ikuti langkah berikut:
1. Pasang Arduino Motor Shield Rev3 pada board Arduino.
2. Hubungkan motor DC ke terminal Channel A.
3. Sambungkan sumber daya eksternal ke Motor Shield.
4. Hubungkan Arduino ke komputer menggunakan kabel USB.
5. Buka Arduino IDE dan pilih board serta port yang sesuai.
6. Salin kode program di atas ke editor Arduino IDE.
7. Klik tombol Upload untuk mengunggah program ke Arduino.
8. Setelah proses upload selesai, buka Serial Monitor.
Jika seluruh koneksi sudah benar, motor akan bergerak maju selama 2 detik, berhenti melalui proses pengereman selama 2 detik, kemudian berputar ke arah berlawanan selama 2 detik dan terus mengulangi pola tersebut.
Memahami Fungsi-fungsi Utama pada Library DIYables_DC_Motor
Library DIYables_DC_Motor menyediakan beberapa fungsi penting yang digunakan untuk mengendalikan motor DC melalui Motor Shield Rev3.
1. Fungsi run()
Fungsi ini merupakan fungsi utama yang digunakan untuk menjalankan motor.
Contoh penggunaan:
motor.run(MOTOR_FORWARD, 100);
Perintah di atas akan menjalankan motor ke arah maju dengan nilai PWM sebesar 100.
2. Fungsi setSpeed()
Fungsi ini digunakan untuk mengubah kecepatan motor tanpa mengubah arah putarannya.
Contoh:
motor.setSpeed(150);
Nilai PWM dapat diatur mulai dari 0 hingga 255.
3. Fungsi setDirection()
Fungsi ini digunakan ketika hanya arah putaran yang ingin diubah.
Contoh:
motor.setDirection(MOTOR_BACKWARD);
Motor akan berputar ke arah berlawanan tanpa mengubah nilai PWM yang sedang digunakan.
4. Fungsi brake()
Fungsi ini mengaktifkan pengereman elektronik pada motor.
Contoh:
motor.brake();
Metode ini biasanya menghasilkan penghentian motor yang lebih cepat dibandingkan hanya mengurangi PWM menjadi nol.
5. Fungsi release()
Fungsi release() digunakan untuk menonaktifkan mode pengereman sehingga motor dapat kembali dijalankan.
Contoh:
motor.release();
6. Fungsi readCurrent()
Fungsi ini digunakan untuk membaca nilai sensor arus yang tersedia pada Motor Shield Rev3.
Contoh:
int current = motor.readCurrent();
Nilai yang dihasilkan masih berupa data ADC mentah sehingga memerlukan perhitungan tambahan apabila ingin dikonversi menjadi satuan ampere.
Kode Program Arduino – Kontrol Motor DC pada Channel B
Selain Channel A, Arduino Motor Shield Rev3 juga menyediakan Channel B yang dapat digunakan untuk mengendalikan motor DC kedua secara independen. Cara penggunaannya hampir sama dengan Channel A, perbedaannya hanya terletak pada pin yang digunakan oleh shield. Pada Channel B, konfigurasi pin yang digunakan adalah:
- Direction : D13
- PWM : D11
- Brake : D8
- Current Sense : A1
Dengan konfigurasi tersebut, Arduino dapat mengatur arah putaran, kecepatan, pengereman, serta membaca arus motor yang terhubung ke Channel B.
Kode Program
#include <DIYables_DC_Motor.h>
DIYables_DC_Motor motor(MOTOR_CH_B);
bool directionState = false;
void setup() {
Serial.begin(9600);
motor.begin();
Serial.println("Motor Shield - Channel B");
}
void loop() {
// Toggle direction each cycle
directionState = !directionState;
int direction = directionState ? MOTOR_FORWARD : MOTOR_BACKWARD;
// Run motor with speed 30 (out of 255)
motor.run(direction, 30);
Serial.print("Running ");
Serial.println(directionState ? "FORWARD" : "BACKWARD");
delay(2000);
// Brake the motor
motor.brake();
Serial.println("Braking");
delay(2000);
}
Penjelasan Program
Secara umum, program di atas memiliki cara kerja yang sama dengan contoh pada Channel A. Perbedaan utamanya terletak pada penggunaan objek:
DIYables_DC_Motor motor(MOTOR_CH_B);
Perintah tersebut menginstruksikan library untuk menggunakan Channel B sebagai jalur kontrol motor. Saat program berjalan, motor akan berputar maju selama 2 detik, melakukan pengereman selama 2 detik, berputar mundur selama 2 detik, dan melakukan pengereman kembali selama 2 detik. Siklus tersebut akan terus berulang hingga Arduino dimatikan atau program dihentikan.
Langkah Pengujian
Untuk menguji program ini, lakukan langkah berikut:
1. Hubungkan motor DC ke terminal Channel B pada Motor Shield Rev3.
2. Pastikan sumber daya eksternal telah terhubung dengan benar.
3. Upload program ke board Arduino.
4. Buka Serial Monitor untuk melihat status pergerakan motor.
Jika rangkaian sudah benar, motor akan bergerak dengan pola yang sama seperti contoh pada Channel A.
Catatan: Jangan menghubungkan motor ke Channel A jika program menggunakan MOTOR_CH_B, karena motor tidak akan merespons sesuai yang diharapkan.
Kode Program Arduino – Mengontrol Dua Motor DC Secara Bersamaan
Salah satu keunggulan Arduino Motor Shield Rev3 adalah kemampuannya mengendalikan dua motor DC secara independen. Fitur ini sangat berguna untuk berbagai aplikasi robotika seperti robot mobil, robot line follower, robot penghindar halangan, dan sistem otomasi lainnya. Pada contoh berikut, motor pertama dihubungkan ke Channel A, sedangkan motor kedua dihubungkan ke Channel B.
Kode Program
#include <DIYables_DC_Motor.h>
DIYables_DC_Motor motorA(MOTOR_CH_A);
DIYables_DC_Motor motorB(MOTOR_CH_B);
void setup() {
Serial.begin(9600);
motorA.begin();
motorB.begin();
Serial.println("Motor Shield - Both Channels");
}
void loop() {
// Both motors forward
motorA.run(MOTOR_FORWARD, 100);
motorB.run(MOTOR_FORWARD, 100);
Serial.println("Both FORWARD");
delay(2000);
// Brake both motors
motorA.brake();
motorB.brake();
Serial.println("Both BRAKING");
delay(1000);
// Both motors backward
motorA.run(MOTOR_BACKWARD, 100);
motorB.run(MOTOR_BACKWARD, 100);
Serial.println("Both BACKWARD");
delay(2000);
// Brake both motors
motorA.brake();
motorB.brake();
Serial.println("Both BRAKING");
delay(1000);
// Motors in opposite directions
motorA.run(MOTOR_FORWARD, 150);
motorB.run(MOTOR_BACKWARD, 150);
Serial.println("A FORWARD, B BACKWARD");
delay(2000);
// Brake both motors
motorA.brake();
motorB.brake();
Serial.println("Both BRAKING");
delay(1000);
}
Penjelasan Program
Pada program ini dibuat dua buah objek motor:
DIYables_DC_Motor motorA(MOTOR_CH_A);
DIYables_DC_Motor motorB(MOTOR_CH_B);
Masing-masing objek akan mengontrol motor yang berbeda.
Di dalam fungsi loop(), program menjalankan beberapa skenario pergerakan motor, yaitu:
Kedua Motor Bergerak Maju
motorA.run(MOTOR_FORWARD, 100);
motorB.run(MOTOR_FORWARD, 100);
Kedua motor berputar ke arah maju dengan kecepatan PWM sebesar 100.
Kedua Motor Dihentikan
motorA.brake();
motorB.brake();
Motor A dan Motor B dihentikan secara bersamaan menggunakan fitur pengereman elektronik.
Kedua Motor Bergerak Mundur
motorA.run(MOTOR_BACKWARD, 100);
motorB.run(MOTOR_BACKWARD, 100);
Kedua motor berputar ke arah berlawanan dari kondisi sebelumnya.
Motor Bergerak Berlawanan Arah
motorA.run(MOTOR_FORWARD, 150);
motorB.run(MOTOR_BACKWARD, 150);
Motor A berputar maju, sedangkan Motor B berputar mundur dengan kecepatan yang lebih tinggi.
Konfigurasi seperti ini sering digunakan pada robot beroda diferensial untuk menghasilkan manuver tertentu, seperti berputar di tempat atau melakukan koreksi arah.
Langkah Pengujian
Untuk mencoba program ini:
1. Hubungkan motor pertama ke Channel A.
2. Hubungkan motor kedua ke Channel B.
3. Sambungkan sumber daya eksternal yang sesuai.
4. Upload program ke Arduino.
5. Buka Serial Monitor.
Jika program berjalan dengan baik, kedua motor akan bergerak maju secara bersamaan, berhenti sesat, bergerak mundur secara bersamaan, berhenti kembali, bergerak dengan arah yang saling berlawanan, dan mengulangi siklus tersebut secara terus menerus. Contoh ini sangat cocok digunakan sebagai dasar pembuatan robot mobil dua roda yang memerlukan kontrol independen pada masing-masing motor.
Kode Program Arduino – Membaca Arus Motor (Current Sensing)
Selain mengendalikan arah dan kecepatan motor, Arduino Motor Shield Rev3 juga menyediakan fitur Current Sensing yang memungkinkan pengguna memantau arus yang dikonsumsi oleh motor DC. Fitur ini sangat berguna untuk berbagai aplikasi, seperti memantau beban kerja motor, mendeteksi kondisi motor macet (stall), mencegah kerusakan akibat arus berlebih, dan melakukan analisis konsumsi daya pada sistem. Pada Motor Shield Rev3, fitur pembacaan arus tersedia melalui A0 untuk Channel A dan A1 untuk Channel B
Kode Program
#include <DIYables_DC_Motor.h>
DIYables_DC_Motor motor(MOTOR_CH_A);
void setup() {
Serial.begin(9600);
motor.begin();
Serial.println("Motor Shield - Current Sensing");
}
void loop() {
// Run motor forward
motor.run(MOTOR_FORWARD, 100);
// Read and print current sensing value
int current = motor.readCurrent();
Serial.print("Current sensing (raw ADC): ");
Serial.println(current);
delay(500);
}
Penjelasan Program
Program di atas menjalankan motor pada Channel A dengan nilai PWM sebesar 100. Setelah motor berputar, fungsi:
motor.readCurrent();
digunakan untuk membaca nilai sensor arus yang tersedia pada Motor Shield Rev3. Nilai yang diperoleh masih berupa data ADC mentah (raw ADC value), sehingga belum menunjukkan satuan ampere secara langsung. Nilai tersebut kemudian dikirim ke Serial Monitor setiap 500 milidetik untuk memudahkan proses pemantauan.
Langkah Pengujian
1. Hubungkan motor DC ke Channel A
2. Upload program ke Arduino
3. Buka Serial Monitor
4. Amati nilai pembacaan arus yang ditampilkan secara berkala
Saat beban motor berubah, nilai ADC yang terbaca juga akan mengalami perubahan.
Catatan Mengenai Current Sensing
Perlu diperhatikan bahwa fungsi readCurrent() hanya menghasilkan nilai ADC mentah. Jika Anda ingin memperoleh nilai arus dalam satuan ampere (A), maka diperlukan perhitungan tambahan berdasarkan karakteristik rangkaian sensor arus yang digunakan oleh Motor Shield Rev3. Oleh karena itu, nilai ADC lebih sering digunakan sebagai indikator relatif untuk mendeteksi kenaikan atau penurunan beban motor.
Kode Program Arduino – Menggunakan Pin Kustom
Secara bawaan, library DIYables_DC_Motor menyediakan konfigurasi Channel A dan Channel B yang sudah ditentukan sebelumnya. Namun pada kondisi tertentu, Anda mungkin menggunakan driver motor lain atau melakukan modifikasi jalur pin. Dalam kasus seperti ini, library memungkinkan Anda menentukan pin kontrol secara manual.
Kode Program
#include <DIYables_DC_Motor.h>
// Custom pin assignment: direction=12, pwm=3, brake=9, currentSensing=A0
DIYables_DC_Motor motor(12, 3, 9, A0);
bool directionState = false;
void setup() {
Serial.begin(9600);
motor.begin();
Serial.println("Motor Shield - Custom Pins");
}
void loop() {
// Toggle direction each cycle
directionState = !directionState;
int direction = directionState ? MOTOR_FORWARD : MOTOR_BACKWARD;
// Run motor
motor.run(direction, 30);
Serial.print("Running ");
Serial.println(directionState ? "FORWARD" : "BACKWARD");
delay(2000);
// Brake the motor
motor.brake();
Serial.println("Braking");
delay(2000);
}
Penjelasan Program
Perhatikan bagian berikut:
DIYables_DC_Motor motor(12, 3, 9, A0);
Parameter yang digunakan secara berurutan adalah Direction, PWM, Brake, dan Current Sense. Pada contoh tersebut:
- Direction menggunakan pin D12
- PWM menggunakan pin D3
- Brake menggunakan pin D9
- Current Sense menggunakan pin A0
Dengan metode ini, Anda tidak harus menggunakan konfigurasi Channel A atau Channel B yang telah disediakan oleh library.
Kapan Menggunakan Pin Kustom?
Konfigurasi pin kustom biasanya digunakan ketika menggunakan driver motor selain Motor Shield Rev3, membuat PCB sendiri, mengubah jalur pin karena konflik dengan perangkat lain, dan membutuhkan fleksibilitas dalam desain hardware.
Langkah Pengujian
1. Sesuaikan nomor pin pada konstruktor dengan rangkaian yang digunakan.
2. Upload program ke Arduino.
3. Pastikan seluruh koneksi sesuai dengan konfigurasi pin yang telah ditentukan.
Jika konfigurasi sudah benar, motor akan bekerja sama seperti contoh sebelumnya.
Troubleshooting Arduino Motor Shield Rev3
Apabila motor tidak bekerja sebagaimana mestinya, beberapa penyebab berikut dapat diperiksa terlebih dahulu.
1. Motor Tidak Berputar
- Pastikan kabel motor telah terhubung ke terminal Channel A atau Channel B dengan benar.
- Periksa juga apakah terminal sekrup sudah dikencangkan sehingga koneksi tidak longgar.
2. Motor Terhubung ke Channel yang Salah
- Jika program menggunakan MOTOR_CH_A, maka motor harus terhubung ke Channel A.
- Begitu pula jika menggunakan MOTOR_CH_B, motor harus dipasang pada Channel B.
- Ketidaksesuaian ini sering menjadi penyebab motor tidak merespons.
3. Tidak Menggunakan Sumber Daya Eksternal
- Motor Shield Rev3 memerlukan suplai daya eksternal untuk menggerakkan motor.
- Mengandalkan daya dari port USB biasanya tidak cukup untuk menghasilkan arus yang dibutuhkan motor.
- Pastikan baterai atau adaptor eksternal telah terhubung dan berfungsi dengan baik.
4. Motor Berputar Lemah atau Tidak Mau Berputar
Nilai PWM yang terlalu rendah dapat menyebabkan motor gagal mengatasi torsi awal (starting torque).
Cobalah meningkatkan nilai kecepatan, misalnya:
motor.run(MOTOR_FORWARD, 100);
atau
motor.setSpeed(150);
Pada beberapa motor DC, nilai PWM di bawah 20–30 sering kali belum cukup untuk memulai putaran.
5. Arah Putaran Terbalik
Jika arah putaran motor tidak sesuai dengan yang diharapkan, Anda dapat menukar posisi kedua kabel motor pada terminal output dan mengubha parameter arah dari MOTOR_FORWARD menjadi MOTOR_BACKWARD, atau sebaliknya.
Baca juga: Arduino dan Limit Switch - Cara Mengontrol Motor DC Menggunakan Driver L298N
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino



0 on: "Arduino Motor Shield Rev3 - Cara Mengontrol Motor DC dengan Arduino"