Site icon Elektrologi

Perancangan Pengendali Motor Berbasis Mikrokontroler

Kit kendali motor digital
Kit kendali motor digital

Pada tulisan ini diuraikan contoh perancangan suatu sistem kendali motor dengan menggunakan mikrokontroler ATMega328 atau Arduino Nano.

Batasan masalahnya adalah sebagai berikut

Komponen yang tersedia:

Blok Diagram Sistem

Berikut ini adalah blok diagram sistem kendali secara keseluruhan.

Blok diagram pengendali motor berbasis mikrokontroler ATMega328

Analisis Kebutuhan Pin

Daftar pin pada mikrokontroler ATMega328

Pin pada mikrokontroler terbatas, jadi perlu dianalisis dulu apakah pin yang ada cukup. Jika tidak cukup, maka harus melakukan ekspansi port, atau menggunakan mikrokontroler lain yang pin lebih banyak.

Jumlah pin pada ATMega328 adalah 23 buah, jadi perlu dianalisis dulu apakah pin yang ada cukup untuk menyambungkan semua periferal. Dalam prakteknya, beberapa  pin sudah dipakai untuk fungsi lain, jadi tidak tersedia, misalnya di Arduino Nano pin berikut sudah dipakai:

Jadi dalam praktisnya, yang tersedia adalah 18 pin.

Analisis alokasi pin:
Potensiometer memerlukan 1 input analog, untuk itu dapat menggunakan salah satu dari pin PC0 (ADC0) sampai PC5 (ADC5)

Rotary encoder memiliki 2 output, jadi perlu 2 pin digital untuk membaca data dari rotary encoder.

Motor agar dapat bergerak 2 arah memerlukan transistor yang dipasang dalam konfigurasi ‘H Bridge’. Pada sebuah H-Bridge terdapat 4 transistor, jadi memerlukan 4 pin digital untuk masing-masing transistor. Jumlah pin digital dapat dikurangi jika menggunakan rangkaian logika sehingga hanya diperlukan 2 pin saja: direction dan PWM. Namun pada soal hanya disediakan transistor, resistor dan sebagainya, jadi reduksi dari 4 pin menjadi 2 pin hanya boleh dilakukan dengan transistor.

LED 7 segment dapat menggunakan cara langsung: 1 pin ke 1 LED, atau bisa juga menggunakan multipleksing. Jika menggunakan cara langsung, maka diperlukan 14 pin digital untuk mengendalikan 2 buah LED 7 segment. Jika menggunakan multipleksing, maka diperlukan (7+2) pin digital.

Alternatif 1: motor dengan 4 pin, LED langsung

Alokasi pin:

Total pin: 21 , jadi konfigurasi ini dapat dibuat.

Alternatif 2: motor dengan 4 pin, LED dengan multipleksing.

Total pin: 16 , jadi konfigurasi ini dapat dibuat.

Alternatif 3: motor dengan 2 pin, LED dengan multipleksing.

Total pin: 14 , jadi konfigurasi ini dapat dibuat.

Rangkaian Potensiometer

Potensiometer dipakai sebagai pembagi tegangan. Tegangan output (Vout) akan dapat dipakai untuk mengetahui sudut putaran potensiometer. Perlu diperhatikan bahwa Vin harus <= 5 volt, supaya Vout juga <= 5 volt. Jika Vout melebihi 5 volt, maka dapat merusak mikrokontroler yang bekerja pada 5 volt.

Potensiometer sebagai pembagi tegangan

Vout dihubungkan ke salah satu pin analog input pada ATMega328.

Referensi:

Rangkaian Rotary Encoder

Rotary encoder memerlukan koneksi ke GND , tegangan supply VCC, dan ada output A dan B. VCC dapat dihubungkan ke tegangan 5 volt. Detailnya disesuaikan dengan datasheet dari rotary encoder tersebut. Output A dan B dihubungkan ke input digital di mikrokontroler.

Rotary encoder

Pin yang dipilih di mikrokontroler tergantung dari metode pembacaan input yang dipakai, ada beberapa cara:

Rangkaian Motor DC

Sinyal output dari mikrokontroler hanya maksimal arus 40 mA dengan tegangan 5 volt, jadi tidak cukup untuk menggerakkan motor. Cara yang paling umum untuk menyambungkan motor DC ke mikrokontroler adalah menggunakan rangkaian ‘H Bridge’, dengan rangkaian ini motor dapat dikendalikan maju mundur.

H Bridge

Pada H-Bridge juga dipasang dioda pengaman (D1 , D2, D3, D4) untuk mengamankan arus yang timbul karena induktansi motor. Rangkaian ini memerlukan 4 output digital dari mikrokontroler.

