0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan9 halaman

Koneksi MATLAB dengan Arduino: Panduan Lengkap

Diunggah oleh

Yossy Hermawan
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan9 halaman

Koneksi MATLAB dengan Arduino: Panduan Lengkap

Diunggah oleh

Yossy Hermawan
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

[TUTORIAL] Menghubungkan MATLAB-Arduino

Fungsi Dasar Pustaka Arduino


Ketika kita menggunakan pustaka Arduino pada MATLAB, maka
MATLAB dapat mengambil alih kontrol pada papan Arduino. Kita dapat
langsung mengetikkan sintaks atau skrip tertentu pada MATLAB, dan melihat
hasilnya pada papan Arduino. Proses awal ketika membangun koneksi antara
MATLAB dengan Arduino memang membutuhkan waktu beberapa saat. Kita
harus sabar menunggu proses ini. Namun, untuk selanjutnya, kita dapat
mengontrol Arduino sepenuhnya tanpa harus melakukan koneksi ulang. Hal ini
akan berbeda jika kita mengetikkan program pada IDE Arduino. Perbaikan satu
karakter saja harus melakukan proses upload ulang ke papan Arduino.
Jika kita menggunakan pustaka Arduino pada MATLAB, maka tentunya
terdapat beberapa fungsi yang akan digunakan oleh MATLAB untuk
berkomunikasi dan mengontrol Arduino. Secara garis besarnya, terdapat beberapa
fungsi pada MATLAB yang sepadan dengan fungsi yang digunakan pada IDE
Arduino. Fungsi sepadan maksudnya adalah fungsi yang memiliki kegunaan yang
serupa, namun dengan perbedaan nama dan input untuk setiap fungsi.
Amatilah Tabel 1.

Tabel 1. Kesepadanan fungsi Arduino dan MATLAB


Semua fungsi MATLAB pada Tabel 1 akan dimulai dengan pemanggilan
fungsi utama, yaitu arduino(). Fungsi arduino() akan membangun koneksi antara
MATLAB dan Arduino. Saat eksekusi ini dijalankan, maka kita harus menunggu
beberapa saat sampai semua pustaka diunggah ke papan Arduino.
Menghubungkan MATLAB-Arduino
Pastikan komputer kita terkoneksi dengan Arduino melalui kabel USB.
Untuk menghubungkan ke Arduino, ketikklah sintaks berikut pada Command
Window:
Membangun Koneksi MATLAB-Arduino
1. a = arduino
a=
arduino with properties:
Port: 'COM33'
Board: 'Uno'
AvailableAnalogPins: [0,1,2,3,4,5]
AvailableDigitalPins: [2,3,4,5,6,7,8,9,10,11,12,13]
Libraries: {'I2C', 'SPI', 'Servo'}
Jika kita menggunakan produk tidak resmi (unofficial) atau produk dari vendor
lain yang mungkin tidak terdeteksi secara langsung oleh komputer, maka pastikan
nomer port COM yang digunakan dan jenis papan yang terpakai. Tambahkanlah
input tersebut ke fungsi Arduino sebelumnya:
Menghubungkan MATLAB-Arduino jika Diketahui Nomer Port
1. a = arduino('com33','uno')
a=
arduino with properties:
Port: 'COM33'
Board: 'Uno'
AvailableAnalogPins: [0,1,2,3,4,5]
AvailableDigitalPins: [2,3,4,5,6,7,8,9,10,11,12,13]
Libraries: {'I2C', 'SPI', 'Servo'}
Selain untuk produk unofficial, penambahan nomer COM dan jenis papan
Arduino berguna untuk akses yang lebih cepat dan penggunaan lebih dari sebuah
papan Arduino pada saat yang sama. Kita dapat membuat variabel yang berbeda
untuk beberapa papan yang kita gunakan, misalnya:
Menghubungkan Banyak Arduino
1. a1 = arduino('com31','uno');
2. a2 = arduino('com33','uno');
3. a3 = arduino('com20','mega');
Pada pembahasan selanjutnya, kita akan menggunakan penulisan
fungsi arduino(), lengkap dengan nomer COM dan jenis papannya. Penulisan
seperti ini dapat digunakan, baik produk official maupun unofficial.

