● online
- Modul Sensor Tegangan AC Bolak balik 220V Listrik ....
- 10X RESISTOR 1K 1KOHM 1/4W 1% METAL FILM....
- Dimmer SCR 2000W Motor Speed Controller 220V AC PW....
- Sensor Api Flame detector sensor....
- B0505S-1W 5V to 5V converter DC DC power module co....
- Dual Volt Amp Meter Digital Ampere Meter Voltmeter....
- ADS1115 16 Bit I2C Module ADC 4 channel with Pro G....
- LM2596 Module Step Down DC-DC Ultra compact in 3-4....
- 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.
Rancang Sistem Kontrol Kecepatan Motor DC Otomatis Berdasarkan Beban
Halo Sobat Maker! Saat kita sedang membuat proyek robotika, sistem konveyor, atau lini produksi otomatis, kita sering banget berhadapan dengan kendala teknis di mana motor DC melambat atau bahkan tersendat saat terpapar gesekan mekanis maupun beban tambahan. Pengaplikasian kontrol kecepatan motor DC berbasis sistem open-loop konvensional terbukti kurang andal karena tidak memiliki mekanisme pembacaan kembali (feedback) untuk merespons dinamika beban tersebut. Solusi terbaiknya adalah merancang sistem kendali otomatis closed-loop yang responsif. Dengan mengombinasikan Arduino Uno, driver motor L298N, sensor arus ACS712/encoder umpan balik, serta algoritma PID (Proportional-Integral-Derivative), kita bisa menjaga kecepatan motor tetap stabil secara otomatis dalam kondisi beban apa pun.

Alat dan Bahan Rangkaian
Berikut adalah daftar komponen hardware yang kita perlukan untuk membangun sistem kontrol kecepatan otomatis ini:
| Komponen | Jumlah | Keterangan |
| Arduino Uno | 1 unit | Microcontroller utama |
| Driver Motor L298N | 1 unit | Penggerak motor DC & pengatur PWM |
| Motor DC dengan Incremental Encoder | 1 unit | Aktuator utama dan feedback kecepatan |
| Modul Sensor Arus ACS712 | 1 unit | Pengukur arus/beban, varian 5A/20A/30A |
| Power Supply / Adaptor DC 12V | 1 unit | Sumber daya sistem dan motor |
| Potensiometer | 3 unit | Penyesuaian nilai Kp, Ki, dan Kd secara manual |
| Push Button | 2 unit | Menaikkan dan menurunkan setpoint kecepatan |
| LCD 16×2 I2C | 1 unit | Display monitoring setpoint, kecepatan aktual, dan error |
| Kabel Jumper dan Prototype Board | Secukupnya | Koneksi antar komponen |
Konsep Kerja Sistem Closed-Loop PID dan Sensor ACS712
Prinsip kerja dari sistem closed-loop ini bertumpu pada proses evaluasi umpan balik secara kontinu. Mikrokontroler Arduino Uno akan membaca target kecepatan yang kamu inginkan (setpoint) dan membandingkannya secara real-time dengan kecepatan aktual motor yang dibaca oleh sensor encoder. Selisih antara kecepatan target dan kecepatan riil ini menghasilkan nilai error. Selanjutnya, kontroler PID memproses nilai error tersebut untuk menyesuaikan sinyal Pulse Width Modulation (PWM) yang dikirimkan ke driver L298N guna mengoreksi putaran motor secara presisi.
Mari kita bedah cara kerja algoritma PID secara sederhana:
- Proportional (Kp): Komponen ini menghasilkan respons sinyal kontrol yang sebanding dengan besarnya error saat ini. Meningkatkan nilai Kp akan mempercepat waktu respons sistem (rise time) dan mengurangi steady-state error, tetapi aksi proporsional saja tidak sanggup mengeliminasi error secara total.
- Integral (Ki): Komponen ini mengumpulkan atau mengakumulasikan error dari waktu ke waktu. Peran utama elemen integral adalah menghapus steady-state error hingga bernilai nol, meskipun jika nilainya terlalu besar dapat memicu terjadinya lonjakan respons kecepatan (overshoot).
- Derivative (Kd): Komponen ini memprediksi kecenderungan perubahan error di masa depan berdasarkan laju perubahannya. Elemen derivatif berfungsi meredam osilasi, menekan overshoot, serta meningkatkan stabilitas dinamis sistem.

Untuk memantau tingkat pembebanan mekanis dan konsumsi arus listrik motor, sistem ini memanfaatkan modul sensor arus ACS712 berbasis Hall Effect. Sensor ini beroperasi pada tegangan 5V DC dan mengeluarkan tegangan analog yang proporsional dengan arus AC atau DC yang mengalir melalui terminal pengukurannya. Pada saat tidak ada arus listrik yang mengalir (0A), modul akan mengeluarkan tegangan offset nominal sebesar setengah dari tegangan VCC (yaitu Vcc/2 atau 2,5V).
Peringatan Penting: Mengingat modul ACS712 bekerja menggunakan prinsip pembacaan medan magnetik (Hall Effect transducer), jauhkan sensor ini dari komponen magnet permanen atau koil induktif berarus besar agar pembacaan arus tidak mengalami pembacaan keliru (measurement drift).
Skematik Rangkaian

