C# ile Arduino Arasında Servo motor Kontrol
  • Selam Cumleten herkese Kolay gelsın Arkdaslar ben arduino ya yenı basladım C# Bılgım var ama arduıno fazla yok ve Kendımı gelıstırmek amaclı bır proje yapıyorum Robot kol Dıyelım C# ıle bır arayuz hazırladım serı haberlesmede arduınoya komut yollaya bılıyorum ama motor hep ılerı gıdıyor ıstedıgım gıbı olmuyor amacım arayuzde butona basıldıkca motor ılerlesın ben butona bastıgım zaman hep ılerlıyor herkese tesekkurler yardımları ıcın kolay gelsın
    arduıno tarafı

    #include

    Servo myservo;

    int pos = 0;
    int message = 0;
    void setup()
    {
    myservo.attach(9);
    Serial.begin(9600);
    }

    void loop()
    {
    if(Serial.available()>0)
    {
    message=Serial.read();
    Serial.print(message);
    if(message=='k')
    {


    }
    }

    }


    c# tarafı
    private void btnileri_Click(object sender, EventArgs e)
    {
    serialPort1.Write("k");
    }

  • led blink robotu yaptınız mı?
  • hocam ledler uygulamalar yaptım lcd ıle uygulama yatım bıraz kendımı gelıstırmek amaclı boyle bırsey yeltendım ama burda patladım :S
  • merhaba c# üzerinden arduino ile 2 servonun kontrolünü yapcam.Aşağıdaki gibi kodları oluşturdum ama sorun şu ki herhangi bir trackBar ı hareket ettirdiğimde iki servo da aynı hareket ediyor normalde biri hareket etmeli nerede yanlış yapıyorum
    arduino kodu

    #include
    Servo myservo1;
    Servo myservo2;
    int pos1 = 0;
    int pos2 = 0;
    int k1;
    int k2;

    void setup() {
    Serial.begin(9600);
    myservo1.attach(9);
    myservo2.attach(8);
    }

    void loop() {
    servo1();
    servo2();

    }
    void servo1(){
    if(Serial.available() >0)
    {
    pos1 = Serial.read();
    if(pos1>0)
    {
    k1=pos1;
    }
    }

    myservo1.write(k1);

    }

    void servo2(){
    if(Serial.available() >0)
    {
    pos2 = Serial.read();
    if(pos2>0)
    {
    k2=pos2;
    }
    }

    myservo2.write(k2);

    }

    c# kodu
    private void button5_Click(object sender, EventArgs e)
    {
    serialPort1.PortName = "COM3"; // Arduinonun bağlı olduğu port
    serialPort1.Open();
    label3.Text = "Bağlandı"; // Butona basılınca serial bağlantı gerçekleşir.
    }

    private void trackBar1_Scroll(object sender, EventArgs e)
    {
    // serial bağlantı gerçekleşmişse truckbarın değeri serialden integer olarak gönderilir
    if (serialPort1.IsOpen == true)
    {
    int PWM_deger = trackBar1.Value;
    label5.Text = trackBar1.Value.ToString();
    // int değeri byte a dönüştürme işlemi.
    byte[] b = BitConverter.GetBytes(PWM_deger);
    serialPort1.Write(b, 0, 4);
    }
    else // gerçekleşmemişse hata mesajı verir.
    {
    label3.Text = "Önce Cihaza Bağlan !!";
    }
    }

    private void trackBar2_Scroll(object sender, EventArgs e)
    {
    // serial bağlantı gerçekleşmişse truckbarın değeri serialden integer olarak gönderilir
    if (serialPort1.IsOpen == true)
    {
    int PWM_deger_2 = trackBar2.Value;
    label7.Text = trackBar2.Value.ToString();
    // int değeri byte a dönüştürme işlemi.
    byte[] b_2 = BitConverter.GetBytes(PWM_deger_2);
    serialPort1.Write(b_2, 0, 4);
    }
    else // gerçekleşmemişse hata mesajı verir.
    {
    label3.Text = "Önce Cihaza Bağlan !!";
    }
    }

  • utku

    if(message=='k')
    {


    }
    k="";


    dersen sorun düzelir sanırıım
  • yns_mkt

    void servo1(){
    if(Serial.available() >0)
    {
    pos1 = Serial.read();
    if(pos1>0)

    iki islemdede degiskeni aynı olarak okuyorsun

    soyle yap
    c# serial.write yaarken kol1+deger
    kol2+deger olarak gonder

    arduinoda
    if kontrolu ile substring 4 == "kol1"
    kontrolunu yap sorunun düzelir
  • Teşekkürler :)
  • önemli değil :)
  • bu sorunu nasıl çözdünüz arkadaşlar daha açıklayıcı olabilir misiniz bende aynı sorunla uğraşıyorum da..
  • void loop()
    {
    if(Serial.available()>0)
    {
    message=Serial.read();
    Serial.print(message);
    if(message=='k')
    {
    bu kısmı tekrar ettiği için sürekli dönüyor.Yukarıda
    if(message=='k')
    {
    }
    k="";
    yazarak hareketi bir kez yapması sağlanmış.

Howdy, Stranger!

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

Login with Facebook

Tagged

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