Pemrograman serial port pada Arduino

dokumen-dokumen yang mirip
Belajar mikrokontroler Arduino untuk tingkat Pemula.

Lembar Kegiatan 8 Arduino Wireless Controlling

BAB III METODOLOGI PENELITIAN

BAB IV ANALISA DAN PENGUJIAN ALAT

PANDUAN PRAKTIKUM DASAR ARDUINO

Komunikasi Serial pada ARDUINO UNO R3 untuk mengkatifkan (Menyalakan dan mematikan) LED

BAB IV PEMBAHASAN. 27

Logika pemrograman sederhana

Penggunaan Serial Port Untuk Mengendalikan Atau Menerima Sinyal Dari Peralatan Elektronik

BAB III PERANCANGAN ALAT

4.1.2 Implementasi Sistem Setelah melakukan analisis dan perancangan sistem yang telah dibahas, maka untuk tahap selanjutnya adalah implementasi siste

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III DESAIN DAN PERANCANGAN

LAPORAN PRAKTIKUM TEKNIK KENDALI DIGITAL PERCOBAAN 1 PERANGKAT MASUKKAN DAN KELUARAN ARDUINO UNO. DOSEN : DR. Satria Gunawan Zain, M.

BAB IV PENGUJIAN DAN ANALISA ALAT. perancangan alat. Tujuan pengujian adalah untuk mengetahui kebenaran

MODUL PRAKTIKUM ROBOTIKA. Program Studi Sistem Komputer STMIK STIKOM Indonesia

Komunikasi Serial. Menggunakan Arduino Uno MinSys

Pengenalan Komunikasi Data pada Processing

Membuat program sederhana mengendalikan lampu LED melalui port USB dengan VB. USB HIDClass<->IOConverter

BAB IV HASIL DAN UJI COBA

BAB IV PENGUJIAN DAN ANALISA ALAT

BAB III. Perancangan Indikator Dan Monitoring. Infus Berbasis Nirkabel

BAB III METODE PENELITIAN DAN PERENCANAAN SISTEM. komputer, program yang dibuat menggunakan bahasa pemrograman C#.

BAB IV HASIL DAN UJI COBA

DHT11 Temperature and Humidity Sensor Board Gambar 1 Blok Diagram AN196. 5V (Power) GND (Power)

USB HIDClass<->IOConverter

TUGAS 3 PRAKTIKUM PEMROGRAMAN.NET

BAB IV HASIL DAN UJI COBA

BAB IV PENGUJIAN DAN ANALISA. Untuk mengetahui apakah tujuan-tujuan dari pembuatan alat ini telah

Load file Hex ke Arduino Board dengan EmDeBe Hex Loader (Memprogram Arduino Board dengan Programmer Suka suka)

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV HASIL DAN UJI COBA

BAB IV HASIL PENGUJIAN DAN PENGAMATAN. pengujian perangkat keras (hardware), perangkat lunak (software) dan kinerja

BAB IV ANALISA DAN PENGUJIAN ALAT

PROJECT LED SINYAL MORSE SOS

PANDUAN PRAKTIKUM DASAR ARDUINO

Analog to Digital Convertion Menggunakan Arduino Uno Minsys

Menuntun Anda membuat sketch HelloWorld. Menjelaskan diagram alir pemrograman HelloWorld. Menjelaskan cara memprogram Arduino

Tombol input mikrokontroller ditampilkan pada form aplikasi yang dibangun dengan Delphi 7

BAB IV HASIL PENGUJIAN DAN PENGAMATAN. pengujian perangkat lunak (software) dan kinerja keseluruhan sistem, serta analisa

How2Use DT-51 AT89C51XXX BMS. Oleh: Tim IE. Gambar 1 Tata Letak DT-51 AT89C51XXX BMS

BAB IV PENGUJIAN DAN EVALUASI SISTEM. inputan tekanan pada pad drum yang terdapat sensor piezoelectric.

BAB IV PENGUJIAN DAN ANALISA MEKANISME PENGGERAK PAHAT MESIN ROUTER PADA ARAH SUMBU-Z

MODUL I PENGENALAN VISUAL BASIC.NET

PENGENALAN ARDUINO. SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library.

BAB III PERANCANGAN ALAT

BAB IV PENGUJIAN DAN ANALISA ALAT

MODUL 2 Input Data dalam Arduino

BAB III PERANCANGAN ALAT

BAB IV HASIL PENGUJIAN DAN PENGAMATAN. pengujian perangkat lunak (software) dan kinerja keseluruhan sistem, serta analisa

Percobaan 2 PENGENALAN INTERFACE SERIAL DAN UART

BAB IV PENERAPAN DAN ANALISA

Display LCD. Menggunakan Arduino Uno MinSys

BAB IV PENGUJIAN DAN ANALISA ALAT