Membaca dan Menulis Pin Digital


Membaca Pin Digital
Tempatkanlah sebuah push button pada pin digital 8, seperti pada Gambar 1.
Hubungkan salah satu kaki dengan GND dan sisanya ke pin digital 8.

Gambar 1. Pemasangan Pushbutton


Hubungkan Arduino dengan komputer. Saat ini, penulis
menggunakan COM33 (sesuaikan dengan komputer Pembaca). Aktifkan pull-up
resistor internal pada Arduino untuk pin ke-8, dan buatlah sebagai input dengan
sintaks berikut:
Contoh: Membaca Pin Digital
1. a = arduino('com33','uno');
2. configureDigitalPin(a,8,'pullup');
Ingat, jika variabel a masih tersimpan pada Workspace MATLAB, kita tidak perlu
lagi menuliskan sintaks a=arduino('com31','uno'). Kita cukup memulai
dari configureDigitalPin(a,8,'pullup'). Jika ditulis untuk kedua kalinya, maka
akan terdapat pesan error yang mengatakan bahwa port telah terpakai. Skrip di
atas Penulis asumsikan bahwa kita membangun koneksi dari awal.
Bacalah keadaan tombol, dan simpanlah keadaan tombol dengan nama variabel
tertentu, misalnya buttonState:
1. buttonState = readDigitalPin(a,8)
buttonState =
1
Ubahlah posisi push button dengan cara menekan tombol tersebut, dan baca
kembali begaimana keadaan tombol saat ini:
1. buttonState = readDigitalPin(a,8)
buttonState =
0
Menulis Pin Digital
Selain membaca, kita juga dapat menulis melalui digital pin. Saat ini kita akan
menempatkan LED pada pin digital 7 dan sebuah resistor sebesar 220 atau 330
Ohm, seperti pada Gambar 2. Buatlah objek Arduino jika kita belum
membuatnya.
Gambar 2. Pemasangan LED
1. a = arduino('com33','uno');
Nyalakanlah LED dengan sintaks berikut:
Contoh: Menyalakan LED
1. writeDigitalPin(a,7,1)
Untuk memadamkan, gunakanlah sintaks berikut:
Contoh: Memadamkan LED
1. writeDigitalPin(a,7,0)
Sebagai variasi, jika kita ingin menyalakan dan memadamkan LED secara
bergantian sebanyak 10 kali dengan selang waktu 0,5 detik diantara menyala dan
padam, maka kita dapat menggunakan sintaks berikut:
Contoh: Membuat LED Berkedip
1. for i= 0:10
2. writeDigitalPin(a,7,1);
3. pause(0.5);
4. writeDigitalPin(a,7,0);
5. pause(0.5);
6. end
Kita dapat mengubah input untuk fungsi pause untuk mendapatkan variasi durasi
menyala dan padam dari LED tersebut.
Memainkan Nada
Selain membaca posisi tombol dan menghidupkan LED secara digital,
pustaka Arduino pada MATLAB juga dapat membangkitkan sinyal dengan
frekuensi tertentu melalui pin digital. Pasanglah sebuah piezo buzzer melalui pin
digital 11, seperti pada Gambar 3. Buatlah objek Arduino jika kita belum
membuatnya:
Gambar 3. Pemasangan Buzzer
1. a = arduino('com33','uno');
Mainkan nada dengan frekuensi 1500 Hertz selama 5 detik.
Contoh: Memainkan Nada
1. playTone(a,11,1500,5);
Untuk mematikan nada buatlah durasi menjadi 0 detik, atau buatlah frekuensi
menjadi 0 Hertz.
1. playTone(a,11,1500,0);
atau:
1. playTone(a,11,0,5);
Membaca dan Menulis Pin Analog
Membaca Pin Analog
Setelah membahas bagaimana membaca dan menulis pada pin digital, mari kita
lanjutkan untuk pin analog. Untuk membaca nilai analog, kita dapat
memanfaatkan sebuah potensiometer. Rangkailah potensiometer melalui
pin Analog 2, seperti pada Gambar 4.
Buatlah objek Arduino, jika kita belum membuatnya. Konfigurasikan pin sebagai
input:
1. a = arduino('com33','uno');
2. configureAnalogPin(a,2,'input');
Putar-putarnya potensiometer, dan bacalah berapa tegangan yang masuk ke pin
analog 2.
Contoh: Membaca Tegangan yang Masuk ke Pin Arduino
1. tegangan = readVoltage(a,2)

