Minggu, 31 Mei 2015

komunikasi serial



Assalamualaikum wr. Wb
Kali ini saya akan memberikan lagi sebuah tutorial bagaimana cara membuat komunikasi serial berbasis transmit dan receive dengan menggunakan aplikasi Microsoft visual studio dan beberapa aplikasi pendukung, yaitu : Hyperterminal, dan virtual serial port kit.
Okhay langsung saja …
Cara membuka dan membuat form project baru sudah saya jelaskan pada tutorial sebelumnya. Jadi langsung saja ke langkah mendesain form nya seperti di bawah ini (Drag and Drop)
Kemudian setting serial port dan timernnya pada properties masing – masing seperti pada gambar dibawah :


 





                                                                                                                                                                                

Lalu double klik pada tombol ” kirim “ (akan muncul sheet tempat pengisian program ) isi programnya seperti berikut ini :
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 chat
{
    public partial class Form1 : Form
    {
        Image mati = Properties.Resources.mati;
        Image merah = Properties.Resources.merah;
        Image kuning = Properties.Resources.kuning;
        Image hijau = Properties.Resources.hijau;
       

        public Form1()
        {
            InitializeComponent();
            pictureBox1.BackgroundImage = mati;
            pictureBox2.BackgroundImage = mati;
            pictureBox3.BackgroundImage = mati;
        }    
        private void button1_Click(object sender, EventArgs e)
        {
            serialPort1.Write(textBox1.Text);                      
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (serialPort1.BytesToRead != 0)
            {                   
                    textBox2.Text = serialPort1.ReadExisting();    
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            serialPort1.Open();
        }

        private void on_CheckedChanged(object sender, EventArgs e)
        {
            serialPort1.Write("1");
            pictureBox1.BackgroundImage = merah;
        }

        private void off_CheckedChanged(object sender, EventArgs e)
        {
            serialPort1.Write("2");
            pictureBox1.BackgroundImage = mati;
        }

        private void on1_CheckedChanged(object sender, EventArgs e)
        {
            serialPort1.Write("3");
            pictureBox2.BackgroundImage = kuning;
        }

        private void off1_CheckedChanged(object sender, EventArgs e)
        {
            serialPort1.Write("4");
            pictureBox2.BackgroundImage = mati;
        }

        private void on2_CheckedChanged(object sender, EventArgs e)
        {
            serialPort1.Write("5");
            pictureBox3.BackgroundImage = hijau;
        }

        private void off2_CheckedChanged(object sender, EventArgs e)
        {
            serialPort1.Write("6");
            pictureBox3.BackgroundImage = mati;
        }

        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
       

            if (serialPort1.BytesToRead == 1)
            {
                //serialPort1.ReadTo("1");
            pictureBox1.BackgroundImage = merah;
            }
            else if(serialPort1.BytesToRead == 2)
            {
                //serialPort1.ReadTo("2");
            pictureBox1.BackgroundImage = mati;
            }
            else if(serialPort1.BytesToRead == 3)
            {
                //serialPort1.ReadTo("3");
            pictureBox2.BackgroundImage = kuning;
            }
            else if(serialPort1.BytesToRead == 4)
            {
                //serialPort1.ReadTo("4");
            pictureBox2.BackgroundImage = mati;
            }
            else if(serialPort1.BytesToRead == 5)
            {
                //serialPort1.ReadTo("5");
            pictureBox3.BackgroundImage = hijau;
            }
            else if(serialPort1.BytesToRead == 6)
            {
                //serialPort1.ReadTo("6");
            pictureBox3.BackgroundImage = mati;
            }        
        }
    }
}

Jika sudah benar dan tidak ada kesalahan lalu klik tombol Ctrl + F5, aplikasi yang dibuat tadi akan muncul, dan jangan lupa membuka aplikasi Hyperterminal dan virtual serial port seperti pada gambar dibawah ini :



Atau dapat juga menyalakan lampu seperti pada gambar dibawah ini :
Hterm sebagai transmit dan form 1 sebagai receive











0 komentar:

Posting Komentar