Membuat Program Kriptografi dengan VB.Net 2010

BAB IV PENGUJIAN ALAT DAN ANALISA

Light Dependent Resistor LDR Menggunakan Arduino Uno Minsys

Disini kita akan bahas cara koneksi antara Database MySQL dengan VB.Net 2010, semoga dengan ini E-book ini bisa ingat sepanjang jaman ya ^ ^

LAPORAN PRAKTIKUM BAHASA PEMOGRAMAN VISUAL. Asnita Meydelia C. K OFF E

DT-AVR DT-AVR ApplicationNote

BAB IV IMPLEMENTASI DAN UJI COBA

BAB III ANALISIS DAN PERANCANGAN

BAB III PERANCANGAN ALAT

Percobaan 1 PENGENALAN INTERFACE PARALLEL DAN SEVEN SEGMENT LED DISPLAY

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB IV HASIL DAN UJI COBA

Mengerti dan memahami pemrograman berbasis object Mengerti dan memahami pembuatan visualisasi untuk interface

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV HASIL DAN UJI COBA

Praktikum 1. Mata Kuliah : Tugas Pemrograman Visual. Dosen : Nandang Hermanto

BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK

BAB III PERANCANGAN PERANGKAT KERAS DAN LUNAK

BAB 3 PERANCANGAN ALAT

BAB III PERANCANGAN ALAT DAN PROGRAM

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (KOMUNIKASI DATA)

BAB IV PENGUJIAN DAN ANALISA

PERTEMUAN KE-6 STRUKTUR PERULANGAN (menggunakan Loop dan Timer)

BAB IV HASIL DAN UJI COBA

BAB IV PENGUJIAN DAN ANALISA ALAT

PANDUAN PRAKTIKUM DASAR ARDUINO

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV PENGUJIAN DAN ANALISA SISTEM

PANDUAN PRAKTIKUM DASAR ARDUINO

PC-Link. 1x Komputer / Laptop dengan OS Windows 2000, Windows XP atau yang lebih tinggi. Gambar 1 Blok Diagram AN200

BAB IV PEMBAHASAN DAN ANALISA PEMROGRAMAN PADA PLC DAN SOFTWARE WONDERWARE. 4.1 Membuat Program Dalam Bentuk Ladder Pada PLC LS Glofa

PANDUAN PRAKTIKUM DASAR ARDUINO

Pemrograman Visual. Oleh: Danu Wira Pangestu, S.Kom. bangdanu.wordpress.com

Materi Pemrograman Database 1 Didik Nugroho,S.Kom,M.kom MODUL III MEMBUAT FORM MENYIMPAN PROSES PEMBELIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV PENGUJIAN DAN ANALISIS ALAT

BAB IV PENGUJIAN DAN PEMBAHASAN. Pengujian ini termasuk pengujian masing-masing bagian secara terpisah dan pengujian

BAB II MICROSOFT VISUAL STUDIO

DT-AVR Application Note

BAB IV PERANCANGAN ALAT

BAB III ANALISIS DAN PERANCANGAN

MODUL VI Penggunaan Struktur Kontrol Pengulangan

BAB IV HASIL DAN UJI COBA

BAB IV PENGUJIAN SISTEM

Output LED. Menggunakan Arduino Uno MinSys

BAB IV PENGUJIAN DAN ANALISA ALAT

Transkripsi:

Artikel ini ditujukan untuk Anda yang ingin menghubungkan mikrokontroler Arduino dengan aplikasi desktop menggunakan Visual Basic (.NET), melalui komunikasi serial (serial port communication). Perangkat utama yang saya gunakan adalah papan Arduino Mega dan Visual Studio Express 2012. Kita akan membuat program di kedua sisi, yaitu antara mikrokontroler dan komputer akan saling berkomunikasi, jika CommandButton di aplikasi komputer kita klik, maka lampu pada Arduino akan menyala, demikian juga sebaliknya, jika salah satu port di Arduino kita tekan, maka akan muncul informasi di layar komputer. Pemrograman serial port pada Arduino Hubungkan Arduino ke PC Anda menggunakan kabel USB, lalu buka software Arduino. Program ini untuk memastikan bahwa koneksi antara Arduino dan PC tidak ada kendala. Ketik program seperti di bawah ini lalu upload ke Arduino. int inbyte=0; // variable to receive data from serial port void setup() Serial.begin(9600); void loop() if (Serial.available() > 0) inbyte=serial.read(); Serial.write(inByte); Setelah itu buka Tools > Serial Monitor pada aplikasi Arduino, untuk melihat interaksi antara PC dan mikrokontroler. Jika kita mengirim sembarang data, maka Arduino akan membalas data yang sama. Jangan lupa periksa kecepatan komunikasi, keduanya harus sama. Dalam 1 / 10

