天天看點

基于arduino的藍牙控制雙舵機 (按照不同規律運動)

基于arduino的藍牙控制雙舵機 (按照不同規律運動)

 功能:藍牙控制雙舵機按不同規律運動

需要材料:

1.arduino版

2.藍牙子產品(我用的是bt05)

3.面包闆

4.兩舵機

5.  8v電源

6.若幹杜邦線

(手機APP控制軟體:藍牙調試助手)

具體代碼如下:

#include <Servo.h>

Servo servo1,servo2; //定義舵機名1和2

int buttonPushCounter = 0;//按鈕數初始

void setup() 

{

  servo1.attach(9); // 舵機1信号在9引腳 

  servo2.attach(10);//舵機2信号在10引腳 

  Serial.begin(9600);//波特率9600

  servo1.write(0);

  servo2.write(0);//舵機1、2初始角度0度

}

void loop()

{

  if(Serial.available()>0)//序列槽接受到的資料個數

  {char buttonState =  Serial.read();

    if (buttonState == '1')

    {buttonPushCounter++;

      Serial.println("on");

      Serial.print("number of button pushes:  ");

      Serial.println(buttonPushCounter);

    }

    if (buttonState == '2')//控制2舵機

  {servo2.write(40);

    delay(20);

    }

    else

  {if (buttonState == '0')

     {servo2.write(0); 

    delay(15);}

  }

  }

  if (buttonPushCounter==0 ) {                          

    servo1.write(0);// 舵機旋轉到0位置

    delay(15); // 15ms後進入下一個位置 

  } else{

  if (buttonPushCounter ==1)// 當計數器為1時

  {

    servo1.write(90); // 舵機旋轉到90度位置

    delay(15); 

  } else {

 if (buttonPushCounter  == 2)

 {

    servo1.write(180);// 舵機旋轉到180度位置

    delay(15); 

  }else {

  if (buttonPushCounter  == 3) {

    servo1.write(90);// 舵機旋轉到90度位置

    for(buttonPushCounter = 3; buttonPushCounter >= 0; buttonPushCounter -= 1);//将計數器清零,回到初始0狀态

    delay(15);

    }

   }

   }

  }

  }

繼續閱讀