c# ile 50 led kontrolü arduino mega 2560
  • merhaba arkadaşlar ben ankaradan burak arduino ile yeni tanıştım elektronik teknisyeniyim ama hiç uğraşmadım microcontrollerle ankarada olan arkadaslar varsa buluşup tanışmak isterim. benim bi derdim var arduino mega ile 50 tane led kontrolu yapmam gerekio c# ile yazılımı arkadasım yapıyor ama ben sunu bilemedim nasıl bi data göndermeliki bende arduinoda işleyim ? ve ayrıca bilgisayara 2 ,3,4 baglayım 100 -200 ledi tek tek nasıl kontrol edebilirim serial pencereden 1 adet ledi yaptım ama coğaltamadım bişiler yalnış gitti . sizinle paylasmak istedim yardımcı olonlanlara şimdiden teşekürler.
  • ledlerin bağlantılarını bulabilirsiniz ben size veriyi anlatayım isterseniz. 50 tane butonunuz olduğunu varsayalım. Her bi butonon click eventine bir rakam atarsınız.Nasıl derseniz.Eventine tıkladığınızda Serial.Write("1") yazarsınız örneğin birinci led için.Arduino kısmında ise loop döngüsü adı altında. if(Serial.available()>0) ise bir int gelen diye bir int tipinde okuyacağınız bilgilerin kodlarını alrısnız. int gelen=Serial.read(); daha sonrasında if else döngüsü if(gelen==1) DigitalWrite(bağladığınızpin ,1) yakarsınız. söndürme işlemini ise yine butonun eventlarından click olayında çift tıklama olayı falan p şekilde halledersiniz.Yaptığınız bir tanesi ile 50tanesi arasında bi fark yok
  • const int led=9;//ledin bağlandığı pin
    char data ;//pcden gelen veriyi saklayacak değişken
    void setup()
    {
    Serial.begin(9600);
    pinMode(led,OUTPUT);
    }

    void loop()
    {
    //serial buffera veri gelirse işlem yapılacaktır
    if(Serial.available()>0)
    {
    data=Serial.read();//gelen veriyi oku, sonucu data değişkenine aktar.
    if(data=='1')
    {
    digitalWrite(led,HIGH);
    Serial.println("Led acik");
    }
    else if (data=='0')
    {
    digitalWrite(led,LOW);
    Serial.println("Led Kapali");
    }

    }
    }
    //bu bir tek led için bunu data olarak a1 a2 a3 a4 a5 yak b1b2 b3 b4 b5 söndür böle bi data mı kulancam anlamadım yani??
  • Evet döngi içersinde bir den çok if olacak
  • bu dataları kullanamıyorum ama mesela yukarıdaki kodu 2 tane led için nasıl degişiklikler yapmalıyım
  • const int led=2
    const int led1=3;//ledin bağlandığı pin
    char data ;//pcden gelen veriyi saklayacak değişken
    void setup()
    {
    Serial.begin(9600);
    pinMode(led,OUTPUT);
    pinMode(led1,OUTPUT);
    }

    void loop()
    {
    //serial buffera veri gelirse işlem yapılacaktır
    if(Serial.available()>0)
    {
    data=Serial.read();//gelen veriyi oku, sonucu data değişkenine aktar.
    if(data=='1')
    {
    digitalWrite(led,HIGH);
    }
    if(data=='2')
    {
    digitalWrite(led1,HIGH);
    }
    else if (data=='0')
    {
    digitalWrite(led,LOW);
    }
    else if (data=='3')
    {
    digitalWrite(led,LOW);
    }
    }

    // benim anladıgım bu yani neresinde bi eksiklik var
  • c# kısmında hatanız vardır.
  • ben 2 tanesini nasıl yapabilirim yani ?? lütfen yardımcı olun
  • Hocam c# kısmını yaptınız mı? internette bir sürü kaynak var , araştırdınız mı acaba
  • arkadaşım yapıyor simdi ben serial pencereden calışıyorum yaptım coklu kontrolu ama data olarak 2 haneli kabul etmior data olarak ne kullancam bilemiyorum.






    int led=2;//ledin bağlandığı pin
    int led1=3;
    int led2=4;
    int led3=5;
    int led4=6;
    char data ;//pcden gelen veriyi saklayacak değişken
    void setup()
    {
    Serial.begin(9600);
    pinMode(led,OUTPUT);
    pinMode(led1,OUTPUT);
    pinMode(led2,OUTPUT);
    pinMode(led3,OUTPUT);
    pinMode(led4,OUTPUT);

    }

    void loop()
    {
    //serial buffera veri gelirse işlem yapılacaktır
    if(Serial.available())
    {
    data=Serial.read();//gelen veriyi oku, sonucu data değişkenine aktar.
    if(data=='1')
    {
    digitalWrite(led,HIGH);
    Serial.println("Led acik");
    }
    else if (data=='0')
    {
    digitalWrite(led,LOW);
    Serial.println("Led Kapali");
    }
    if(Serial.available())
    data=Serial.read();//gelen veriyi oku, sonucu data değişkenine aktar.
    if(data=='2')
    {
    digitalWrite(led1,HIGH);
    Serial.println("Led1 acik");
    }
    else if (data=='3')
    {
    digitalWrite(led1,LOW);
    Serial.println("Led1 Kapali");
    }
    if(Serial.available())
    data=Serial.read();//gelen veriyi oku, sonucu data değişkenine aktar.
    if(data=='4')
    {
    digitalWrite(led2,HIGH);
    Serial.println("Led2 acik");
    }
  • 2haneli data yok ki? char tipinde tek hane bir data var kardeşim burada.
  • master slave ile pc e bağlı kart master sonrasında ı2 c haberleşme ile slave
  • data değişkenine 1'den fala byte yamak istiyorsan String veya char [] diisi olarak tanımlayabilirsin. Serial.read() fonksiyonu ise 1 bayt okur. iki baytlık pin adı gönderilecek ise ikisine okuyup dataya eklemek gerekir. En kolayı String olarak tanımlamak.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.