Robofun 機器人論壇

標題: 請教關於ARDUINO控制三個以上舵機程序問題? [打印本頁]

作者: hansmuller_8    時間: 2012-1-10 09:32
標題: 請教關於ARDUINO控制三個以上舵機程序問題?
請教關於ARDUINO控制三個以上舵機程序問題?

請教關於ARDUINO控制三個以上舵機程序問題?如何同時控制三個以上舵機的運動,舵機運動方向不同,動作是緩慢的循環左右轉動。要求三個舵機有各自的行程和速度,我寫了段代碼,是調用的servo.h的舵機函數控制的,但是都是一個個的接著動並不是一起動。
void loop()
{
for(pos1 = 20; pos1 < =180; pos1 += 1)
{ myservo1.write(pos1);
delay(15);}
for( pos2 = 90; pos2 >= 10; pos2 -= 1)
{ myservo2.write(pos2);
delay(15);}
for( pos3 = 20; pos3 < 120; pos3 += 1)
{ myservo3.write(pos3);
delay(15); }
for(pos1 = 180; pos1 > =20; pos1 -= 1)
{ myservo1.write(pos1);
delay(15);}
for( pos2 = 10; pos2 <= 90; pos2 += 1)
{ myservo2.write(pos2);
delay(15);}
for( pos3 = 120; pos3 >=20; pos3 -= 1)
{ myservo3.write(pos3);
delay(15); }
}這是一個接一個的代碼,不知道怎麼改才可以三個一起動,謝謝
作者: miaoichi    時間: 2012-1-10 22:50
http://www.robotoid.com/appnotes ... ing-two-servos.html

參考這篇看看
作者: hansmuller_8    時間: 2012-1-11 10:55
今天想出一個寫法,用的是ARDUINO的自帶MAP縮放函數,測試運動了瞞不錯。
void loop()
{
   int x;
for(x = 0; x< =180; x+=2)                           
      
    {   int pos1=map(x,0,180,90,120);

        int pos2=map(x,0,180,30,60);

        int pos3=map(x,0,180,20,50);

        myservo1.write(pos1);            
      
        myservo2.write(pos2);
      
        myservo3.write(pos3);            
                  
      delay(10);  
   
    }
for(x = 180; x< =0; x+=2)                           
      
    {   int pos1=map(x,180,0,120,90);

        int pos2=map(x,180,0,60,30);

        int pos3=map(x,180,0,50,30);

        myservo1.write(pos1);            
      
        myservo2.write(pos2);
      
        myservo3.write(pos3);            
                  
      delay(10);  
   
    }
}
作者: coopermaa    時間: 2012-1-11 12:04
聰明!
又學到一招,謝謝
作者: vegewell    時間: 2012-1-12 21:34
這裡:
..........
for(x = 180; x< =0; x+=2)                           
      
    {   int pos1=map(x,180,0,120,90);
應該是:
............
for(x = 180; x< =0; x-=2)                           
      
    {   int pos1=map(x,180,0,120,90);




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2