Servo motor girilen dereceye göre hareket
  • Merhaba ben burda yeniyim daha. Arduino ile tanışalı 1.5 -2 sene kadar oldu. Şu ana kadar ilk arduino ile yaptığım ilk büyük projem robot oldu. Geçen sene yapmıştım. Kodlasıda ona daha basitti. şimdi daha gelişmiş bir kod üzerinde çalışıyorum. Servoları direk derece girerek çalıştırmak istiyorum. Bir kod yazdım fakat dereceleri almasını sağlayamıyorum.
    Robot video link.


    switch case yapısında hangi motorun olduğunu seçmeyi planlıyorum. sonrasında gelen veri derece bilgisi olacak. Motor seçiminde sorun yok fakat dereceyi doğru almıyor ne yazıkki. Önerisi olan var mı?
    Üstünde çalıştığım kod:
    #include

    Servo servoa;
    Servo servob;
    int wait = 10;
    int konuma = 90;
    int konumb = 70;
    int incomingByte;
    int derece;

    void setup()
    {
    Serial.begin(9600);
    servoa.attach(9);
    servob.attach(10);
    Serial.println("Start");
    delay(wait);
    servoa.write(konuma);
    servob.write(konumb);
    Serial.println(String("Servo A ") + konuma);
    Serial.println(String("Servo B ") + konumb);
    delay(wait);
    }

    void loop()
    {
    while(Serial.available()>0)
    {
    incomingByte = Serial.read();
    switch(incomingByte)
    {
    case 'a':
    delay(wait);
    Serial.println("motor A");
    if(Serial.available()>0)
    {
    derece = Serial.read();
    Serial.println(String("Servo A ") + derece);
    Serial.println(derece);
    }
    break;

    case 'b':
    delay(wait);
    Serial.println("motor B");
    if(Serial.available()>0)
    {
    derece = Serial.read();
    Serial.println(String("Servo B ") + derece);
    Serial.println(derece);
    }
    break;
    }
    }
    }






  • serial.Read yerine,parseInt() kullanmalısın.parseInt() fonksiyonu tamsayı(integer) değeri döndürecektir.

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.