C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27 Ocak 2018 Cumartesi

Arduino - C# ile PWM Degeri Gönderme

C# arayüzü ile Arduino'ya PWM gönderebildiğimiz programın nasıl oluşturulduğunu anlattığım videomu YouTube kanalımda yayınladım. İyi seyirler.



27 Temmuz 2017 Perşembe

Arduino - C# ile LCD'de CPU Sıcaklıgını Gösterme



Bir önceki yazımda C# üzerinden textBox kısmına girdiğimiz yazıyı LCD'de yazdırmıştık. Bu sefer bilgisayarın CPU sıcaklığını hem C# arayüzünde  hem de LCD'de göstermemizi
sağlayacak kodları paylaşmak istiyorum.

23 Temmuz 2017 Pazar

Arduino - C# ile LCD'de Yazı Yazdırma


Merhaba arkadaşlar,
C# ile Arduino'ya bağlı LCD'ye nasıl yazı yazdırabileceğimizi anlattığım videoyu ve kodları paylaşıyorum. Umarım sizlere yardımcı olur.

12 Temmuz 2017 Çarşamba

Arduino - C# ile Aynı İki ve Daha Fazla Veri Okuma




C# ile tek bir veri okuma üzerine videolar yayınlamıştım. Fakat sadece 1 veri okumak elbette her zaman yeterli olmayacaktır. Projelerimizde daha fazla veriyi okumamız gerekebilir. Bu yüzden C# birden çok veri okuma üzerine bir video hazırladım. Yazılımın tamamını, videonun altındaki linkten indirebilirsiniz.Umarım işinize yarar.

21 Mart 2015 Cumartesi

Arduino - C# Arayüzü ile Veri Okuma

Merhaba.
Arduino'dan okuduğumuz verileri direkt Serial Monitör'den ya da LCD'den okuyabiliyorduk. Fakat bu okunan veriler için bir tasarrufumuz olmuyordu.

Bu yazıda Arduino'dan okuduğumuz veriyi C# da gösterip, istediğimiz değerleri listbox'a kaydettiğim arayüzden bahsedeceğim. Bu arayüzü oluşturmamda yardımcı olan Necmettin Zengin arkadaşıma teşekkür ederim. 


Resimde de görüldüğü gibi arayüzde 4 buton, 2 combobox, 2 label ve 1 tane de listbox bulunmakta. 0 yazan yerde ölçülen analog değer gösterilecek ve ekle butonuna bastığımızda okunan değer listbox a eklenecek. C# da hazırlanan bu arayüz için ayrıca bir arduino yazılımına ihtiyaç bulunmamakta. Serial Monitör'de veri okuyacakmış gibi yazılımınızı oluşturmanız yeterli. 
RS232 vb. seri port haberleşmesinde deneme şansım olmadı, en yakın zamanda PIC için deneyip sonucunu burada yazarım.
C# kodlarına geçecek olursak ki yakın zamanda bununla alakalı bir video çekmeyi de planlıyorum;






  1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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;
using System.IO.Ports;
using System.IO;

namespace Data_Okuma
{
public partial class Form1 : Form
{
string[] ports = SerialPort.GetPortNames(); //Port Numaralarını ports isimli diziye atıyoruz.
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
foreach (string port in ports)
{
comboBox1.Items.Add(port); // Port isimlerini combobox1'de gösteriyoruz.
comboBox1.SelectedIndex = 0;
}
comboBox2.Items.Add("2400"); // Baudrate'leri kendimiz combobox2'ye giriyoruz.
comboBox2.Items.Add("4800");
comboBox2.Items.Add("9600");
comboBox2.Items.Add("19200");
comboBox2.Items.Add("115200");
comboBox2.SelectedIndex = 2;

label3.Text = "Bağlantı Kapalı"; //Bu esnada bağlantı yok. }

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
{
// Form kapandığında Seri Port Kapatılmış Olacak.
if (serialPort1.IsOpen == true)
{
serialPort1.Close();
}
}
}

private void timer1_Tick(object sender, EventArgs e)
{
try
{
string sonuc = serialPort1.ReadExisting();//Serial.print kodu ile gelen analog veriyi alıyoruz,string formatında sonuc'a atıyoruz
label1.Text = sonuc + ""; //Labele yazdırıyoruz.
}
catch (Exception ex)
{
MessageBox.Show(ex.Message); // basarısız olursa hata verecek.
timer1.Stop();
}
}

private void button1_Click(object sender, EventArgs e)
{
timer1.Start(); //250 ms olarak ayarladım timer'ı.
if (serialPort1.IsOpen == false)
{
if (comboBox1.Text == "")
return;
serialPort1.PortName = comboBox1.Text; // combobox1'e zaten port isimlerini aktarmıştık.
serialPort1.BaudRate = Convert.ToInt16(comboBox2.Text); //Seri Haberleşme baudrate'i combobox2 'de seçilene göre belirliyoruz.
try
{
serialPort1.Open(); //Haberleşme için port açılıyor
label3.ForeColor = Color.Green;
label3.Text = "Bağlantı Açık";


}
catch (Exception hata)
{
MessageBox.Show("Hata:" + hata.Message);
}
}
else
{
label3.Text = "Bağlantı kurulu !!!";
}
}

private void button2_Click(object sender, EventArgs e)
{
//BAĞLANTIYI KES BUTONU
timer1.Stop();
if (serialPort1.IsOpen == true)
{
serialPort1.Close();
label3.ForeColor = Color.Red;
label3.Text = "Bağlantı Kapalı";
}
}

private void button3_Click(object sender, EventArgs e)
{
listBox1.Items.Add(label1.Text); //Okunan veri listbox'a atılıyor
}

private void button4_Click(object sender, EventArgs e)
{
listBox1.Items.Clear(); // listbox temizleniyor.
}



}
}


