Şimdi Ara

MG995 TAM AÇI DEĞERİNE GEÇ OTURUYOR

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
171
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • herkese öncelikle merhaba 6 eksenli joystick kontrollü bi robot kol projem var su anda sadece x ve y eksenlerı olmak üzere 2 tane motorla calısıyorum

    2 sg-90 ve joystick i dısarıdan 5v 2a adaptor ıle besledim hiç sıkıntısız 0 titrrşim ile çalısıyordu fakat motorlardan 3 tanesi mg995 olmalı daha fazla tork için. sg90 ları cıkarıp mh995 leri takınca fazla akım çektiği için jotstick sapıttı. joystick 0 konmundayken serial porta 550 gibi bi değer veriyor asagı çekince de 0, burada bi sıkıntı yok ama yukarı cektiğimizde 1024 vermesi gerekirken hızlı bi şekilde 0-1024 aralıgında gidip gelen değerler verdiği için haliyle motor kafayı yedi.

    fazla akımdan dolayı oldugunu dusunerek bi tane eski iphone kablosunu soyup joysticki onunla besleyip gndlerini ortak bagladıgıdma serial printte sorunsuz bi şekilde istediğim değerleri okudum fakat bu seferde motor gerekli açıya birkaç ufak titreşim yatıktan sonra 2-3 sn gibi bi sürede oturuyor.
    kod asağıdadır

    #include <Servo.h>

    Servo servo1; //x axis
    Servo servo2; //y axis
    int posx,x1,posy,y1;
    void setup ()
    {
    Serial.begin(9600);
    servo1.attach(9);
    servo2.attach(10);
    pinMode(A1,INPUT);
    pinMode(A2,INPUT);

    }

    void loop()
    {

    // x bacagını okuma ve motora yol verme
    posx = analogRead(A1);



    if(posx<500)
    {
    if(x1>10)
    {
    x1=x1-2;
    delay(7);
    }
    }

    if(posx<5)
    {
    if(x1>10)
    {
    x1=x1-7;
    delay(5);
    }
    }

    if(posx>600)
    {
    if(x1<175)
    {
    x1=x1+2;
    delay(7);
    }
    }

    if(posx>1015)
    {
    if(x1<175)
    {
    x1=x1+7;
    delay(5);
    }
    }
    /*Serial.print("x=");
    Serial.println(posx);
    Serial.print("x1=");
    Serial.print(x1);
    */
    servo1.write(x1);


    //y bacagını kuma ve motora yol verme
    posy = analogRead(A2);
    // Serial.print("y=");
    //Serial.println(posy);

    if(posy<400)
    {
    if(y1>50)
    {
    y1=y1-2;
    }
    }

    if(posy>600)
    {
    if(y1<175)
    {
    y1=y1+2;
    }
    }
    delay(7);
    servo2.write(y1);
    Serial.print("y=");
    Serial.println(posy);
    Serial.print("y1=");
    Serial.print(y1);
    }







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.