'''Greetings!'''
Kali ini saya akan menjelaskan sebuah program Serial Port,tapi kali ini sebagai Serial Transmitter,sebenarnya program yang kita buat ini tidak jauh dari program utk chatting.Pengiriman data melalui serial port sangat sederhana, cukup menggunakan method Write dengan parameter berupa string yang ingin dikirim.
1.Aplikasi Chatting Sederhana
Baiklah,kita akan membuat sebuah aplikasi chating antara dua komputer menggunakan port serial.
Yang dibutuhkan:
- Komputer/Laptop
- Visual Studio/Sharp Develop
- Arduino
- Arduino IDE
2.Susun item item yang diperlukan,contoh spt gambar:
3. Komponen Timer ada di Windows Form toolbar. Sedangkan komponen SerialPort ada di Components toolbar. Jangan lupa, set properties Enabled di komponen Timer menjadi true.Kemudian properties Interval di-set menjadi 500 ms(tapi sbenarnya terserah aja mau berapa lama waktunya :3).
4. Double click tombol (button) dengan text “kirim”. Ketikkan statemen di bawah ini di dalam fungsi ButtonClick :
serialPort1.Write(textBox1.Text);
Kode di atas tujuannya adalah untuk menuliskan isi dari textBox1 ke port serial. Sebelumnya kita harus membuka port dulu dengan statemen :
serialPort1.Open();
Double click untuk timer. Ketikkan statemen di bawah ini di dalam fungsi TimerTick :
if (serialPort1.BytesToRead != 0)
{
textBox2.Text = serialPort1.ReadExisting();
}
5. Kode di atas tujuannya adalah untuk membaca data yang ada di buffer serial port. Compile dan jalankan program.
6. Buka hyperterminal, kemudian amati data yang tampil pada hyperterminal saat anda mengirim data.
7. Buka Arduino.exe.
8. Ketikkan program dibawah ini pada Arduino IDE.
\
9. Koneksikan Arduino ke computer, pilih port dan tipe Arduino terlebih dahulu. Kemudian upload program tersebut dengan cara mengeklik tanda "UPLOAD"(Disebelah tanda cheklist).
10. Tunggu sampai ada tulisan “Done Uploading” pada Arduino IDE.
11. Jalankan aplikasi anda, dengan mengatur port serial sesuai dengan port Arduino yang terdeteksi pada computer.
12. Coba kirim data karakter dari aplikasi yang kita buat.
13.Lihat hasilnya pada Arduino.
Dan seperti ini keseluruhan koding nya :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Transmit
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
serialPort1.Open();
serialPort1.Write(textBox1.Text);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (serialPort1.BytesToRead != 0)
{
textBox2.Text = serialPort1.ReadExisting();
}
}
}
}
2.Kontrol 3 LED
Sekarang saya telah membuat sebuah aplikasi yang digunakan untuk menghidupkan dan mematikan 3 buah LED yang ada pada Arduino. Pengaturan komunikasi serial dapat dilakukan langsung pada aplikasi tanpa harus mengubah program aplikasi.
yang dibutuhkan:
- Visual Studio/Sharp Develop
- Arduino IDE/HTerm + Virtual Serial Port*
- Komputer/Laptop
- Kemauan
*HTerm dan Virtual Serial Port dipakai jika kita tak ada Arduino
Seperti inilah penampakan program buatan saya:
dan inilah kodingan keseluruhan nya:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
namespace Port
{
public partial class Form1 : Form
{
Image black = Properties.Resources.niggs;
Image gold = Properties.Resources.latest;
public Form1()
{
InitializeComponent();
foreach (String port in System.IO.Ports.SerialPort.GetPortNames())
{
comboBox1.Items.Add(port);
}
pictureBox1.BackgroundImage = black;
pictureBox2.BackgroundImage = black;
pictureBox3.BackgroundImage = black;
}
private void Form1_Load(object sender, EventArgs e)
{
serialPort1.Open();
}
private void button3_Click(object sender, EventArgs e) //on led 1
{
try
{
serialPort1.Write("1");
pictureBox1.BackgroundImage = gold;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button4_Click(object sender, EventArgs e) //off led 1
{
try
{
serialPort1.Write("0");
pictureBox1.BackgroundImage = black;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button5_Click(object sender, EventArgs e) //on led 2
{
try
{
serialPort1.Write("2");
pictureBox2.BackgroundImage = gold;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button6_Click(object sender, EventArgs e) //off led 2
{
try
{
serialPort1.Write("3");
pictureBox2.BackgroundImage = black;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button7_Click(object sender, EventArgs e) //on led 3
{
try
{
serialPort1.Write("4");
pictureBox3.BackgroundImage = gold;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button8_Click(object sender, EventArgs e) //off led 3
{
try
{
serialPort1.Write("5");
pictureBox3.BackgroundImage = black;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
serialPort1.Write(textBox1.Text);
}
private void button2_Click(object sender, EventArgs e)
{
serialPort1.Close();
Application.Exit();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (serialPort1.BytesToRead != 0)
{
textBox2.Text = serialPort1.ReadExisting();
}
}
}
}
Jalankan aplikasi HTerm,tapi sebelum itu,atur dulu port nya memakai Virtual Serial Port
Setelah itu jalankan aplikasi HTerm nya,ubah Baudrate nya ke 9600 terlebih dahulu
Seperti inilah jadinya program nya
Berhubung saya tak ada Arduino -_-,jadi maaf saya tak bisa memperlihatkan jalannya program dengan Arduino
Dan ini Video penjelasan nya :)
Baiklah,saya rasa sekian dari saya.Maaf jika ada salah kata atau Typo 0:)
Compact!!
Tidak ada komentar:
Posting Komentar