Arayüz oluşturma vidyom. Aynı arayüz değil :)

Microsoft Visual Basic Form şeklinde ve exe olarak aşağıdaki linkten programa ulaşabilirsiniz.

İndirme Linki


Burda da aynı arayüz programına Serial.ReadLine() methodu ile devam ederek veri okumayı daha stabil daha işlenebilir hale getirdim.



11 Temmuz 2014 Cuma

Arduino - C# Arayüzü ile Led Yakma

Bu yazımda C# ile oluşturduğumuz arayüz ile Arduino'nun dijital çıkışlarına hükmetmeyi öğreneceğiz. Uygulamamız 2 aşamadan oluşmakta. Önce Arduino'ya yükleyeceğimiz programda hangi çıkışımızı yani ledi ON ve OFF duruma getirecek datayı belirleyeceğiz. Daha sonra da C# arayüzünden önce Port'lara bağlanmayı ve butonlara bastığımızda hangi datayı göndereceğimizi kararlaştıracağız.


C# ile ilgilenmenizi öneririm çünkü her defasında LCD bağlamak veya Serial Monitör kullanamayacağımız projeler olabilir. Tüm verileri tek arayüz üzerinden göndermek veya almak zorunda kalabilirsiniz. İnternet üzerinden C# üzerine projeleri veya arayüzü öğrenmeniz size fayda sağlar. Lafı fazla uzatmadan önce Arduino kodlarımızı vermek istiyorum;



int led = 13;  // Hali hazırda bulunan ledi kullanacağım.
void setup() {              
    pinMode(led, OUTPUT); 
  Serial.begin(9600);  
}
void loop() {
  if(Serial.available())   //Eğer seri haberleşme açık olursa alttaki komutlar işleyecek.
  {int a=Serial.read();    //Seri haberleşme ile okunan verimize a integer değerini verdik.
  if(a=='1')
 { digitalWrite(led, HIGH);}  // a, 1 olursa yanacak.
  
  else if (a == '0')          // a, 0 olursa sönecek.
  {digitalWrite(led, LOW);}
  }

}

C# kısmımızda Toolbox'dan aldığımız nesneler, ComboBox, 3 Buton, 1 Label.



Led Yak = Buton 3
Led Söndür = Buton 2
Bağla = Buton 1

Programımıza bakarsanız daha bu kısım daha iyi anlaşılacaktır.
Arayüzü oluşturduktan sonra Components kısmından SerialPort nesnesini arayüzün üzerine atıyoruz.





Amacımız önce programı yüklemiş olduğumuz Arduino'nun portuna, bu arayüz ile bağlanarak LED YAK ve LED SÖNDÜR komutlarını kullanmak :)

C# komutlarımız ;

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;
using System.IO.Ports;

namespace ArduinoSerial

{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            serialPort1.PortName = comboBox1.Text;            
            serialPort1.Open();
            
        }       

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.DataSource = SerialPort.GetPortNames();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            serialPort1.Write("0");
            label1.Text = "LED KAPALI";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            serialPort1.Write("1");
            label1.Text = "LED AÇIK";      
        }                     

        private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)
        {

        }           

            }

}

Programın çalışabilmesi için Bilgisayarınızda Framework yüklü olması gerekmektedir.

Tüm Dosyaları İndirmek İçin Tıklayın (File>Download)
(Exe dosyası ArduinoSerial\ArduinoSerial\bin\Debug klasörünün içinde.)


Bu da C# arayüz oluşturma videomuz ve çalıştırma videomuz ;









Kolay gelsin :)...