Skip to content
  • Home
  • About the Blog
  • About the Author
  • Sitemap

Abdur Rosyid's Blog

Just a few notes on mechanical engineering and robotics

Mengontrol Posisi Brushed DC Motor

September 20, 2020 by Abdur Rosyid

Pada artikel ini, saya akan menjelaskan bagaimana mengontrol posisi (sudut) brushed DC motor. Untuk melakukan hal ini, kita perlu menerapkan “closed-loop control”. Ini bisa kita lakukan dengan menggunakan encoder. “Low-cost brushed DC motor” cukup banyak yang dijual dengan dilengkapi magnetic encoder yang menjadi satu paket dengan motor. Bisa juga memakai optical encoder yang memberikan presisi yang lebih tinggi namun harganya juga lebih mahal.

Encoder yang dipasang pada brushed DC motor ini paling tidak memiliki empat kabel, yaitu Vcc, GND, Sinyal A, dan Sinyal B. Vcc dan GND digunakan untuk memberikan power kepada encoder, sedangkan Sinyal A dan B memberikan bacaan encoder. Dengan sinyal A dan B yang berasal dari encoder, kita bisa tahu arah putaran motor dan seberapa jauh motor berputar. Adapun brushed DC motor itu sendiri memiliki dua kabel, yaitu V+ dan V-.

Kita bisa menggunakan PID control untuk mengontrol posisi brushed DC motor. Error antara posisi aktual motor (yang ditunjukkan oleh sinyal A dan B) terhadap posisi yang diinginkan akan menjadi input bagi PID control sehingga bisa memberikan kompensasi yang diperlukan. Sebagaimana dijelaskan dalam konsep “closed-loop control” (disebut juga “feedback control”), sinyal dari encoder (yakni sinyal A dan B dalam hal ini) perlu diberikan kepada controller, lalu controller memberikan sinyal kontrol digital untuk kompensasi kepada drive.

Kita akan menerapkan ini dengan menggunakan Arduino Uno (sebagai controller) dan L298N H-bridge driver sebagai drive. Adapun komponen-komponen yang diperlukan adalah:

  • Brushed DC motor
  • Encoder (dirangkai pada motor)
  • Arduino Uno
  • L298N H-Bridge Driver
  • Power supply
  • Kabel

Kita perlu merangkai komponen-komponen diatas sesuai dengan diagram berikut:

Penjelasan diagram:

Pada artikel ini kita hanya fokus pada kontrol posisi motor. Penjelasan mengenai kontrol kecepatan motor sama dengan yang dijelaskan pada artikel ini.

H-bridge driver membutuhkan dua supply. Pertama adalah supply untuk motor yang bisa berkisar dari 5V sampai 35V. Ini kita ambilkan dari DC power supply atau baterai dengan besaran voltase yang disesuaikan dengan voltase motor. Kedua adalah supply sebesar 5V sampai 7V untuk mengontrol rangkaian H-bridge. Dalam hal ini kita bisa mengambil 5V dari Arduino Uno. Untuk melakukan hal ini, hubungkan pin 5V dan GND pada bagian “Power” Arduino Uno ke terminal 5V dan GND pada H-Bridge.

Adapun power untuk Arduino Uno bisa di-supply dari USB yang dihubungkan ke komputer atau dari power supply eksternal yang dimasukkan ke pin Vin dan GND. Power untuk Arduino Uno ini tidak digambar dalam rangkaian diatas.

Untuk mengontrol posisi motor, kita menggunakan encoder. Encoder ini membutuhkan supply 5V. Ini bisa kita ambil dari pin 5V dan GND yang ada di Arduino Uno. Data dari encoder diberikan melalui dua pin: A dan B. Kedua pin ini mengandung sinyal digital berbentuk square wave (quadrature), karena itu harus dimasukkan ke dua pin digital yang ada di Arduino Uno agar bisa dibaca oleh Arduino Uno.

Untuk melakukan kontrol posisi ini, kita perlu memiliki program “PID control” pada Arduino Uno. Saat ini cukup banyak library “PID Control” yang sudah di-develop oleh komunitas untuk Arduino, sehingga kita bisa dengan mudah meng-include-kannya dalam kode Arduino kita, tanpa perlu men-develop-nya dari nol.

Post navigation

Previous Post:

Mengontrol Kecepatan Brushed DC Motor

Next Post:

Mengontrol Kecepatan dan Posisi Motor BLDC

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Categories

  • STEM 101
  • Robotics
  • Kinematics
  • Dynamics
  • Control
  • Robot Operating System (ROS)
  • Robot Operating System (ROS2)
  • Software Development
  • Mechanics of Materials
  • Finite Element Analysis
  • Fluid Mechanics
  • Thermodynamics

Recent Posts

  • Pull Request on Github
  • Basics of Git and Github
  • Conda vs Docker
  • A Conda Cheat Sheet
  • Installing NVIDIA GPU Driver on Ubuntu

Archives

  • June 2025
  • July 2021
  • June 2021
  • March 2021
  • September 2020
  • April 2020
  • January 2015
  • April 2014
  • March 2014
  • March 2012
  • February 2012
  • June 2011
  • March 2008
© 2026 Abdur Rosyid's Blog | WordPress Theme by Superbthemes