Anda di halaman 1dari 16

Project Report

COMP6692010 - Physical Computing & Algorithm

Mengatur DC Servo Motor Menggunakan Arduino

Diusulkan oleh:

Juan Carlos Manuel 2502054851


Muhammad Firza 2502016140

Computer Engineering Laboratory


Faculty of Engineering - Computer Engineering
Binus University

i
i
Daftar Isi
Hal
Lembar Sampul i
Daftar Isi ii
Bab 1 – Introduction X
Bab 2 – Objective X
Bab 3 – Methodology X
Bab 4 – Concept and Technical Details X
Bab 5 – Evaluation and Conclusion X

Reference X
Lampiran (Code) X

i
BAB 1. Introduction

1.1 Latar Belakang


Dalam upaya memperluas pengetauan dan wawasan terkait penggunaan
arduino baik untuk pembaca serta pembuat laporan guna lebih memahami bagaimana
implementasi arduino sebagai mikrokontroller yang menjadi pengendali perangkat
elektronik. Pada projek kali ini penggunaan arduino lebih dikhususkan untuk
mengontrol motor DC yang dapat dikontrol kecepatannya melalui pengaturan Pulse
Width Modulation (PWM) serta dapat dikontrol arah putaran motornya. Dengan
adanya projek ini pembaca dapat memahami mengapa arduino memiliki peran yang
cukup signifikan dalam berbagai aspek elektronik. Dan karena hal ini juga diharapkan
pembaca dan kami selaku pembuat laporan dapat lebih memahami dan menggunakan
keuntungan yang didapat dengan semaksimal mungkin dari penggunaan arduino
sebagai mikrokontroller.

1.2 Rumusan Masalah


Bagaimana langkah-langkah penerapan Arduino untuk mengendalikan
kecepatan serta arah rotasi motor servo DC melalui motor driver, sambil memantau
nilai PWM yang ditampilkan serial monitor?

1.3 Tujuan dan Manfaat


Tujuan utama dari proyek ini adalah untuk dapat berhasil mengendalikan
kecepatan serta arah rotasi motor servo DC melalui motor driver menggunakan
Arduino, serta menampilkan informasi PWM melalui serial monitor. Manfaat dari
proyek ini meliputi perluasan pengetahuan mengenai penggunaan Arduino dalam
berbagai aplikasi elektronik, dan pemahaman tentang pemanfaatan potensi Arduino
dalam pengembangan mikrokontroller. Selain itu, proyek ini juga diharapkan
menghidupkan kreativitas dalam memanfaatkan Arduino.

1
BAB 2. Objective

2.1 Ruang Lingkup


Penggunaan Arduino sebagai mikrokontroller serta DC motor yang dilengkapi
encoder.

2.2 Tinjauan Pustaka


Projek ini disusun dengan tujuan untuk memperluas pemahaman pembaca dan
penyusun terkait penggunaan Arduino dan mikrokontroller. Dalam konteks ini,
projek ini dikhususkan pada pengendalian DC motor sebagai contoh. Melalui
penggunaan motor ini, penulis laporan ingin memberikan gambaran kepada pembaca
tentang cara mengontrol kecepatan dan arah putaran motor menggunakan motor
driver, serta bagaimana nilai Pulse Width Modulation (PWM) dari motor tersebut
dapat diatur dan ditampilkan menggunakan Arduino. Dengan demikian, projek ini
bertujuan untuk memberikan pemahaman tentang potensi dan kegunaan Arduino serta
mikrokontroler dalam implementasinya di bidaang elektronik serta pengembangan
teknologi di masa depan.

2
BAB 3. Methodology

Dengan melakukan penelitian terkait bagaimana cara menggunakan arduino


sebagai mikrokontroller serta penggunaan DC motor yang dilengkapi dengan
encoder. Setelah memahami cara kerja mikrokontroller (dalam kasus ini arduino)
penelitian dilanjutkan dengan memahami pengendalian DC motor dengan encoder,
bagaimana cara mengendalikan kecepatan putaran motor serta arah motor. Tidak lupa
juga memahami cara menghubungkan komponen komponen agar alat dapat berjalan
sesuai instruksi. Lalu setelah selesai melakukan penelitian dilanjutkan dengan
finalisasi perancangan alat dengan menghubungkan komponen komponen serta
pengambilan video demo guna memperlihatkan bahwa alat telah berjalan sesuai
instruksi.

3.1 Penjelasan Singkat Sistem

