PERCOBAAN 12

BUAT RANGKAIAN MOTOR BRUSHLESS + ESC + ARDUINO (SBG PENGGANTI FLIGHT CONTROL) DALAM PROTEUS

1.  Tujuan : Agar Bamasis mampu membuat buat rangkaian motor brushless + esc + arduino (sebagai pengganti flight control) dalam proteus. 

2.  Alat dan bahan :

     a.    Laptop

     b.    Aplikasi proteus

3.  Teori

     a.    Proteus

Proteus adalah sebuah software yang digunakan untuk simulasi elektronika. Ini memungkinkan pengguna untuk merancang, mensimulasikan, dan menguji berbagai rangkaian elektronika sebelum implementasi fisiknya. Proteus memiliki berbagai library komponen yang mencakup berbagai macam komponen elektronika seperti mikrokontroler, sensor, aktuator, dan banyak lagi. Pengguna dapat membangun dan menguji rangkaian elektronika secara virtual sebelum melakukan produksi atau implementasi fisiknya.

      b.   Arduino

Arduino adalah platform pengembangan open-source yang populer untuk elektronika DIY (Do It Yourself). Ini terdiri dari board mikrokontroler yang dilengkapi dengan input/output (I/O) dan lingkungan pengembangan perangkat lunak (IDE) yang mudah digunakan. Arduino dapat digunakan untuk mengontrol berbagai macam perangkat elektronik, termasuk motor brushless, melalui program yang ditulis dalam bahasa Arduino yang berbasis C/C++.

      c.  ESC (Electronic Speed Controller)

Electronic Speed Controller (ESC) adalah perangkat elektronik yang digunakan untuk mengontrol kecepatan dan arah putaran motor brushless. ESC menerima sinyal kontrol dari mikrokontroler atau sistem pengendali lainnya (misalnya, flight controller pada drone) dan mengubahnya menjadi sinyal PWM (Pulse Width Modulation) yang sesuai untuk mengatur kecepatan motor brushless. ESC umumnya digunakan dalam aplikasi drone, RC (Remote Control) mobil, dan model-model RC lainnya.

     d.  Motor Brushless

Motor brushless adalah jenis motor elektrik yang tidak memiliki sikat (brush) seperti motor DC konvensional. Motor ini menggunakan elektromagnetik untuk menggerakkan rotor, yang membuatnya lebih efisien dan tahan lama dibandingkan dengan motor DC sikat. Motor brushless umumnya digunakan dalam aplikasi yang membutuhkan kecepatan dan efisiensi tinggi, seperti drone, mobil RC, pompa, dan aplikasi industri lainnya.

4.  Langkah- Langkah Percobaan

1. Buka Proteus

2. Tambahkan Komponen-komponen:

    a.  Buka mode Component Mode di Proteus.

    b.  Cari dan tambahkan komponen-komponen berikut ke dalam desain:

1)     Arduino Uno: Sebagai pengendali utama.

2)     Motor Brushless: Temukan motor brushless dalam library Proteus, biasanya dapat ditemukan di bagian Motor atau Power.

3)     Electronic Speed Controller (ESC): Meskipun tidak ada komponen ESC secara khusus di Proteus, Anda dapat menggantinya dengan sirkuit sederhana yang menghasilkan sinyal PWM yang diharapkan oleh ESC.

4)     Potensiometer (opsional): Untuk mensimulasikan input ADC dari Arduino.

3. Hubungkan Komponen:

 

    Sambungkan komponen-komponen tersebut sesuai dengan diagram berikut:

a)     Arduino Uno: Hubungkan pin output PWM (biasanya pin 9) ke input kontrol ESC.

b)     Motor Brushless: Hubungkan output dari ESC ke motor brushless.

c)     Potensiometer (opsional): Hubungkan potensiometer ke pin ADC Arduino (misalnya, A0) untuk mensimulasikan input analog.

             4. Coding

// Pin ESC terhubung ke pin 9 Arduino

const int escPin = 9;

// Pin ADC yang digunakan

const int analogInPin = A0;

 

void setup() {

  // Mengatur pin ESC sebagai output

  pinMode(escPin, OUTPUT);

 

  // Memulai komunikasi serial

  Serial.begin(9600);

}

