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
Bu yorum bir blog yöneticisi tarafından silindi.
YanıtlaSil