Pada projek kali ini kami selaku penulis laporan menulis code yang dijalankan
di arduino sebagai mikrokontroller untuk mengendalikan DC motor yang
dihubungkan pada motor driver (LM298N) yang berguna sebagai pengendali arus
tinggi dan pengatur kecepatan serta arah pada DC motor.

3.2 Cara Kerja Sistem

Cara kerja sistem adalah dengan menulis code dengan menggunakan arduino
IDE sebagai perantara penghubung agar code dapat digenerate menjadi perintah
untuk perangkat Arduino. Lalu dengan terhubungnya arduino dengan DC motor dan
motor driver Arduino dapat mengatur nilai kecepatan motor dan mengubah arah putar
motor. Signal yang dikirim dari serial monitor software Arduino IDE berguna sebagai
pemberi perintah kepada arduino guna menjalankan perangkat agar sesuai dengan
kemauan pengguna. Dengan adanya motor driver pengguna dapat mengatur arah dan

3
kecepatan putaran motor. arah yang diatur dengan menggunakan H-Brige pada
LM298N dengan mengatur kombinasi on/off pada IN1, IN2, IN3 maupun IN4, pada
projek kali ini pembuat laporan menggunakan kombinasi high dan low pada code
untuk mengatur IN1 dan IN2. lalu untuk pengaturan kecepatan motor H-Brige
digunakan untuk mengatur besar energi yang masuk agar dapat mengontrol besar
tenganan dengan menggunakan teknik PWM.

4
BAB 4. Concept and Technical Details

4.1 Arduino Uno R3: Mikrokontroler yang Ramah Pengguna

Konsep Dasar:

● Arduino Uno R3 adalah mikrokontroler yang dirancang untuk


kemudahan penggunaan, memungkinkan pengembangan proyek
berbasis mikrokontroler tanpa memerlukan pengetahuan mendalam
tentang elektronika atau pemrograman.

Detail Teknis:

● Mikrokontroler: Arduino Uno R3 menggunakan mikrokontroler


ATmega328P dari Microchip.
● Spesifikasi Mikrokontroler: ATmega328P adalah mikrokontroler 8-bit
dengan clock speed 16 MHz. Memori termasuk 32KB Flash memory
untuk program, 2KB SRAM untuk data, dan 1KB EEPROM untuk
penyimpanan data permanen.
● Digital I/O Pins: Terdapat 14 pin input/output digital yang dapat diatur
sebagai input atau output dalam program. Mereka digunakan untuk
mengontrol berbagai komponen seperti LED, tombol, dan sensor.
● Analog Input Pins: Ada 6 pin input analog yang mengonversi tegangan
analog menjadi nilai digital dengan resolusi 10-bit. Ini memungkinkan
pembacaan nilai tegangan dari sensor atau sumber eksternal.
● PWM (Pulse Width Modulation): Arduino Uno R3 memiliki 6 pin
PWM yang menghasilkan sinyal PWM. Ini digunakan untuk
mengontrol kecerahan LED, kecepatan motor, dan sebagainya.
● UART (Universal Asynchronous Receiver-Transmitter): Mendukung
komunikasi serial melalui pin TX (transmit) dan RX (receive).

5
Digunakan untuk berkomunikasi dengan perangkat lain seperti
komputer, sensor, atau perangkat lainnya.
● USB Interface: Terdapat port USB untuk menghubungkan langsung
dengan komputer. Digunakan untuk mengunggah program dan
komunikasi serial.
● Power Supply: Dapat ditenagai melalui port USB atau adaptor listrik
eksternal (7-12V DC). Memiliki regulator tegangan internal yang
menghasilkan 5V untuk komponen elektronik.
● ICSP (In-Circuit Serial Programming): Port ini memungkinkan
pengunggahan program melalui programmer eksternal.
● GPIO Header: Header "GND" dan "5V" memberikan sumber daya dan
referensi tanah untuk proyek.
● Perangkat Lunak: Diprogram menggunakan Arduino IDE dengan
bahasa C/C++ yang disederhanakan.

4.2 Motor Driver LM298N: Pengendali Arus untuk Motor DC

Konsep Dasar:

● Motor driver L298N mengontrol arus yang diberikan ke motor,


memungkinkan pengendalian arah dan kecepatan putaran motor DC.

Detail Teknis:

● H-Bridge Configuration: L298N menggunakan H-bridge ganda


dengan empat transistor yang dikendalikan melalui sinyal input. Ini
memungkinkan pengendalian arah dan mode motor (maju, mundur,
atau berhenti).