Penataan jalur kabel dan perkabelan antar komponen disusun secara terstruktur untuk memastikan keamanan daya dan keandalan sinyal kontrol. Sebelum menyalakan daya adaptor 12V, pastikan kamu sudah memeriksa ulang seluruh koneksi Ground agar tidak terjadi pembacaan sinyal yang mengambang atau risiko membakar mikrokontroler!
- Pengaturan Catu Daya (Power Setup):
- Gunakan jalur daya terpisah atau adaptor DC 12V khusus untuk memberi tegangan pada driver motor L298N (terminal +12V) dan modul Arduino Uno (terminal Vin atau Jack DC).
- Komponen logika seperti sensor ACS712, antarmuka LCD I2C, tiga unit potensiometer, dan modul encoder dijalankan menggunakan daya 5V langsung dari pin VCC Arduino. Sambungkan seluruh jalur Ground (GND) dari setiap komponen menjadi satu titik referensi tunggal (common ground).
- Koneksi Sensor ACS712:
- Pasang terminal blok pengukuran sensor ACS712 secara seri dengan jalur arus positif beban/motor DC. Sensor tidak akan bisa membaca arus jika terpasang secara paralel.
- Hubungkan pin VCC sensor ke pin 5V Arduino, GND ke GND Arduino, dan pin OUT ke Pin Analog A0 Arduino.
- Koneksi Driver Motor L298N:
- Hubungkan pin PWM (Enable pin ENA) driver ke salah satu pin Digital PWM Arduino.
- Hubungkan pin arah putaran (IN1 dan IN2) ke pin Digital Output Arduino.
- Hubungkan terminal keluaran driver (OUT1 dan OUT2) langsung ke terminal motor DC.
- Koneksi Antarmuka Pengguna (User Interface Setup):
- Hubungkan 3 unit potensiometer penyesuaian manual nilai Kp, Ki, dan Kd ke pin analog Arduino (seperti pin A1, A2, dan A3).
- Hubungkan 2 unit push button ke pin Digital Input Arduino untuk mengatur penambahan dan pengurangan nilai setpoint kecepatan.
- Hubungkan modul LCD 16×2 I2C ke pin antarmuka I2C Arduino, yaitu SDA (pin A4) dan SCL (pin A5).
Pemrograman Arduino dan Kalibrasi Offset Sensor
Dalam merancang program untuk membuat proyek IoT dan monitoring sensor, kepastian akurasi pembacaan sinyal analog sangatlah krusial. Kode C++ berikut bertugas membaca data analog dari modul sensor ACS712 varian 30A. Program melakukan pembacaan sampel berulang sebanyak 150 kali dengan jeda 3 milidetik untuk memberikan waktu penstabilan sinyal (ADC settling time), lalu mengambil rata-ratanya sebelum dikonversi menjadi satuan Ampere:
/*==========================================================================
// Author : HandsOn Technology
// Project : Arduino Uno
// Description : ACS712_30A Hall Current Sensor Module
// Source-Code : ACS712T.ino
// Version: V1.0 July 2017
//========================================================================== */
void setup() {
Serial.begin(9600); // Menjalankan Serial Monitor dengan baud rate 9600
}
void loop() {
unsigned int x = 0;
float AcsValue = 0.0, Samples = 0.0, AvgAcs = 0.0, AcsValueF = 0.0;
for (int x = 0; x < 150; x++) { // Mengambil 150 sampel data
AcsValue = analogRead(A0); // Membaca nilai analog dari pin A0
Samples = Samples + AcsValue; // Menjumlahkan sampel
delay(3); // Jeda 3ms agar ADC stabil sebelum pembacaan berikutnya
}
AvgAcs = Samples / 150.0; // Menhitung rata-rata sampel
// Konversi tegangan terukur dan perhitungan pembacaan arus berdasar offset 2.5V
// serta sensitivitas 0.066V/A (66mV/A untuk modul 30A)
AcsValueF = (2.5 - (AvgAcs * (5.0 / 1024.0))) / 0.066;
Serial.println(AcsValueF); // Menampilkan nilai arus pada Serial Monitor
delay(50);
}
Sesuai panduan teknis pada dokumentasi resmi HandsOn Technology, spesifikasi modul ACS712 memerlukan proses kalibrasi offset saat kondisi tanpa beban (0A) agar pembacaan arus riil berakurasi tinggi.
Prosedur Kalibrasi Offset Arus 0A:
- Ukur Tegangan Riil Rail 5V: Gunakan multimeter presisi untuk mengukur tegangan aktual pada rel +5V board Arduino kamu. Misalnya, jika multimeter menunjukkan angka 5,12V, maka nilai offset nominal teoritisnya adalah 5,12V / 2 = 2,56V.
- Masukkan Nilai Tegangan ke Rumus: Perbarui rumus konversi pada skrip Arduino menggunakan angka hasil pengukuran tersebut:
AcsValueF = (2.56 - (AvgAcs * (5.12 / 1024.0))) / 0.066; - Unggah dan Lakukan Fine-Tuning: Kompilasi dan unggah skrip ke board Arduino. Buka Serial Monitor pada kecepatan 9600 baud tanpa memberikan beban pada motor. Jika pembacaan belum persis 0,00A, sesuaikan digit desimal nilai offset secara perlahan (dinaikkan atau dikurangi tipis pada digit desimal ketiga) sampai Serial Monitor menampilkan angka 0,00A secara stabil.
Hasil Pengujian Parameter PID dan Optimasi Performa

