Uygulamamızda C# ile “LED Aç” ve “LED Kapa” isimli iki butona bastığımızda LED yanması ve kapanmasını kontrol ediyoruz. Arduino ile Seri Haberleşmesinde kullanılan Serial Monitor penceremize harici olarak “1” ve “0” bilgilerini gönderdiğimizde LED yanması ve sönmesi durumlarını etkileyeceğiz.
Arduino Kodları
Arduino kartımızın üzerinde hazır bulunan 13 nolu LEDin durumunu Serial Monitor penceresinden gönderilen “1” değerine göre HIGH, “0” değerine göre LOW yapan kodlarımızı yazalım.
Kod:
/*
Muhammed Mustafa Özbay / Siyah Prens
*/
void setup ()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
if(Serial.available()) // Serial portu okur ve bir gönderi ile aktif olursa kodu çalıştırır.
{
int led =Serial.read(); // Serialden gelenleri "led" değişkenine atar.
if (led == '1') // Gelen veri "1" ise bu bloktaki kodu çalıştırır.
{
digital.Write(13,HIGH); // Led Açık.
}
else if (led == '0') // Gelen veri "0" ise bu bloktaki kodu çalıştırır.
{
digitalWrite(13,LOW); // Led Kapalı.
}
}
}
Kodlar için:
https://gist.github.com/c2168d640328cbd6ef3e.git
C# Kodları
Seri Port Bilgilerini Tanımlama
Burada arduino kartımızı bilgisayarımıza tanıttığımıza Aygıt Yöneticisi üzerinden görebildiğimiz port ismini, seri haberleşme hızını (Serial.begin(9600) kısmında olan değerdir.) belirtip portu kullanıma açan kodlarımızı yazıyoruz.
Kod:
using System;
using System.Collections.Generic;
using System.ConponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.I0.Ports; //Serial Port haberleşmesinde kullanılan kütüphane
nanespace SerialCommunication
{
public partial class Forml : Form
{
bool LEDDurumu = false;
public Form1()
{
InitializeConponent();
serialPort1.PortNane = "COM1"; // Bilgisayarınızda bulunan Seri Port numarası
serialPort1.BaudRate = 9600; // Bulunan Serial port band hızı/derecesi
serialPort1.Open();
}
Kodlar için:
https://gist.github.com/8a4693b476f4b51df2e2.git
LED Açık ve Led Kapalı Butonu
Buttonlara ben kendim isimlendirdim sizde bunu button olayına göre değiştirirsiniz.
Kod:
private void ledacik_Click(object sender, EventArgs e) // Led Açan buttonun ismi "ledacik"
{
serialPort1.Write("1");
}
private void ledkapali_Click(object sender, EventArgs e) // Led Açan buttonun ismi "ledkapali"
{
serialPort1.Write("0");
}
Kod için:
https://gist.github.com/d839b3c94cdcdaad379c.git
USB ile bağlı iken buttonlara basınca durumun (Lede ait) değiştiğini görebilirsiniz.