6
● Input dan Output Pins: Setiap motor memiliki dua input kontrol untuk
maju dan mundur, serta pin enable (ENA dan ENB) untuk mengatur
kecepatan motor melalui PWM.
● Power Supply: Memerlukan sumber daya eksternal untuk motor,
biasanya sesuai dengan spesifikasi motor. Tegangan kontrol berasal
dari mikrokontroler (biasanya 5V).
● Current Sensing: Beberapa versi L298N memiliki resistor sensing
untuk mengukur arus ke motor. Ini dapat digunakan untuk memantau
beban pada motor.
● Protection Features: Beberapa versi dilengkapi dengan perlindungan
tegangan berlebih dan arus berlebih untuk mencegah kerusakan.

4.3 Motor Servo DC dengan Encoder: Umpan Balik Presisi

Konsep Dasar:

● Motor servo DC dilengkapi dengan encoder untuk umpan balik presisi,


memungkinkan pengukuran dan pengendalian posisi motor secara
akurat.

Detail Teknis:

● Motor: Menggunakan komutasi arus searah (DC) dengan gulungan


(coil) untuk menghasilkan gerakan rotor.
● Sensor Umpan Balik: Encoder optik atau resolver digunakan untuk
mengukur posisi, kecepatan, dan arah putaran. Mengonversi posisi
menjadi sinyal digital.
● Driver Motor: Mengontrol arus yang diberikan ke motor berdasarkan
sinyal dari sistem kontrol.

7
● Sistem Kontrol: Menerima informasi dari sensor umpan balik dan
membandingkannya dengan setpoint. Menghasilkan sinyal kontrol
untuk mengoreksi posisi atau kecepatan rotor.
● PID Controller: Menggunakan pengontrol PID (Proporsional-Integral-
Derivatif) untuk sinyal kontrol yang tepat.
● Feedback Loop: Proses umpan balik terjadi dalam loop berulang:
Sensor mengukur posisi, sistem kontrol membandingkan dengan
setpoint, dan sinyal kontrol dikirimkan ke driver motor.

8
BAB 5. Evaluation and Conclusion

Dengan dibuatnya projek ini diharapkan pembaca serta pembuat laporan dapat lebih
paham dan mendalami terkait pengaplikasian arduino pada bidang elektronik. Dengan
dibuatnya projek ini penulis laporan dan pembaca dapat memahami bagaimana cara
kerja dari tiap tiap komponen baik arduino, motor driver maupun DC motor dengan
encoder. Selain memahami cara kerja penulis laporan pembaca dapat memahami pula
bagaimana komponen komponen dapat dibuat menjadi suatu alat yang mungkin dapat
berguna bagi kehidupan. Dengan menyusun komponen komponen agar dapat
mengendalikan baik kecepatan maupun arah dari motor diharapkan baik penulis
laporan maupun pembaca dapat mengembangkan kreativitas terkait projek tersebut.
Lalu dengan dibuatnya projek ini kami juga dapat mengerti bahwa projek masih
belum sempurna karena masi terjadi beberapa bug terkait code yang dibuat.

9
REFERENCE

https://curiores.com/positioncontrol
https://www.youtube.com/watch?v=QVsNu8hVk0Y&t=243s

10
Lampiran (Code)

int pwm;

void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pwm = 0;
}

void loop() {
if (Serial.available() > 0) {
char incomingdata = Serial.read();
switch (incomingdata) {
case 'z':
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
Serial.println("Direction: Counter-Clockwise");
break;
case 'x':
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
Serial.println("Direction: Clockwise");
break;
case 's':
digitalWrite(2, LOW);
digitalWrite(3, LOW);
Serial.println("Direction: Stop");
break;

11
case 'v':
if (pwm >= 255) {
pwm = 0;
} else {
pwm = pwm + 10;
}
analogWrite(2, pwm);
digitalWrite(3, LOW);
Serial.print("Direction: Counter-Clockwise, ");
Serial.print("PWM value: ");
Serial.println(pwm);
break;
case 'b':
if (pwm >= 255) {
pwm = 0;
} else {
pwm = pwm + 10;
}
digitalWrite(2, LOW);
analogWrite(3, pwm);
Serial.print("Direction: Clockwise, ");
Serial.print("PWM value: ");
Serial.println(pwm);
break;
}
}
}

12
Berikut link video kami cantumkan:

https://drive.google.com/drive/folders/11KIZSzBij4lIWGZWIer8cyY9vTS0Nlu2?
usp=sharing

13

Anda mungkin juga menyukai