Gambar 4. Pemasangan potensiometer


Menulis Pin Analog
Untuk menulis pin Analog, kita harus menempatkan komponen kita pada
pin yang memiliki fungsi PWM. Pada Arduino Uno, fasilitas ini terdapat pada Pin
3, 5, 6, 9, 10, dan 11. Pin ini dicirikan dengan karakter " ~ " di awal angka pin.
Walaupun berada pada pin digital, fungsi PWM (Pulse Width Modulation) pada
pin ini dapat membuat variasi output analog. Manipulasi sinyal digital
dengan duty cycle tertentu dapat mengakibatkan variasi outout tegangan pada pin
digital yang memiliki fasilitas PWM. Pembahasan lebih detail mengenai PWM
akan dibahas pada BAB berikutnya.
Ubahlah rangkaian pada Gambar 2.. Jika sebelumnya berada pada pin 7,
sekarang rangkailah sebuah LED melalui pin 9. Jangan lupa untuk menempatkan
sebuah resistor. Pilihlah resistor dengan nilai antara 220 Ohm sampai 1 kOhm.
Buatlah objek Arduino jika kita belum membuatnya.
1. a = arduino('com33','uno');
Gambar 5. Pemasangan LED melalui pin PWM
Buatlah variasi tegangan pada pin 9. Karena Arduino bekerja dengan level
tegangan 5 Volt, buatlah variasi antara 0 - 5. Misalnya kita ingin LED setengah
redup. Kita dapat menuliskannya sebagai berikut berikut:
Contoh: Mengatur PWM
1. writePWMVoltage(a,9,2.5);
Selain menggunakan fungsi writePWMVoltage, kita juga dapat
menggunakan perintah writePWMDutyCycle. Namun, perbedaannya adalah
pada penulisan rentang inputnya. Jika menggunakan fungsi writePWMDutyCycle,
kita memberi nilai antara 0 dan 1. Berikut contohnya:
1. writePWMDutyCycle(a,9,0.5);
Cobalah sintaks berikut, dan amati nyala LED pada pin 9:
Contoh: Mengatur Intensitas LED
1. step = (1-0)/20;
2. for i = 1:20
3. writePWMDutyCycle(a, 9, i*step);
4. pause(0.1);
5. end
6. for i = 1:20
7. writePWMDutyCycle(a, 9, 1-i*step);
8. pause(0.1);
9. end
Bagi pembaca yang ingin mencoba kombinasi membaca dan menulis pin
analog, lakukanlah percobaan berikut. Rangkailah perangkat seperti
pada Gambar 6. Ketiklah skrip berikut:
Contoh: Kombinasi Baca-Tulis Pin Analog
1 durasi = 300;
2 while durasi > 0
3 tegangan = readVoltage(a, 2);
4 writePWMVoltage(a, 9, tegangan);
5 durasi = durasi - 1;
6 pause(0.1);
7 end

Gambar 6. Kombinasi Read dan Write sinyal analog

Anda mungkin juga menyukai