void loop() {

  // Membaca nilai dari ADC

  int sensorValue = analogRead(analogInPin);

 

  // Mengonversi nilai ADC (0-1023) menjadi kecepatan motor (0-255)

  int throttleInput = map(sensorValue, 0, 1023, 0, 255);

 

  // Mengontrol kecepatan ESC menggunakan fungsi analogWrite

  // Perlu konversi nilai dari 0-255 ke pulsa PWM (untuk ESC sekitar 1000-2000 mikrodetik)

  int escSpeed = map(throttleInput, 0, 255, 1000, 2000);

  analogWrite(escPin, escSpeed);

 

  // Menampilkan nilai ADC dan kecepatan motor ke Serial Monitor

  Serial.print("Nilai ADC: ");

  Serial.print(sensorValue);

  Serial.print(" | Kecepatan motor: ");

  Serial.println(throttleInput);

 

  delay(100); // Delay untuk stabilitas dan mencegah bacaan berulang cepat dari ADC

}

5.  Penjelasan cara kerja

                     

  1. Setup:
    • pinMode(escPin, OUTPUT);: Mengatur escPin (pin 9) sebagai output untuk mengirimkan sinyal PWM ke ESC.
    • Serial.begin(9600);: Memulai komunikasi serial untuk memantau nilai input dari ADC dan kecepatan motor.
  2. Loop:
    • analogRead(analogInPin);: Membaca nilai analog dari pin analogInPin (A0) dan menyimpannya dalam sensorValue (rentang 0-1023).
    • map(sensorValue, 0, 1023, 0, 255);: Mengonversi nilai sensorValue dari rentang 0-1023 menjadi rentang 0-255 yang akan digunakan sebagai input kecepatan motor.
    • map(throttleInput, 0, 255, 1000, 2000);: Mengonversi nilai throttleInput (0-255) menjadi rentang nilai PWM yang digunakan oleh ESC (sekitar 1000-2000 mikrodetik).
    • analogWrite(escPin, escSpeed);: Mengirimkan sinyal PWM ke pin escPin untuk mengatur kecepatan ESC dan secara efektif mengatur kecepatan motor brushless.
  3. Delay:
    • delay(100);: Memberikan delay singkat untuk stabilitas dan mencegah bacaan berulang cepat dari ADC.

Simulasi di Proteus

  1. Upload Program ke Arduino:
    • Salin kode Arduino di atas dan tempelkan di Arduino IDE di Proteus.
    • Klik "Compile/Verify" untuk memastikan tidak ada kesalahan sintaks.
    • Klik "Upload" untuk mengunggah kode ke Arduino Uno dalam simulasi Proteus.
  2. Mulai Simulasi:
    • Setelah mengunggah program, mulai simulasi di Proteus.
  3. Monitor Hasil:
    • Buka Serial Monitor di Proteus untuk melihat nilai ADC yang dibaca dan kecepatan motor brushless yang diatur berdasarkan input analog (potensiometer atau sumber lainnya).

Catatan Penting:

  • Pastikan model motor brushless, ESC, dan Arduino yang Anda gunakan dalam Proteus sesuai dengan spesifikasi dan karakteristik yang diinginkan.
  • Perhatikan pengaturan sumber daya (misalnya, tegangan dan arus) agar sesuai dengan kebutuhan motor brushless dan ESC.
  • Simulasi ini membantu untuk menguji dan memahami cara kerja sistem kontrol kecepatan motor brushless dengan menggunakan Arduino sebagai pengganti flight control dalam konteks simulasi Proteus.

6. Kesimpulan

Dalam simulasi menggunakan Proteus, kami mengembangkan sistem kontrol kecepatan motor brushless dengan menggunakan Arduino sebagai pengendali utama dan Electronic Speed Controller (ESC) sebagai perantara untuk mengatur kecepatan motor. Input kecepatan diperoleh dari sensor analog simulasi, seperti potensiometer, yang terhubung ke pin ADC Arduino. Arduino membaca nilai analog ini dan mengonversinya menjadi nilai kecepatan motor dalam rentang 0-255 menggunakan fungsi map(). Selanjutnya, nilai kecepatan ini dikonversi menjadi sinyal PWM yang sesuai dengan spesifikasi ESC (antara 1000 hingga 2000 mikrodetik) menggunakan analogWrite(). Sinyal PWM tersebut dikirimkan ke ESC melalui pin output Arduino, yang selanjutnya mengatur kecepatan motor brushless sesuai dengan sinyal yang diterima. Proses simulasi ini memungkinkan pengujian sistem secara virtual sebelum implementasi fisik, memastikan bahwa desain dapat diuji, dioptimalkan, dan disesuaikan tanpa perlu risiko atau biaya tambahan yang terkait dengan prototipe fisik. Keseluruhan, integrasi antara Proteus, Arduino, ESC, dan motor brushless dalam simulasi ini memfasilitasi pemahaman yang mendalam tentang pengaturan dan kontrol motor brushless untuk aplikasi seperti drone atau kendaraan tanpa awak lainnya.