Proje
Devresi:
Seri Haberleşme:
Arduinoyu usb portundan bilgisayarla haberleştirmek mümkündür. Bunun için arduinoyu kodlarken Serial fonksiyonunu kullanacağız.
Serial.begin(); fonksiyonu seri haberleşmeyi başlatmak için kullandığımız fonksiyondur. Parametre olarak girdiğimiz değer ise baud rate (bir diğer ifadeyle anahtarlama hızı) değeridir. Baud rate; veri iletiminde modülatör çıkışında bir saniyede meydana gelen sembol değişikliğidir. Bunu seri haberleşme hızı olarak da düşünebiliriz. Biz projemizde baud rate değerini 9600 olarak aldık.
Serial.avaible(); seri haberleşme portunun açılıp açılmadığını denetleyen fonksiyondur.
Serial.read(); seri porttan gelen veriyi okuyan fonksiyondur.
Arduinoyu usb portundan bilgisayarla haberleştirmek mümkündür. Bunun için arduinoyu kodlarken Serial fonksiyonunu kullanacağız.
Serial.begin(); fonksiyonu seri haberleşmeyi başlatmak için kullandığımız fonksiyondur. Parametre olarak girdiğimiz değer ise baud rate (bir diğer ifadeyle anahtarlama hızı) değeridir. Baud rate; veri iletiminde modülatör çıkışında bir saniyede meydana gelen sembol değişikliğidir. Bunu seri haberleşme hızı olarak da düşünebiliriz. Biz projemizde baud rate değerini 9600 olarak aldık.
Serial.avaible(); seri haberleşme portunun açılıp açılmadığını denetleyen fonksiyondur.
Serial.read(); seri porttan gelen veriyi okuyan fonksiyondur.
Projenin Kaynak Kodu:
int
led = 13;
int
gelenVeri;
void
setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void
loop() {
if(Serial.available()){
gelenVeri=Serial.read();
if(gelenVeri=='1'){
digitalWrite(led, HIGH);
}
else if (gelenVeri=='0'){
digitalWrite(led, LOW);
}
}
}
C# Uygulaması:
- Programın tasarımı:
Forma
ekleyeceğimiz nesneler yukarıda resimde görülmektedir.
- Programın Kodu:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SeriHaberlemeIleLedYakma
{
public partial class Form1 : Form
{
bool ledDurum = false;
public Form1()
{
InitializeComponent();
}
private void
Form1_Load(object sender, EventArgs e)
{
yakButton.Enabled = false;
sondurButton.Enabled = false;
baglanButton.Enabled = false;
}
private void
comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Text = comboBox1.SelectedText;
baglanButton.Enabled = true;
}
private void
baglanButton_Click(object sender, EventArgs e)
{
try
{
serialPort1.PortName
= comboBox1.Text;
serialPort1.BaudRate = 9600;
serialPort1.Open();
if (serialPort1.IsOpen)
{
label1.Text = "Porta Bağlanıldı";
if (ledDurum == false)
{
yakButton.Enabled = true;
}
else {
sondurButton.Enabled = true;
}
}
}
catch
{
label1.Text = "Porta
Bağlanılamadı";
serialPort1.Close();
yakButton.Enabled = false;
sondurButton.Enabled = false;
}
}
private void
yakButton_Click(object sender, EventArgs e)
{
serialPort1.Write("1");
sondurButton.Enabled = true;
yakButton.Enabled = false;
ledDurum = true;
}
private void
sondurButton_Click(object sender, EventArgs e)
{
serialPort1.Write("0");
yakButton.Enabled = true;
sondurButton.Enabled = false;
ledDurum = false;
}
private void
Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (serialPort1.IsOpen) {
serialPort1.Write("0");
serialPort1.Close();
}
}
}
}
Tesekkurler paylasım icin , elinize saglık.
YanıtlaSilC# programında comboBox 1 de ilk olarak port tipinin ne oldugu tanıtılması gerekli
Yorumunuz için teşekkür ederiz.
SilBu yorum yazar tarafından silindi.
YanıtlaSilbir şey sorabilir miyimmmm
YanıtlaSilsorabilirsiniz!
SilİKİ PROJEYİ CALIŞTIRMA İMKANIMIZ VARMI İNT KAYNAK BULAMADIM
YanıtlaSilproje denenmiş ve çalışır durumdadır.
Silİlk önce merhaba ve elinize sağlik harika olmuş ve bisey sorabilirmiyim . ben 11.sinif otomasyon ögrencisiyim ve Bilgisayar kontrol dersinde performans icin Led ilgili proje ve http://oguzhanyesilyurt.blogspot.com.tr/2015/12/arduino-ornekleri-3-switch-case-komutu.html burdski devreye yapcamda burdaki C# kodlarini kullansam çalisirmi yada fazla ledle karaşimsek yaparmisiniz rica etsem
YanıtlaSilkodları bahsettiğiniz projede denemeden bilemeyiz. Şu aralar işlerimin yoğunluğundan blogdaki yorumlara bile zamanında cevap veremiyorum. Kusura bakmayın. internette bu konuyla alakalı uygulamalar bulabilirsiniz. Onlara bi bakmanızı tavsiye ederim.
Sil