Contents
Motor servo adalah motor yang memiliki feedback sensor yang melaporkan posisi/sudut putaran motor saat berputar. Nah, berangkat dari pengertian ini yang awalnya yang membuat saya ‘tertipu’ 🙁 . Kalo motor DS04 ini nama pasarannya adalah ‘motor servo’ DS04-NFC. Tetapi pada kenyataannya, motor tipe ini tidak memiliki feedback sensor yang dapat dibaca untuk mengetahui posisi putaran saat ini. Feedback sensor ini dapat berupa potensiometer atau encoder yang berlubang-lubang yang dibaca dengan optocoupler. Motor DS04 ini saya buka casing-nya ternyata tidak memiliki keduanya. Jadi istilah yang tepat untuk tipe motor ini adalah motor ‘continous rotation’ 3600. [AdSense-B]
Spesifikasi Motor ‘Servo’ DS04-NFC
Motor DS04 ini memiliki spesifikasi teknis sebagai berikut:
-Torsi: 5.5 kg/cm (at 4.8 V)
-Kecepatan: 0.22SEC/60 (at 4.8 V)
-Tegangan kerja: 4.8V‐6V
-Suhu: 0C ‐60C
-Arus: < 1000mA
-Berat: 38g
-Dimensi: 7.4 x 1.7cm
Cara Mengendalikan Motor DS04 – Arduino
Untuk mengendalikan motor DS04 dengan Arduino caranya cukup mudah. Tapi ingat ya, motor ini bukan motor servo, jadi cara pengendaliannya juga berbeda dengan motor servo. Kalau motor servo, Anda cukup mengeluarkan perintah servo.write (sudut_tujuan) untuk menggerakkan motor ke sudut tujuan (contoh: servo.write (90) untuk menggerakkan motor ke sudut 900). Nah, untuk motor ‘servo’ DS04-NFC ini cara pengendaliannya berbeda. Anda harus mengeluarkan pulsa PWM dengan duty cycle tertentu. Duty cycle tersebut adalah sebagai berikut:
2000 : putar kanan (clockwise = CW)
1500 : berhenti
1000 : putar kiri (counter clockwise = CCW)
Jika Anda memberikan pulsa PWM dengan nominal 1000, maka motor DS04 akan terus berputar (continous rotation) ke kiri. Motor ini akan terus berputar sampai Anda mengeluarkan pulsa PWM dengan duty cycle 1500. Sampai di sini sudah terlihat dengan jelas perbedaannya dengan motor servo bukan?
Gambar Rangkaian Motor DS04-NFC – Arduino
Untuk mulai percobaan motor DS04 dengan Arduino, silahkan hubungkan keduanya dengan konfigurasi sebagai berikut :
Arduino | Motor DS04-NFC |
5V | merah |
Gnd | hitam |
9 | putih |
Sketch Motor DS04-NFC – Arduino
Dari sisi software-nya, untuk mengeluarkan pulsa PWM dengan duty cycle tertentu, Anda dapat menggunakan perintah ‘writeMicroseconds (duty_cycle)’. Berikut ini adalah contoh mengendalikan motor DS04-NFC dengan Arduino. Jika Anda meng-upload source code di bawah, maka motor DS04 Anda akan berputar ke kanan (CW) selama 5000 milidetik (5 detik), berputar ke kiri (CCW) selama 3000 milidetik kemudian berhenti
/* * Program Motor DS04-NFC – Arduino * saptaji.com */ #include <Servo.h> Servo myservo; int pos; void setup() { myservo.attach(9); myservo.writeMicroseconds(2000); // putar kanan delay(5000); myservo.writeMicroseconds(1000); // putar kiri delay(3000); myservo.writeMicroseconds(1500); // berhenti delay(100); } void loop() { }
Demikian sedikit tutorial Cara Menangani Motor ‘servo’ DS04-NFC dengan Arduino. Anda dapat mengembangkan source code/sketch di atas sesuai dengan kebutuhan Anda. Motor DS04-NFC ini cocoknya untuk aplikasi yang membutuhkan putaran motor yang kontinyu (> 3600). Contohnya adalah untuk menggerakkan robot atau smart car. Motor ini tidak cocok untuk aplikasi yang membutuhkan akurasi posisi motor berdasarkan sudut putaran. Untuk kebutuhan seperti ini Anda harus menggunakan motor servo yang sebenarnya. Pada tutorial berikutnya, akan saya sajikan cara memodifikasi motor DS04-NFC menjadi motor servo ‘sejati’ 😉 . Stay tune on this blog. [AdSense-A]
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
mau nanya mas..
gmna ngatur putaran motor DC, kalau ada sensor baru berputar?
soalnya sya coba, di kasi arus motor dc ya langsung berputar
kalo motor DC bisa pakai rangkaian driver motor DC. Bisa googling aja utk rangkaian ini. Intinya menggunakan 2 transistor/MOSFET (tergantung arus maks motor DC). Dengan rangkaian driver ini kita bisa mengatur putaran motor, searah/berlawanan arah jarum jam dan berhenti
Kalo ngatur motor DC supaya baru berputar setelah kena sensor, bisa menggunakan gabungan sensor –> arduino –> rangkaian driver motor DC –> motor DC
mau nanya kak, kalo sensor ldr bisa bekerja secara maksimal terhadap motor servo seperti apa ya, soalnya sensor ldr saya tidak dapat bekerja secara maksimal terhadap motor servo
LDR itu kan sensor cahaya, jadi tidak ada korelasinya dengan motor servo. Kalo untuk case di atas mungkin yang pertama dicek adalah rangkaian sensor LDR-nya, kemudian yang kedua dicek sketch-nya
master klo mau ngubah putaran yg tadinya 360derajat menjadi 180 derajat kaya gimana ?
mas untuk servo DS04-NFC ini untuk kontrol arah sudut dan stopnya lebih baik seperti apa ya?
kalo menggunakan delay kadang servo DSnya tidak langsung berhenti (ada lebamnya sehingga posisi berhentinya berbeda-beda)
memang sebenarnya DS04 ini bukan servo sesungguhnya mas. Kalo pengin akurat sudutnya bisa ditambahi sensor posisi (contoh : piringan/encoder, potensiometer, magnet/hall sensor dsb).
catatan :
Untuk sekedar trik kalo mau langsung berhenti, bisa putar motor ke arah sebaliknya dalam sekejap aja
kak saya mau tanya..gmn caranya supaya servo itu berputar sesuai dengan tombol yg ditekan.ada 2 tombol untuk berpugar kekanan dan kiri..jika kiri ditekan motor bergerak kekiri kalu di lepas motor stop dan kanan ditekan motor kekanan kalau dilepas stop..jadi lama tidaknya motor berputar tergantung lamanya tombol ditekan..mohon pencerahannya ya kak..saya sedang belajar arduino sama servo ini..
kl untuk belajar sebaiknya menggunakan servo SG90s aja, lebih mudah dipelajari
Mas brarti code writemicrosecond bisa buat control arah putaran motor dc yg memakai ESC dong ya?
yg dimaksud ‘ESC’ apa mas?
kode ‘writemicrosecond’ pada dasarnya adalah sinyal PWM (Pulse Width Modulation), bisa digunakan untuk sembarang motor dc, TAPI dilihat dulu spek arusnya. Pada umumnya akan membutuhkan rangkan motor driver PWM
Yang masih saya bingungkan angka 2000, 1500, 1000…itu apa yaa mas?
duty cycle PWM mas, sesuai spec motor
Mas saya udah cma yg buat berhenti itu tapi ko masih muter ke kiri ya mas?
hrsnya berhenti sih mas, coba angkanya ubah dikit2
ka ketika pwmnya dikasi 2000 motor bisa muter, ketika pwmnya dikasih 1000 motor muter berbalik arah. tapi klau pwmnya dikasih 2000 lagi di tetep muter seperti pwmnya 1000. saya pake motor mg995
kl mg995 itu servo ‘beneran’ mb, baiknya pake servo.write(xx), dengan xx adalah sudut yg dituju. Utk detailnya bisa baca artikel servo arduino
itu knpa ya ka?
saya mau tanya mas, saya mau skripsi dan saya berencana membuat regulator otomatis untuk menghentikan aliran gas LPG saat terjadi kebocoran. jadi kalo terjadi kebocoran LPG regulator otomatis menutup katubnya sehingga aliran gas nya terhenti. nah apa motor servo ini bisa sebagai pengganti katubnya tersebut kalo bisa mohon sedikit pnjelasannya. ohya disini saya makek arduino uno
kalo ditanya bisa apa ga jawabannya bisa, dengan catatan.
Catatannya sbb:
1. Cek sistem kerja penutupan katub, apakah seperti kran yg harus berputar sekian kali baru nutup atau hanya bisa 180 derajat bisa nutup? (karena servo hanya bisa berputar 180 derajat)
2. Cek torsi penutupan katup, kemudian pilih servo yang punya kekuatan torsi yg sama (kalo bisa yang lebih kuat)
demikian pertimbangannya ya, kalo saran saya sebaiknya menggunakan solenoid valve, lebih mudah, tapi cari yang khusus buat gas
Mas, saya mengalami kendala saat menggabungkan program (motor servo+ultrasonik) dan (tcrt5000+l298n. tiap sub program sudah berjalan normal, tapi ketika digabungkan, motor dc tidak mau berputar. saat saya hapus my servo attach (pin), jadinya motor dc bisa berputar lagi, mohon pencerahannya agar servo saya dan motor dc nya semua bisa bekerja. terimakasih.
udah bikin flowchartnya blm mas?
mohon maaf mau tanya kak, jadi kami pake arduino uno untuk sensor Raindrop dan servo (atap jemuran otomatis). minggu lalu rangkaian alat ini berhasildan berfungsi dengan baik, kemudian seminggu setelahnya kami coba lagi akan tetapi sensor raindrops dan servonya tidak berfungsi lagi data yang masuk tidak sesuai, itu bagiamaan ya solusinya ? terimakasih
dicek satu-satu, misal cek sensor hujan dari arduino. Kalo ok, cek kontrol servo dari arduino. Kalo udah ok semua coba gabungkan programnya