Komunikasi serial via Port
Sinopsis
Pembahasan kali ini agak sedikit berbeda dengan yang sebelumnya, yaitu komunikasi serial. Penulis menggunakan arduino UNO sebagai contoh sederhananya. Dibawah ini Arduino UNO sudah terpasang pada port USB di COM.
Untuk contoh sederhanya yaitu, Arduino UNO akan menerima perintah via USB dari Matlab yaitu kode 1 dan 2, dimana untuk 1 akan menghidupkan lampu led, sebaliknya untuk 2 akan mematikan lampu led. Secara default, arduino UNO mempunya pin no 13 berupa lampu led, kita akan menggunakan hal tersebut sehingga menjadi lebih mudah.
byte a,b; //variabel awal void setup() { Serial.begin(9600); // baud rate nya pinMode(13,OUTPUT); //kita set pin no 13 sebagai output digitalWrite(13,HIGH); //kita hidupkan dari awal } void loop() { a = Serial.read(); //baca serial b = char(a); //ubah ke string switch(b) { case '1': digitalWrite(13,HIGH); Serial.println("portal terbuka"); break; case '2': digitalWrite(13,LOW); Serial.println("portal tertutup"); break; } }
Yuk, kita pakai komunikasi serial bawaan IDE nya Arduino seperti berikut
Cukup mudah, bukan?
Matlab Komunikasi serial
Nah sekarang kita menggunakan Matlab Komunikasi serial seperti code berikut
s=serial('COM5') fopen(s)
Hasil dari fopen(s)
Serial Port Object : Serial-COM5 Communication Settings Port: COM5 BaudRate: 9600 Terminator: 'LF' Communication State Status: closed RecordStatus: off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0
Nah, kirimkan data ke USB menggunakan perintah berikut
fprintf(s,'1')
atau kode berikut
fprintf(s,'2')
Nah, jangan lupa bila sudah selesai, coba-cobanya, agar close serial nya dengan code berikut
fclose(s)