Milliyet TEKNOLOJİ

5 Haziran 2015 Cuma

Arduino Analog Pot Değerini C# Arayüzde Görüntüleme (Arduino - Pot Progress bar with C# interface)

    Öncelikle merhaba arkadaşlar yine bir Arduino C# haberleşmesini temel alan uygulama ile karşınızdayım.
    Bu uygulamada Arduino MEGA 2560 R3 ve Potansiyometre ( analog input için ) kullanılarak analog değerler alınmış ve C# üzerinde basit bir arayüz oluşturularak bu değerler görüntülenmiştir ve okunan analog değere göre arayüz üzerindeki progressbar ile de görsel olarak gösterilmiştir. C# üzerinde iki adet buton , iki adet textbox, progressbar, 3 adet label, timer kullanılmıştır. Resimlerde de gördüğünüz üzere arayüz üzerinde yer alan "Serial Port" kısmına Arduino'nuzun bağlı olduğu bağlantı noktasını girip, bağlan butonuna bastığınızda değerler okunup "Pot" kısmında görüntülenip ve buna bağlı olarak progressbar üzerinde görüntülenmektedir. Progress bar 0-1023 olarak ayarlanmıştır.



  Potansiyometre Arduino bağlantısı;



  
Bu uygulamanın tüm dosyalarına ulaşmak için buraya tıklayın.

Arduino Kodları;

//writed by ercancag
int potpin=A0;
int val=0;
char x;

void setup(){
  
Serial.begin(9600);
}
void loop(){
  if(Serial.available()>0)
  x=Serial.read();
  if(x=='a')
  {
    val = analogRead(potpin); 
    Serial.println(val);
    delay(100);
  } 

}


C# Kodları;

//writed by ercancag
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 WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        SerialPort serialport;
        public Form1()
        {
            InitializeComponent();
            serialport = new SerialPort();
            serialport.BaudRate = 9600;
        }
        private void Form1_Load(object sender, EventArgs e) { }

        //Bağlan Butonu
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
            try
            {
                serialport.PortName = textBox1.Text;
                if (!serialport.IsOpen)
                    serialport.Open();
            }
            catch
            {
                MessageBox.Show("Seri Port Hatası!");
            }
        } 
        //Timer1 Tick
        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                serialport.Write("a");
                int receiveddata = Convert.ToInt16(serialport.ReadExisting());
                textBox2.Text = receiveddata.ToString();
                progressBar1.Value = Convert.ToInt16(textBox2.Text);
                System.Threading.Thread.Sleep(100);               
            }
            catch (Exception ex){}
        }
        //Durdur Butonu
        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
            serialport.Close();
            
        }              
    }

}


ERCAN ÇAĞLAYAN CÜ-EEM 2015

1 yorum: