UNCATEGORIZED
1. Input: Keypad 4×4 (Input nilai Set point Kecepatan/Posisi, Kp, Ki, dan Kd)
2. Output:
3. Hardware sistem secara umum terdiri dari Arduino Uno, 1 keypad 4×4, 1 LCD 16×2 I2C, dan 1 speaker
buzzer.
4. Sistem yang dirancang adalah sistem untuk mengendalikan kecepatan/posisi motor DC dengan
metode PID pada mikrokontroler berbasis FreeRTOS.
5. Sistem akan menerima input berupa nilai kecepatan/posisi (set point), nilai Kp, Ki, dan Kd dari keypad.
6. Sistem akan mengeluarkan suara dari speaker buzzer setiap kali tombol keypad ditekan.
7. Nilai Kp, Ki, dan Kd yang diinput disimpan ke dalam EEPROM ( le eksternal)
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 1/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
8. Kemudian sistem akan menampilkan nilai input kecepatan (set point), Kp, Ki, dan Kd yang diberikan
pada LCD.
9. Sistem kemudian akan menjalankan motor dan menjaga agar nilai kecepatan/posisi motor berada pada
set point yang telah ditentukan dengan nilai konstanta PID yang telah diberikan sebelumnya.
10. Nilai kecepatan/posisi motor dapat ditampilkan secara real time pada LCD.
2 Perancangan
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 2/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 3/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
DFD level 0 menjelaskan interaksi antara sistem yang dibuat dengan user dan lingkungan yang dikontrol.
Dalam hal ini, lingkungan yang dikontrol adalah motor. Sistem akan menerima input dari user berupa nilai
set point kecepatan/posisi motor yang diinginkan serta nilai-nilai konstanta PID yang diperlukan. Sistem
kemudian akan mengolah informasi dan memberikan kepada motor kecepatan/posisi motor yang se-
harusnya. Kecepatan/posisi motor secara aktual juga dibaca oleh sistem untuk ditampilkan kepada user
melalui LCD. Adapun suara buzzer berasal dari sistem sebagai feedback dari setiap penekakan keypad
saat memasukkan input.
DFD level 1 ini menjelaskan secara detail proses dalam sistem. Dalam hal ini terdapat beberapa proses
yang secara keseluruhan membangun sistem untuk mengendalikan kecepatan/posisi motor.
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 4/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
Pada desain state chart ini sistem awalnya akan menampilkan display menu utama yang terdiri dari menu
mode kendali kecepatan dan menu mode kendali posisi. Pilihan 1 pada keypad akan membawa sistem ke
mode kendali kecepatan sedangkan pilihan 2 akan membawa sistem pada menu kendali posisi. Pada se-
tiap mode ini, akan ditampilkan pilihan-pilihan mode juga. Pilihan 1 untuk input meminta input set point,
Kp, Ki, dan Kd. Pilihan 2 untuk mengecek nilai Kp, Ki, dan Kd yang telah dimasukkan. Pilihan 3 adalah un-
tuk memulai proses kendali (kecepatan/posisi) pada motor. Penekanan * untuk melakukan reset pada
sistem.
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 5/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
Pada diagram blok diatas terlihat bahwa mikrokontroler akan membaca input berupa nilai Set Point
(kecepatan/posisi), nilai Kp, Ki, dan Kd dari keypad kemudian akan mengolah informasi dan memberikan
kepada motor kecepatan/posisi motor yang seharusnya melalui motor driver. Kecepatan/posisi motor se-
cara aktual juga dibaca oleh sistem melalui rotary encoder untuk ditampilkan kepada user melalui LCD.
Adapun suara buzzer berasal dari sistem sebagai feedback dari setiap penekakan keypad saat mema-
sukkan input. Nilai Kp, Ki, dan Kd disimpan dalam EEPROM. Power supply dihubungkan ke motor driver
dan mikrokontroler sebagai sumber daya. Adapun rotary encoder mendapatkan daya dari mikrokontoler
yang terhubung dengan power supply sedangkan motor DC mendapatkan daya dari motor driver yang
terhubung langsung ke power supply.
Flow Chart menu utama diatas memiliki beberapa sub fungsi seperti fungsi untuk pembacaan keypad,
fungsi untuk membunyikan buzzer, fungsi untuk menyimpan data konstanta PID ke EEPROM, dan fungsi
untuk melakukan sistem kendali kecepatan/posisi motor. Berikut adalah ow chart dari masing-masing
fungsi tersebut:
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 6/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 7/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
3 Implementasi
Tahap implementasi hardware & software
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 9/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
Gambar 3.2. Gambar Adaptor Yang Digunakan Untuk Suplai Daya Bagi Motor
Pada implementasi software proyek akhir ini kami masih menggunakan 1 Task untuk pengaturan LCD,
Keypad, Buzzer, dan Set Motor(Motor Driver, Motor DC, dan Motor Encoder). Kami cukup kesulitan un-
tuk mengeset 2 atau lebih jumlah task. Program menggunakan fungsi-fungsi untuk set kp,ki,kd, rpm, out-
put motor, buzzer, pembacaan sinyal encoder, dan pemrosesan nilai PID. Program sudah berhasil diimple-
mentasikan pada board Arduino.
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 10/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
4 Pengujian
Hasil Pengujian :
Pada gambar di atas, ditampilkan referensi RPM target yang sudah diset pada saat input kecepatan den-
gan menggunakan Keypad (baris pertama) dan pembacaan RPM dari encoder pada saat motor dijalankan
dengan pemrosesan nilai PID (baris ke-dua).
Kecepatan motor sudah cukup baik diatur oleh nilai PID yang diinput namun masih mengalami sinusoidal
pada keadaan steady, hal ini mungkin disebabkan adanya error yang disebabkan noise pada komponen
encoder dan motor serta nilai PID yang dicoba belum cukup baik. Berikut adalah salah satu hasil per-
cobaan dengan plot sinyal RPM pada saat pemrosesan PID berjalan :
Gambar 4.2. Hasil plot sinyal RPM pada saat motor dijalankan dengan kontrol PID
Pada gambar di atas, motor diset pada berbagai kecepatan. Kecepatan pertama diset pada 900 RPM. Ke-
mudian kecepatan dinaikkan pada 950 RPM, 1000 RPM, dan 1200 RPM. Semakin tinggi kecepatannya
dinaikkan maka akan terjadi overshot yang semakin lebar. Kemudian kecepatan diturunkan menjadi 800
RPM dan yang terakhir 450 RPM.
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 11/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
5 Kesimpulan
Kesimpulan yang dapat diambil dari perancangan proyek akhir ini adalah sebagai berikut :
Sistem pengendali kecepatan pada proyek ini bersifat closed loop control dengan kontrol PID untuk
melakukan penstabilan kecepatan motor untuk mencapai target kecepatan. Komponen kontrol PID ini
terdiri dari tiga jenis yaitu Proportional, Integratif dan Derivatif. Ketiganya dapat dipakai bersamaan
maupun sendiri-sendiri tergantung dari respon yang kita inginkan terhadap suatu plant.
Real-Time Operating System (RTOS) adalah sistem operasi yang multitasking yang ditujukan untuk
aplikasi yang real-time.
Pengaturan Task pada sistem FreeRTOS dilakukan dengan scheduling task. Penjadwalan dapat dikon-
gurasi untuk operasi preemptive dan cooperative.
https://medium.com/luosrobotics/an-introduction-to-pid-control-with-dc-motor-1fa3b26ec661 , akses
terakhir tanggal 10 Desember 2018
Pingback: Proyek Perancangan Sistem Embedded 2018-2019 Semester 1 | Kuliah Perancangan Sistem
Embedded
Risna
AUGUST 6, 2019 AT 2:51 AM
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 12/13
22/4/2021 Sistem Kendali Motor DC Berbasis FreeRTOS Dengan Menggunakan Arduino Uno | Kuliah Perancangan Sistem Embedded
Syaefudhin
MARCH 4, 2020 AT 7:07 AM
https://embedded.stei.itb.ac.id/2019/01/03/sistem-kendali-motor-dc-berbasis-freertos/ 13/13