hal ini 9600 bit per detik. Pada bagian setup, kita mengaktifkan fungsi serial port pada Arduino (yang terkoneksi langsung dengan port USB) dengan perintah: Serial.begin(9600); Perintah ini hanya dilakukan sekali saja, pada saat Arduino diaktifkan atau di-reset. Jika kita ingin kecepatan lebih tinggi, ganti dengan 115000. Jika kita ingin menggunakan serial port yang lain, gunakan Serial1, Serial2 atau Serial3. (berlaku untuk mikro yang serial portnya lebih dari satu, contohnya Arduino Mega, terletak pada pin 14 sampai 19). Jika Anda menggunakan Uno, maka tidak ada pilihan lain. Fungsi Serial.available() memberikan nilai BENAR jika ada data yang masuk. Sedangkan fungsi Serial.read() untuk membaca data yang masuk sebesar 1 byte. Perintah untuk mengirim data dari mikro ke luar adalah Serial.write ( data_yg_ditulis ); Dengan melihat program di atas, maka mikrokontroler hanya akan mengirim ke luar jika ada masukan data serial, dan pengirimannya akan diulang terus sebanyak berapa byte data yang masuk. Mengendalikan LED lewat serial port Sekarang kita akan coba menyalakan atau mematikan LED (pin 13), melalui serial port. Kita buat ketentuan yang sederhana sebagai berikut: jika menerima karakter A maka lampu akan menyala, jika menerima karakter B maka lampu akan mati. 2 / 10

// variable to receive data from serial port int inbyte=0; // Pin 13 has an LED connected on most Arduino boards. int led = 13; void setup() ( // initialize UART at 9600bps Serial.begin(9600); // initialize the digital pin as an output. pinmode(led, OUTPUT); void loop() if (Serial.available() > 0) inbyte=serial.read(); Serial.write(inByte); if (inbyte==65) digitalwrite(led, HIGH); // turn the LED on (HIGH is the voltage level) if (inbyte==66) digitalwrite(led, LOW); // turn the LED off by making the voltage LOW Ketik program di atas, upload dan jalankan Serial Monitor. Kirim karakter A atau B untuk menyalakan dan mematikan LED yang ada di papan Arduino. Catatan: tentu saja Anda bisa mengganti karakter tersebut dengan yang lain, sesuai keinginan. ( A = ASCII nomor 65 dan B = ASCII nomor 66). Membaca status input melalui serial port 3 / 10

Tahap berikutnya adalah pembacaan status input pada Arduino melalui serial port. Ketentuan yang kita buat adalah jika salah satu pin digital pada Arduino bernilai 0/low maka Arduino akan mengirim karakter L dan jika bernilai 1/high maka akan mengirim karakter H. Untuk memudahkan pengamatan, masing-masing karakter diikuti oleh karakter CR atau n. Di contoh ini, kita gunakan pin nomor 24 yang dihubungkan ke sebuah tombol. Kaki satu lagi dihubungkan ke ground. // variable to receive data from serial port int inbyte=0; // Pin 13 has an LED connected on most Arduino boards. int led = 13; // Push button is connected to pin 24 int buttonpin = 24; int buttonstate=0; void setup() // initialize UART at 9600bps Serial.begin(9600); // initialize the digital pin as an output. pinmode(led, OUTPUT); pinmode(buttonpin, INPUT); void loop() if (Serial.available() > 0) inbyte=serial.read(); Serial.write(inByte); if (inbyte==65) digitalwrite(led, HIGH); // turn the LED on (HIGH is the voltage level) if (inbyte==66) digitalwrite(led, LOW); // turn the LED off by making the voltage LOW buttonstate=digitalread(buttonpin); 4 / 10

if (buttonstate==low) Serial.write("Ln"); // send L + CR if (buttonstate==high) Serial.write("Hn"); // send H + CR Ketik program di atas, lalu upload. Buka Serial Monitor, lalu amati data yang diterima. Cobalah juga menekan/melepas tombol sambil mengamati perubahan yang terjadi antara L dan H. Di percobaan ini kita bisa amati, bahwa Arduino mengirimkan data secara terus menerus baik L ataupun H, meskipun tombol ditekan atau dilepas lama. Ingat bahwa hal ini karena instruksi ini terletak di dalam program utama/main loop. Sekarang kita akan coba modifikasi program, sehingga yang terkirim hanya satu kali saja saat terjadi perubahan dari L ke H atau H ke L. Untuk itu, kita harus membandingkan kondisi nilai tombol saat ini dengan kondisi pada loop sebelumnya. Variabel yang digunakan lastbuttonsta te. Jika tidak sama dengan buttonstate, maka baru kita proses apa yang kita inginkan yaitu mengirimkan data. // variable to receive data from serial port int inbyte=0; // Pin 13 has an LED connected on most Arduino boards. int led = 13; // Push button is connected to pin 24 int buttonpin = 24; int buttonstate=0; int lastbuttonstate=0; void setup() // initialize UART at 9600bps Serial.begin(9600); // initialize the digital pin as an output. 5 / 10

