-
Üyelik
10.05.2012
-
Yaş/Cinsiyet
- / E
-
Meslek
Web Programlama
-
Konum
-
Ad Soyad
** **
-
Mesajlar
114
-
Beğeniler
3 / 24
-
Ticaret
0, (%0)
Merhaba arkadaşlar,
Öncelikle seviyemi anlamanız adına hakkımda biraz bilgi vereyim. Bilgisayar programcılığı okuyorum, 1. sınıfım, hoca bir ödev verdi ve bu ödev bizi fazlasıyla aşıyor. Yapabilirsek yüz alacağız. 1 haftadır araştırıyorum, kayda değer bir şey buldum diyemem. Buraya yazmayı uygun gördüm.
Bir devre yapacağız ve bu devrede 6 led olacak. C# da yazdığımız programda butonlar olacak, bu butonlara basarak ledleri yakacağız. Misal 1. butona bastığımızda 1. led yanacak 2. butona bastığımızda 2. led yanacak gibi bir ödevimiz var.
Devreyi bir şekilde yapabiliriz ama c# da kodları nasıl yazacağız bilmiyorum. 1 haftadır bir sürü koda baktık bir türlü işe yarayacak bir kod bulamadık yada biz araştırmayı bilemedik. Zor bir durumdayım yardımcı olursanız çok sevinirim.
İyi forumlar.
-
Üyelik
10.05.2012
-
Yaş/Cinsiyet
- / E
-
Meslek
Web Programlama
-
Konum
-
Ad Soyad
** **
-
Mesajlar
114
-
Beğeniler
3 / 24
-
Ticaret
0, (%0)
Youtube'ye giriş biraz sıkıntı olacak dnsleri bi ayarlayım. Hemen bakıp daha ayrıntılı anlatayım.
Batuhan
Kendine webmaster
Kullanıcı
-
Üyelik
08.05.2011
-
Yaş/Cinsiyet
28 / E
-
Meslek
Öğrenci
-
Konum
Ankara
-
Ad Soyad
B** B**
-
Mesajlar
3455
-
Beğeniler
783 / 1009
-
Ticaret
1, (%100)
Öncelikle kontrol devresini halletmeniz lazım. Daha sonra C#'ın SerialPort componenti ile seri porttan devreye veri gönderip işlemi gerçekleştirebilirsiniz.
ozibu51
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
10.05.2014
-
Yaş/Cinsiyet
34 / E
-
Meslek
Öğrenci-Serbest meslek
-
Konum
İstanbul Anadolu
-
Ad Soyad
O** K**
-
Mesajlar
300
-
Beğeniler
9 / 13
-
Ticaret
3, (%100)
C# kodları şu şekilde:
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 ArduinoLedYakma
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SeriPort.PortName = “COM7″;
SeriPort.BaudRate = 9600;
SeriPort.Open();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Opacity = 0;
timer1.Enabled = true;
timer1.Start();
}
private void KirmiziBtn_Click(object sender, EventArgs e)
{
SeriPort.Write(“k”);
}
private void MaviBtn_Click(object sender, EventArgs e)
{
SeriPort.Write(“m”);
}
private void BeyazBtn_Click(object sender, EventArgs e)
{
SeriPort.Write(“b”);
}
private void SondurBtn_Click(object sender, EventArgs e)
{
SeriPort.Write(“s”);
}
private void Animasyon1Btn_Click(object sender, EventArgs e)
{
SeriPort.Write(“1″);
}
private void Animasyon2Btn_Click(object sender, EventArgs e)
{
SeriPort.Write(“2″);
}
private void timer1_Tick(object sender, EventArgs e)
{
this.Opacity += 0.04;
label1.Text = label1.Text.Substring(1) + label1.Text[0].ToString();
}
}
}
Burada tek yaptığımız iş seri porttan arduinoya karakter göndermek. Gönderdiğimiz karakterlere göre arduino ledlerin yanıp sönmesini sağlayacak. Arduino üzerinde LEDleri digital girişlere bağlayınız. Burada da Arduino içerisine yazacağımız kodları veriyorum. Açıklamaları yorum satırı şeklinde yaptım:
//Ledlere digital pinleri bağlıyoruz
int Led1=22;//Mavi
int Led2=24;//Beyaz
int Led3=26;//Kırmızı
int Led4=28;//Mavi
int Led5=50;//Mavi
char GelenKarakter;//C# arayüzünden gelecek karakteri tanımladıkvoid setup()
{
Serial.begin(9600);
pinMode(Led1,OUTPUT);
pinMode(Led2,OUTPUT);
pinMode(Led3,OUTPUT);
pinMode(Led4,OUTPUT);
pinMode(Led5,OUTPUT);
//Ledleri çıkış olarak tanımladık
}
void loop()
{
if(Serial.available() > 0)
{
GelenKarakter = Serial.read();//C# arayüzünden gelen karakteri okuduk
if(GelenKarakter == ‘k’)//GelenKarakter “k” ise kırmızı ledi yak
{
digitalWrite(Led3, HIGH);
}
else if(GelenKarakter == ‘m’)//GelenKarakter “m” ise mavi ledi yak
{
digitalWrite(Led1, HIGH);
digitalWrite(Led5, HIGH);
digitalWrite(Led4, HIGH);
}
else if(GelenKarakter == ‘b’)//GelenKarakter “b” ise beyaz ledi yak
{
digitalWrite(Led2, HIGH);
}
else if(GelenKarakter == ‘s’)//GelenKarakter “s” ise ledleri söndür
{
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
digitalWrite(Led5, LOW);
}
else if(GelenKarakter == ’1′)//GelenKarakter “1″ ise ledlerı 500 ms aralıklarla sırayla yak
{
for(int i=0; i < 5; i++ )
{
digitalWrite(Led5, LOW);
digitalWrite(Led1, HIGH);
delay(500);
digitalWrite(Led1, LOW);
digitalWrite(Led2, HIGH);
delay(500);
digitalWrite(Led2, LOW);
digitalWrite(Led4, HIGH);
delay(500);
digitalWrite(Led4, LOW);
digitalWrite(Led3, HIGH);
delay(500);
digitalWrite(Led3, LOW);
digitalWrite(Led5, HIGH);
delay(500);
}
}
else if(GelenKarakter == ’2′)//GelenKarakter “2″ ise 300 ms aralıklarla ledleri yak, söndür
{
for(int k=0; k < 7; k++)
{
digitalWrite(Led1, HIGH);
digitalWrite(Led2, HIGH);
digitalWrite(Led3, HIGH);
digitalWrite(Led4, HIGH);
digitalWrite(Led5, HIGH);
delay(300);
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
digitalWrite(Led5, LOW);
delay(300);
}
}
}
}
Ek Olarak: işinize yaradı mı
-
Üyelik
16.06.2013
-
Yaş/Cinsiyet
28 / E
-
Meslek
MAKİNA RESSAMI
-
Konum
İstanbul Avrupa
-
Ad Soyad
** **
-
Mesajlar
916
-
Beğeniler
4 / 154
-
Ticaret
14, (%100)
Sen boş ver Oddülü bir Mekatronikçiye sor. Sana 10 DK devreyi ve programı versin.
ozibu51
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
10.05.2014
-
Yaş/Cinsiyet
34 / E
-
Meslek
Öğrenci-Serbest meslek
-
Konum
İstanbul Anadolu
-
Ad Soyad
O** K**
-
Mesajlar
300
-
Beğeniler
9 / 13
-
Ticaret
3, (%100)
LED’leri 5V’a direkt olarak bağlamamanızı tavsiye ederim. Arada direnç kullanmadığınız takdirde LEDleri yakabilirsiniz(kullanılmaz hale gelebilir). Çünkü mavi led yaklaşık 3,4 V ile yanarken diğerleri yaklaşık olarak 2,7 V ile yanmaktadır. Kod kısmına geçmeden önce c#’ta güzel bir arayüz oluşturmanızı tavsiye ederim