Kod:
//Arduino
int led = 11;
String x;
int val;
void setup(){
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop(){
if(Serial.available()>0)
{
x=Serial.readStringUntil(',');
val=x.toInt();
analogWrite(led, val);
}
}
//C#
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 WindowsFormsApplication4
{
public partial class Form1 : Form
{
SerialPort serialport;
public Form1()
{
InitializeComponent();
serialport = new SerialPort();
serialport.BaudRate = 9600;
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "COM3";
}
//Bağlan
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
try
{
serialport.PortName = textBox1.Text;
if (!serialport.IsOpen)
serialport.Open();
MessageBox.Show("Bağlandi");
}
catch
{
MessageBox.Show("Seri Port Hatası!");
}
}
//Timer_Tick
private void timer1_Tick(object sender, EventArgs e)
{
try
{
string ledval = trackBar1.Value.ToString();
textBox2.Text = ledval;
serialport.WriteLine(ledval);
serialport.WriteLine(",");
}
catch (Exception ex) { }
}
//Durdur
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
serialport.Close();
}
}
}
Merhaba arkadaşlar bu günkü uygulamamız eminim daha önce hepimizin yaptığı bir uygulamayı yaptık. Potansiyometre ile led parlaklığını ayarlama, tabi burada pot kullanmadık, onun yerine trackbar kullandık C#.Net üzerinde oluşturduğumuz trackbar ile Arduino'muzun digital 11. pinine bağlı olan Led'in parlaklığını ayarladık ve 0-255 değerlerini de trackbar yanında yer alan textbox ile görüntüledik.Trackbar max. ve min. değerleri 0-255 olarak ayarlandı, bu değer Arduino tarafında val isimli integer tipinde değişkende tutulmaktadır. Timer interval değeri 100 ms olarak ayarlanmıştır. Bu ne demek her 100 ms'de timer_tick eventi gerçekleşiyor.
- Arduino ve C# kodlarına ulaşmak için buraya tıklayın;