pinmode(led, OUTPUT); pinmode(buttonpin, INPUT); void loop() if (Serial.available() > 0) inbyte=serial.read(); Serial.write(inByte); if (inbyte==65) digitalwrite(led, HIGH); // turn the LED on (HIGH is the voltage level) if (inbyte==66) digitalwrite(led, LOW); // turn the LED off by making the voltage LOW buttonstate=digitalread(buttonpin); if (buttonstate!= lastbuttonstate) if (buttonstate==low) Serial.write("Ln"); else Serial.write("Hn"); lastbuttonstate=buttonstate; Ketik program di atas, lalu upload, kemudian amati di Serial Monitor. Tekan tombol yang agak lama sambil amati karakter yang terkirim. Arduino hanya akan mengirimkan satu kali saja saat ada perubahan L H atau H L. 6 / 10

Sampai di sini program di sisi Arduino sudah selesai, berikutnya kita masuk ke pemrograman serial port menggunakan Visual Studio.NET dalam hal ini kita coba memakai Visual Basic versi 2012. (adsbygoogle = window.adsbygoogle []).push(); Seperti yang saya sampaikan sebelumnya, kita akan kendalikan lampu melalui Visual Basic application dan membaca status sebuah tombol pada Arduino. Buka Visual Studio Express 2012, lalu buat proyek baru. Klik File > New Project. Pilih template Visual Basic > Windows Form Application, lalu beri nama SerialArduinoControl (atau terserah Anda). Tentukan lokasi folder lalu klik OK. Anda dapat lihat sebuah form window kosong dalam modus design. Komponen standar yang kita gunakan adalah CommandButton, TextBox, ListBox, Label, OvalShape dan jangan lupa Se rialport. Atur komponen tersebut dan beri nama seperti yang saya contohkan. 7 / 10

Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim ports As String() = IO.Ports.SerialPort.GetPortNames() ' Display each port name to ListBox1 Dim port As String For Each port In ports ListBox1.Items.Add(port) Next port OvalShapeLED.FillStyle = PowerPacks.FillStyle.Solid Private Sub ButtonConnect_Click(sender As Object, e As EventArgs) Handles ButtonConnect.Click Try SerialPort1.PortName = ListBox1.SelectedItem SerialPort1.BaudRate = 9600 SerialPort1.Open() LabelConnectionStatus.Text = ListBox1.SelectedItem & " is connected." Catch ex As Exception LabelConnectionStatus.Text = ListBox1.SelectedItem & " is not connected." End Try Private Sub ButtonLEDON_Click(sender As Object, e As EventArgs) Handles ButtonLEDON.Click If SerialPort1.IsOpen Then SerialPort1.WriteLine("A") Else MsgBox("Serialport is not connected.") End If Private Sub ButtonLEDOFF_Click(sender As Object, e As EventArgs) Handles ButtonLEDOFF.Click If SerialPort1.IsOpen Then 8 / 10

SerialPort1.WriteLine("B") Else MsgBox("Serialport is not connected.") End If Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived TextBoxReceiver.Invoke(New mydelegate(addressof updatetextbox), New Object() ) Public Delegate Sub mydelegate() Public Sub updatetextbox() TextBoxReceiver.Text = SerialPort1.ReadLine If TextBoxReceiver.Text.Length > 3 Then TextBoxReceiver.Text = Mid(TextBoxReceiver.Text, 1, 3) End If If TextBoxReceiver.Text = "L" Then OvalShapeLED.FillColor = Color.Blue End If If TextBoxReceiver.Text = "H" Then OvalShapeLED.FillColor = Color.Red End If End Class Supaya tidak repot mencoba program di atas, jangan lakukan Copy-Paste seluruh program, tapi silakan copy-paste satu per satu sub program. Nama program dan parameternya jangan Anda ketik, tapi pilihlah method dan event pada editor atau lakukan double click pada object yang bersangkutan saat di modus design. Catatan mengenai komunikasi serial: pada contoh pengiriman data pada program ini, kita menggunakan karakter dengan nomor ASCII di bawah 128. Jika Anda ingin menerapkan pengiriman data yang lebih kompleks, dan membutuhkan karakter dengan nomor ASCII sampai 255, maka kita harus mengkonfigurasi 9 / 10

SerialPort dengan menambahkan kode berikut di atas perintah SerialPort.Open() SerialPort1.Encoding = System.Text.Encoding.GetEncoding(1252) Selamat mencoba. 10 / 10