Nama : Yudi Setiadi Sopandi
Nosis : 202207024-E
Telkommil Tkt 2 semester 4
KONTROL PWM SERVO MENGGUNAKAN ARDUINO UNO
1. BUAT RANGKAIAN MOTOR BRUSHLESS + ESC +
ARDUINO (SBG PENGGANTI FLIGHT CONTROL) DALAM PROTEUS
Untuk membuat
rangkaian motor brushless menggunakan ESC dan Arduino di Proteus, berikut
adalah langkah-langkahnya:
Komponen yang
dibutuhkan:
§
Arduino Uno
§
ESC (Electronic Speed Controller)
§
Motor Brushless
§
Potensiometer (untuk input frekuensi)
§
Baterai atau sumber daya
Langkah-langkah:
1. Buka Proteus dan buat proyek baru.
2. Tambahkan komponen berikut dari
library:
§
Arduino Uno
§
Motor Brushless
§
ESC
§
Potensiometer
§
Sumber daya (baterai)
3. Rangkaian Dasar:
§
Sambungkan pin sinyal ESC ke salah satu pin PWM
pada Arduino, misalnya pin 9.
§
Sambungkan kabel daya ESC ke sumber daya
(baterai).
§
Hubungkan motor brushless ke ESC.
§
Hubungkan potensiometer dengan pin analog
Arduino, misalnya A0.
4. Skema Rangkaian:
§
ESC Signal (White/Yellow) -> Arduino PWM pin
(9)
§
ESC Ground (Black) -> Arduino Ground (GND)
§
ESC Power (Red) -> Baterai positif
§
ESC Ground -> Baterai negatif
§
Potentiometer VCC -> Arduino 5V
§
Potentiometer GND -> Arduino GND
§
Potentiometer output -> Arduino A0
2. BUAT CODING UNTUK MENGATUR KECEPATAN MOTOR
BRUSHLESS
Berikut adalah
contoh kode untuk mengatur kecepatan motor brushless menggunakan Arduino:
cpp
Salin kode
#include
<Servo.h>
Servo esc; //
membuat objek Servo untuk mengontrol ESC
int potPin = A0;
// Pin analog untuk potensiometer
int potValue; //
Variabel untuk menyimpan nilai potensiometer
int escPin = 9; //
Pin PWM untuk mengontrol ESC
void setup() {
esc.attach(escPin); // Menghubungkan ESC ke
pin 9
Serial.begin(9600); // Memulai komunikasi
serial
}
void loop() {
potValue = analogRead(potPin); // Membaca
nilai potensiometer (0-1023)
int escValue = map(potValue, 0, 1023, 1000,
2000); // Mapping nilai potensiometer ke nilai PWM (1000-2000)
esc.writeMicroseconds(escValue); // Mengirim
sinyal PWM ke ESC
Serial.print("Potentiometer Value:
");
Serial.print(potValue);
Serial.print(" - ESC Value: ");
Serial.println(escValue);
delay(50); // Delay kecil untuk stabilitas
}
3. INPUT DATA PADA ARDUINO PADA ADC PIN 0,
SEMAKIN BESAR FREKUENSINYA SEMAKIN CEPAT PUTARAN MOTORNYA SEMAKIN RENDAH
FREKUENSI SEMAKIN RENDAH PUTARANNYA
Potensiometer akan
digunakan untuk mengatur kecepatan motor dengan memberikan nilai analog ke pin
A0 Arduino. Nilai ini akan dibaca oleh Arduino dan di-mapping untuk
menghasilkan sinyal PWM yang sesuai ke ESC.
4. JELASKAN CARA KERJANYA
1. Input Frekuensi:
§
Potensiometer berfungsi sebagai input untuk
mengubah nilai analog yang dibaca oleh pin ADC (A0) pada Arduino.
§
Semakin tinggi nilai potensiometer, semakin
besar frekuensi yang dihasilkan dan dikirim ke ESC.
2. Pengaturan Kecepatan:
§
Arduino membaca nilai analog dari potensiometer
menggunakan analogRead().
§
Nilai analog (0-1023) di-mapping ke nilai PWM
(1000-2000) menggunakan fungsi map().
§
Nilai PWM ini dikirim ke ESC menggunakan fungsi
writeMicroseconds() dari library Servo.
3. ESC dan Motor Brushless:
§
ESC menerima sinyal PWM dari Arduino dan
mengatur daya yang dikirim ke motor brushless sesuai dengan sinyal tersebut.
§
Motor brushless berputar dengan kecepatan yang
sesuai dengan sinyal PWM yang diterima dari ESC.
§
Dengan langkah-langkah di atas, Anda dapat
membuat rangkaian untuk mengontrol kecepatan motor brushless menggunakan
Arduino dan Proteus.


