Salah satu cara untuk mengendalikan motor DC adalah menggunakan PWM (Pulse Width Modulation). Pengendalian motor dengan metode ini adalah dengan cara mengirim tegangan yang diatur lebar pulsanya ke arah motor. Dengan mengatur lebar pulsa ke motor, maka motor seakan-akan disambung-putus ke sumber tegangan sehingga pada akhirnya akan diperoleh kecepatan motor yang diinginkan. Supaya diperoleh pengaturan tegangan yang ‘smooth’ maka frekuensi peng-‘on-off’-an motor juga harus diatur sehingga motor tidak menghentak-hentak laju asnya (jawa : nyendal-nyendal). Dengan demikian dibutuhkan frekuensi yang cukup tinggi dalam penyaklaran pulsa agar pengaturan kecepatan motor lebih halus. Frekuensi ini cukup diset sekali saja (konstan), sedangkan pengaturan kecepatan adalah berdasarkan lebar pulsa (namanya juga PWM he he). Lebar pulsa inilah yang kemudian disebut dengan duty cycle .
Perhatikan gambar di atas, duty cycle 0% adalah sama dengan tidak ada tegangan ke motor, duty cycle 25% adalah sama dengan tegangan 5V diberikan selama seperempat satu frekuensi penuh, duty cycle 50% sama dengan pemberian tegangan 5V selama setengah frekuensi penuh, dan seterusnya. Perhatikan juga bahwa duty cycle 100% adalah sama halnya dengan memberikan tegangan 5V selama satu frekuensi penuh. Ini sama halnya pemberian tegangan ke motor tanpa PWM. Dengan mengatur lebar pulsa (duty cycle) inilah maka kecepatan motor dapat diatur sesuai keinginan.
Berikutnya, karena motor DC membutuhkan arus yang besar maka sebelum masuk ke motor biasanya dibutuhkan sebuah driver yang berfungsi sebagai ‘gateway’ antara controller PWM yang biasanya hanya mengeluarkan arus kecil dan motor DC yang biasanya membutuhkan arus besar.Â
Jika Anda menggunakan Arduino sebagai PWM generator, maka untuk motor DC dengan arus kecil (<100mA), Anda bisa langsung menghubungkan pinout Arduino langsung ke motor tersebut. Namun jika motor yang diatur kecepatannya membutuhkan arus yang besar (>100mA) maka Anda harus menggunakan driver supaya Arduino yang mengeluarkan arus kecil dapat mengendalikan motor DC yang membutuhkan arus besar.
Tulisan berikutnya akan membahas tentang program pengendalian kecepatan motor DC menggunakan arduino dan desain sistem driver motor menggunakan transistor/MOSFET/IGBT
Bersambung ….
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
banya artikel anda yang membantu saya. saya ucapkan terima kasih
sama2 mas, semoga bermanfaat
Selamat malam pak, mau tanya ni melanjutkan Hal yang tadi,,
Apabila ingin mengendalikan Moto DC dengan beban yang besar, untuk Motor Drivernya menggunakan Apa ya?? atau mungkin kalo sudah ada yang berbentuk Module,
dan kalo smpet, sekalian Motor AC.. 🙂
sebelumnya terima kasih bnyak ilmunya pak 😉
beban yang besar di sini maksudnya torsinya yang besar atau arusnya yang besar? Pada umumnya, untuk mengendalikan motor DC yg membutuhkan arus besar bisa menggunakan teknik PWM dengan rangkaian mosfet/IGBT sebagai drivernya (pengganti transistor), tinggal nanti dilihat spek arus yg dibutuhkan. Yg udah dlm bentuk modul setau sy hanya utk arus yg kecil (kurang lebih max 20A) yg tersedia di pasaran lokal. Yg lebih besar dr itu mungkin ada di pasaran internasional. Tp mungkin lebih baik googling dulu siapa tau ada yg jual 🙂
Kalo motor AC bisa menggunakan trangkaian DIAC/TRIAC atau IC seri MOC 3021/3041 sebagai drivernya.
mau tanya juga nih pak, kalo untuk kontrol servo driver menggunakan mikrokontroler apa bisa pak? trims artikelnya sangat membantu.
bisa aja pak, cuma harus dulu spesifikasi driver motor servonya, apakah bisa langsung dihubungkan dengan mikrokontroller/arduino ataukah perlu driver lagi
Mau tanya. Saya lg buat dimmer menggunakan output pwm arduino. Untuk driver agar bisa di pake ke lampu ac ,saya gunakan solid state relay . tapi ketika keadaan redup malah terjadi kedip kedi . Kira2 itu kenapa ya ?
lampu ac kan ada threshold tegangannya mas, jad ketika tegangan sinus yang dipotong-potong pwm arduino berada di bawah tegangan threshold lampu akan mati. Karena tegangan ac adl berbentuk sinusoidal, kadang ada tegangan yang di atas tegangan threshold lampu, sehingga lampu akan hidup. Karena tegangan ac memiliki frekuensi 50Hz maka efeknya sperti kedip-kedip
mas saya mau nanya mas, saya mau bikin alat pengontrol gas amonia mengguanakan arduino, jadi say mau mengatur kecepatan udara berdasarkan kapasitas ppm yang terbaca oleh arduino, jadi cara nya gimana mas, makasih
udara yang diatur lewat selang atau gimana mas?
kalo lewat selang bisa pake regulator tekanan udara yang dimodifikasi. Cari yg ada putarannya, terus di-coupling pake motor. Ntar dari arduino mengatur tekanan udara yg lewat melalui perantara motor
terimakasih jawabannya mas, rencana saya pakai sensor mq-135 untuk pembacaan kadar amoniak disuatu ruangan, lalu berapa kadar amonia yang terbaca, maka kpas akan berputar secara otomatis mas, misal amonia terbaca 20 ppm, maka kipas berputar 50 % dari putaran nominal kipas, lalu amonia terbaca sebesar 25 ppm, dan kipas berputar 70 % dari putaran nominal kipas, programnya di arduino gimana tu mas?
oh, mudah sepertinya mas. Langkah2nya:
1. Baca kadar amoniak pake sensor MQ-135. Untuk mudahnya bisa pake library (contoh MQ135.h)
2. Lihat spek kipas, DC atau AC, cari rating arus. Ini untuk kebutuhan ‘driver’-nya (penghubung antara arduino dengan kipas). Jika hardware (driver) sudah ready tinggal bikin script handler-nya
3. Jika hardware dan software (script handler) udah ready, tinggal mau gimana rule programnya (contoh jika amonia 20 ppm maka putaran kipas 50%, jika 25 ppm maka putaran 70%, dan seterusnya)
Mohon bantuannya mas.
1 LDR dan 1 motor dc dengan control PWM.
Bagaimana ketika LDR yang “SELALU” disinari cahaya matahari dan mencapai nilai yang diinginkan lalu motor hanya hidup sekian detik lalu mati (motor tidak bergerak lagi). Codingannya kaya gimana iya mas?
dari kemarin kan udah saya kasih solusinya mas, kasih satu logic lagi buat nguji motor SUDAH pernah digerakkin atau belum. Jadi ada kondisi yg diuji oleh program dengan operator AND. Tau kan tabel kebenaran operator AND? Logika AND itu kalo terpenuhi kedua kondisi baru hasilnya TRUE. Nah, kalo kita sesuaikan dengan case-nya mas toni, harus ada dua kondisi yg harus diuji supaya motor hanya bergerak sekali walaupun LDR SELALU disinari cahaya matahari. 2 Kondisi tersebut adalah : 1. Apakah LDR terkena cahaya? 2. Apakah motor sudah bergerak? Ddari kedua kondisi tersebut kemudian diuji dengan logika AND. Kalo hasilnya TRUE (berarti… Read more »
Mohon bantuannya mas ajie.
Boleh minta emailnya gak mas ajie untuk koreksi letak kesalahan program saya untuk projek TA tentang solar tracker dengan komponen yang digunakan 3 sensor LDR, modul L298N dan satu motor DC ?
Dan kira-kira sensor LDR tanpa rangkaian komparator, bisa kontrol motor dc gak mas ajie berdasarkan posisi cahaya matahari?
Hehehe kapan2 deh mas saya beli bukunya mas ajie.
1. untuk konsultasi hanya via kolom komentar ini aja mas.
2. Untuk koreksi program, mohon maaf saat ini tidak bisa, sy profesional, ketika ada kerjaan lain yg membutuhkan kompetensi saya dan itu mendatangkan revenue bagi saya, tentu saya dahulukan. harap maklum. Kalo mau, silahkan ajukan pertanyaan di kolom pertanyaan, insya Alah saya jawab secepatnya. Free
3. Dan kira-kira sensor LDR tanpa rangkaian komparator, bisa kontrol motor dc gak mas ajie berdasarkan posisi cahaya matahari?? –> bisa, decision makernya ada di sisi controllernya (arduino)
MET pagi gan… Maaf mengganggu dikit.. saya mau nanya.. klo membuat pengecualian pada program arduino untuk membaca LDR 1 dan LDR 2 dan seterusnya.. pada saat LDR 1 tdk mendapat sinar yg tegak lurus untuk mengendalikan motor ke arah derajat yg di tentukan, maka arduino akan membaca LDR berikutnya dan seterusnya.. dan ketika LDR berikutnya yg dibaca arduino mendapat sinar yg tegak lurus dan memerintahkan motor bergerak ke arah yg di tuju lalu stop dan seterusnya… ? mohon bantuannya gan… Thanks GBU.
tinggal kasih if then – if then aja gan, atau case-switch juga bisa. contoh : (logic-nya ya)
if ((LDR1==tegak_lurus)&&(statusLDR1==true) {
myservo.write(derajatnya);
next_LDR=true;
statusLDR=false;
}
mau nanya mas….
kalau mau kontrol kecepatan Motor DC dengan L298N melalui PWM. caranya bagai mana mas. soalnya saya dah bingung dengan program saya. dah dibuat analogWrite(pinA, 122) juga ngak ngaruh. pas saya buka situs mas contoh programnya ngak bisa dilihat.
mohon pencerahannya mas buat tugas saya….
pinA itu masuk kemana mas? apakah ke pin ENA di modul L298N ?
pin ENA = 6;
pin IN1 = 13;
pin IN2 = 10;
pin ENB = 7;
Pin IN3 = 9;
pin In4 = 8;
kontrol maju mundur bisa mas melalui digitalWrite. tapi kontrol kecepatanya yang masih susah. pas di uji selalu ngak bisa di kontrol. robot mobil yang saya buat menggunakan 4 roda, belakang penggerak dan depan arah mobil mas.
mohon pencerahannya mas
coba pake library aja mas, https://github.com/yohendry/arduino_L298N atau https://github.com/AlonsoLP/Arduino-L298N-Library
Maaf mas mau tanya bagaimana cara menghubungkan arduino dan potensio pada alat pwm motor dc 40A sebagai alat pengendali kecepatan pada mobil tersebut?
terima kasih mas
potensio dipasang ke salah satu pin analog arduino. Kemudian dari pin digital arduino dihubungkan ke driver PWM ke arah motor DC 40A. Trus arduino diprogram kalo mendeteksi perubahan tegangan pada potensiometer maka akan dikeluarkan sinyal PWM yang bersesuaian ke driver PWM. Ntar motor DC akan berputar dengan kecepatan sesuai level yang ditunjukkan putaran potensiometer
permisi mas numpang tanya
saya ada proyek akhir nih “Alat peniris minyak pada keripik singkong”, dan saya ingin mengendalikan kecepatan putaran motor DC
dan torsinya -+ 3kg
saya masih bingung dengan rangkaiannya dan bahan apa saja yang diperlukan
barang kali mas bisa membantu saya menyelesaikan proyek akhir saya 🙂
beli aja modul driver motor mas, banyak di pasaran. Sesuaikan kapasitas driver dg max arus motor
mohon maaf mas, apakah artikel ini sudah ada lanjutaannya ?
terimakasih
belum mas, nanti ya, msh ada kesibukan lain 🙂