H-Bridge menggunakan teknik PWM (Pulse Width Modulation) untuk mengatur energi yang diberikan ke motor DC, dan dengan demikian dapat mengatur kecepatan motor. Arah putaran motor juga dapat diatur dengan mengatur kombinasi transistor yang aktif.

Selain menggunakan H-Bridge , antar muka ke motor DC dapat juga menggunakan teknik berikut:

H-Bridge tersedia dalam bentuk modul yang sudah jadi, di dalamnya sudah ada transistor power dan antar muka dari mikroprosesor (CMOS/TTL) ke transistor tersebut, sehingga sangat mudah dihubungkan ke mikroprosesor. Contoh modul tersebut adalah di antaranya Toshiba TB6612FNG dan Infineon TLE 5025-2

H-Bridge Motor driver TB6612FNG

TLE 5025-2 H-Bridge dengan kemasan TO-220

Referensi

Rangkaian LED 7 Segment

Cara 1: tanpa multipleksing. Setiap LED di 7 Segment dihubungkan ke output mikrokontroler. Cara ini memerlukan 14 pin output digital di mikrokontroler, namun memudahkan pemrograman karena tidak perlu melakukan update rutin.

LED 7 Segment tanpa multipleksing

Cara 2: dengan multipleksing. LED 7 Segment dapat dihubungkan dengan menggunakan multipleksing seperti rangkaian berikut ini:

LED 7 Segment common cathode

Teknik multipleksing ini hanya memerlukan 9 pin digital output, namun memerlukan software yang lebih kompleks.

Perhitungan nilai resistor seri LED

Perhitungan nilai resistor basis transistor (R1 dan R2)

Referensi:

Rangkaian Sumber Daya

Sumber daya yang tersedia hanya 12 volt, sedangkan rangkaian memerlukan 12 volt (motor) dan 5 volt (lainnya). Untuk itu diperlukan regulator yang sesuai, misal regulator 7805 yang dapat mengubah input 12 volt menjadi output 5 volt.

Potensiometer memerlukan tegangan 5 volt untuk Vin. Jika menggunakan 12 volt, maka Vout juga dapat mencapai 12 volt, sehingga dapat merusak mikrokontroler.

Motor DC memerlukan 12 volt, sehingga tegangan 12 volt dapat langsung disambung ke rangkaian motor driver.

Mikrokontroler ATMega328 memerlukan VCC 5 volt, sehingga memerlukan regulator 5 volt.

Rotary encoder memerlukan tegangan 5 volt, sehingga memerlukan regulator 5 volt.

LED 7 Segment jika common cathode tidak terhubung ke VCC, sehingga tidak perlu sambungan ke sumber daya. Jika menggunakan common anode, maka bagian common (anode) dihubungkan ke output regulator 5 volt. Perlu berhati-hati menghubungkan LED ke 12 volt, karena kalau salah , maka akan ada tegangan 12 volt masuk ke pin mikrokontroler, sehingga dapat merusak mikrokontroler.

Rangkaian power supply

Skema Rangkaian Lengkap

[under construction]

Penentuan Frekuensi Sampling

Frekuensi sampling ditentukan dari bandwidth sistem yang dikendalikan.  Sesuai dengan kriteria Nyquist, frekuensi sampling adalah 2x frekuensi maksimum sistem. Pada persoalan ini nilai frekuensi sistem belum diketahui, namun dapat dihitung dengan mengetahui parameter sistem (Gc(s) dan Gp(s), ataupun dapat juga diukur dengan memperhatikan respon sistem terhadap sinyal input step.

Interupsi pada Perangkat Lunak

Berikut ini beberapa bagian pada sistem kendali ini yang memerlukan interupsi:

Diagram Alir Perangkat Lunak

Detail diagram alir (flowchart) tergantung dari konsep software yang dipakai. Berikut ini salah satu desain:

Diagram Alir Sistem Kendali

Penjelasan:

Rotary encoder menggunakan interupsi PCINT. Tiap kali ada transisi/perubahan di output A ataupun B, maka akan timbul interupsi. Dari sinyal ini dapat diketahui motor bergerak maju atau mundur. Angka posisi ini diakumulasikan oleh blok ‘Update counter posisi’

LED 7 Segment perlu update rutin jika menggunakan teknik multipleksing. Update ini ditangani oleh ‘Update Display LED’ yang dipanggil oleh interupsi TIMER.

Algoritma kendali digital memerlukan sampling secara rutin, untuk itu memerlukan interupsi TIMER secara teratur. Fungsi ini ditangani oleh blok ‘Sampling Kendali’.

Hal yang dikerjakan oleh blok ‘Sampling Kendali’ adalah sebagai berikut:

Jika display LED menggunakan teknik langsung tanpa multipleksing, maka flowchart dapat dimodifikasi sebagai berikut:

Flowchart kendali digital sederhana
Exit mobile version