Pengujian eksperimental dilakukan pada kecepatan setpoint 150 RPM dengan melakukan penyesuaian parameter PID secara terpisah guna menganalisis respons dinamis motor DC:
- Pengujian Respon Proporsional (Kp): Saat nilai Kp dinaikkan bertahap dari 0,2 hingga 1,0 (pada setpoint 150 RPM), kecepatan aktual motor meningkat dari 63 RPM hingga 123 RPM. Peningkatan Kp terbukti berhasil menekan steady-state error dari 87 RPM menjadi 27 RPM dan mempercepat rise time. Namun, kontrol proporsional tunggal tidak sanggup membawa kecepatan mencapai angka target 150 RPM dan tidak memiliki waktu pengendapan (settling time).
- Pengujian Respon Integral (Ki): Ketika parameter Ki ditambahkan dan ditingkatkan dari 0,01 ke 0,05, steady-state error berkurang secara drastis dari 42 RPM hingga mencapai 0 RPM (kecepatan motor tepat menyentuh 150 RPM saat Ki = 0,05). Meski mampu menghapus selisih kecepatan, penambahan aksi integral ini menimbulkan lonjakan kecepatan berlebih (overshoot).
- Pengujian Respon Derivative (Kd): Peningkatan parameter Kd dari 0,01 hingga 0,05 menghasilkan kecepatan motor pada kisaran 144 RPM hingga 150 RPM (pada Kd = 0,01 kecepatan 150 RPM error 0; Kd = 0,02 kecepatan 146 RPM error 4; Kd = 0,03 kecepatan 144 RPM error 6; Kd = 0,04 kecepatan 145 RPM error 5; Kd = 0,05 kecepatan 147 RPM error 3). Hal ini menunjukkan bahwa komponen derivatif berfungsi menekan lonjakan overshoot dan menstabilkan fluktuasi kecepatan dinamis.
- Hasil Kombinasi PID Optimal: Terdapat sedikit perbedaan pencatatan teks pada laporan riset acuan, di mana narasi tulisan menyebutkan Kd = 0,3 tetapi data tabel hasil eksperimen (Tabel 4) mencatat nilai optimal Kd = 0,03. Nilai acuan data eksperimen terbaik diperoleh pada kombinasi parameter Kp = 1,4, Ki = 0,6, dan Kd = 0,03. Saat ketiga elemen PID ini bekerja bersamaan, kecepatan motor meningkat secara mulus dengan waktu tanggap cepat (rise time sekitar 2,4511 detik), waktu penyesuaian (settling time) sekitar 11,5 detik, durasi overshoot singkat (sekitar 2,0 detik), serta steady-state error yang sangat kecil (2 RPM) pada kisaran kecepatan stabil 147–150 RPM.
Tips Penting dan Kesalahan Umum
- Pemisahan Catu Daya: Selalu pisahkan atau decouple jalur catu daya antara penggerak motor (L298N) dan unit pemrosesan (Arduino). Arus asutan (inrush current) motor DC dapat memicu penurunan tegangan mendadak (brownout) serta gangguan noise listrik pada mikroprosesor.
- Hindari Medan Magnet: Letakkan modul sensor ACS712 jauh dari sumber medan magnetik luar yang kuat (seperti bodi motor DC atau transformator) karena sensor Hall Effect sangat peka terhadap induksi magnetik eksternal.
- Kalibrasi Arus Presisi: Jangan langsung mengasumsikan tegangan keluaran pin 5V Arduino bernilai tepat 5,00V. Selalu ukur tegangan sebenarnya dengan multimeter presisi sebelum menghitung titik offset 0A.
- Pemasangan Seri: Terminal pembacaan arus modul ACS712 wajib dipasang secara seri pada jalur beban. Memasang terminal sensor secara paralel akan merusak sensor dan memicu arus pendek.
Kesimpulan
Sistem kontrol kecepatan motor DC berbasis open-loop memiliki keterbatasan besar saat menghadapi variasi beban mekanis eksternal. Dengan mengombinasikan Arduino Uno, driver motor L298N, sensor umpan balik arus/kecepatan, serta algoritma closed-loop PID, kita dapat menciptakan sistem otomatisasi yang stabil, akurat, dan mampu mengoreksi kecepatan secara mandiri dalam berbagai kondisi kerja.
Selamat mencoba proyek ini dan terus berkarya Sobat Maker!
Rancang Sistem Kontrol Kecepatan Motor DC Otomatis Berdasarkan Beban
Push Button dan LED (Light Emitting Diode) menjadi sebuah komponen yang umum ditemukan pada piranti elektronik sehingga menjadikan... selengkapnya
Pemanfaatan sebuah sensor bisa dijadikan berbagai fungsi, nah kali ini kita akan belajar untuk memonitoring sensor menggunakan WIFI yang... selengkapnya
Arduino Pro Mini merupakan jenis Arduino yang berukuran kecil dibandingkan dengan Nano, Unodan Mega. Dengan ukuran yang kecil ini... selengkapnya
Sensor cahaya atau LDR (Light Dependent Resistor) adalah salah satu sensor analog yang paling sering digunakan saat belajar Arduino. Sensor... selengkapnya
Pada artikel ini akan membahas bagaimana cara menangani motor stepper dan uln2003 tentunya masih menggunakan Arduino sebagai kontrolernya. Stepper... selengkapnya
Hari ini kita akan mencoba untuk menampilkan data sensor ldr ke web server dengan koneksi WIFI menggunakan board NodeMCU.... selengkapnya
Modul Led Dot Matrix 32×16 adalah modul display yang menggunakan kumpulan – kumpulan LED yang dirangkai dengan susunan 32... selengkapnya
Halo Sobat Maker! Teman-teman pernah ngerasa ribet gak sih kalau harus bolak-balik ngecek ketinggian air kolam ikan secara manual? Apalagi... selengkapnya
RFID merupakan suatu teknologi yang dapat mengidentifikasi sebuah objek menggunakan frekuensi radio. Untuk dapat menggunakanya kita membutuhkan sebuah ID... selengkapnya
Halo, Sobat! Pernah nggak sih ngerasa parno pas mau tidur atau pas lagi di luar rumah, tiba-tiba kepikiran: “Duh, gas... selengkapnya
Spesifikasi: 20mm Kapton Tape Polymide Film Gold High Temp isolasi Tahan Panas Harga Tertera: 1 Roll Kapton Tape Polymide Film… selengkapnya
Rp 219.000Kabel Jumper Dupont Pelangi 10 cm.. male to female 1 lembar isi 40 kabel
Rp 9.000POTENSIOMETER LINEAR MONO 10K ohm
Rp 1.9002000W SCR Electronic Voltage Regulator Speed Controller Dimmer Thermostat Aplikasi : Kontrol temperature heater, kontrol kecepatan fan/bor tangan/gurinda tangan, kompor… selengkapnya
Rp 19.500Description: TP5100 is a double switch buck 8.4V, single cell 4. 2V lithium battery charge management chip. Its ultra-compact QFN16… selengkapnya
Rp 10.600Mini Solderless Breadboard 400 Tie Points adalah breadboard 400 titik lubang, dengan ukuran yang compact sangat cocok untuk anda yang… selengkapnya
Rp 7.800sg90 towerpro penggerak pada robot-robot kecil, dan bisa digunakan sebagai alat untuk hobi membuat robot dsb, dengan berat sekitar 9g… selengkapnya
Rp 15.500Kabel Jumper Dupont Pelangi 30cm Male to Female 1 lembar = 40 kabel
Rp 13.500ESR 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.000Kabel Jumper Dupont Pelangi 10 cm male to male 1 lembar = 40 kabel
Rp 13.000Rancang Sistem Kontrol Kecepatan Motor DC Otomatis Berdasarkan Beban
Kategori
Artikel Terkait
-
Cara Bikin Sistem Deteksi Banjir IoT dengan Alarm Bertingkat dan Notifikasi Telegram
-
Bikin Sistem Parkir Otomatis dengan Penghitung Kendaraan dan Indikator Slot Kosong
-
Rancang Sistem Pendeteksi Kebakaran dengan Kipas Otomatis dan Alarm Peringatan
-
Bikin Alat Monitoring Konsumsi Listrik Rumah Secara Real-Time Berbasis ESP32
-
Bikin Sistem Keamanan Pintu Berbasis RFID dengan Notifikasi Telegram

Saat ini belum tersedia komentar.