标题: 蓝牙+电机的Arduino源码分享 [打印本页]

作者: ssk7793    时间: 2018-11-22 21:04
标题: 蓝牙+电机的Arduino源码分享
/*注意事项:(在烧写的过程中,请先断开蓝牙模块和Nano板的连接,否则会烧不进程序。)
1.写代码到Arduino板上时,数字0和1口不能接线,必需拨掉(不要带电拨线,容易烧)
2.蓝牙的TX口接Arduino板上的0口,RX口接Arduino板上的1口
*/

const byte B1A = 6; //B-1A
const byte B1B = 9; //B-1B
const byte A1A = 10; //A-1A
const byte A1B = 11; //A-1B

void setup() {
  Serial.begin(9600);  //串口波特率(使用蓝牙串口必需此句)
  pinMode(B1A,OUTPUT); //设置数字口为输出口
  pinMode(B1B,OUTPUT);
  pinMode(A1A,OUTPUT);
  pinMode(A1B,OUTPUT);  
}

void loop() {   
  while(Serial.available()) {  //判断缓冲器状态。  
        char c=Serial.read();    //读取串口
        switch (c) {
        case 'A':
                goUp(80); //前进
                break;
        case 'B':
                goLeft(200); //左转
                break;
        case 'C':
                goRight(200); //右转
                break;
        case 'D':
                goBack(80); //后退
                break;
        case 'E':
                goStop(); //停止
                break;
        }
   }
}

void goUp(int up_speed) { //前进
  analogWrite(B1A,255);
  analogWrite(A1B,255);
  analogWrite(B1B,up_speed);
  analogWrite(A1A,up_speed);  
  Serial.println("goUp"); //输出到串口
}
void goLeft(int left_speed) { //左转
  analogWrite(B1A,0); //向数字口发送值(以下都是)
  analogWrite(A1A,0);
  analogWrite(B1B,left_speed);
  analogWrite(A1B,left_speed);
  Serial.println("goLeft");
}
void goRight(int right_speed) { //右转
  analogWrite(B1B,0);
  analogWrite(A1B,0);
  analogWrite(B1A,right_speed);
  analogWrite(A1A,right_speed);
  Serial.println("goRight");
}
void goBack(int back_speed) { //后退
  analogWrite(B1B,255);
  analogWrite(A1A,255);
  analogWrite(B1A,back_speed);
  analogWrite(A1B,back_speed);  
  Serial.println("goBack");
}
void goStop() { //停止
  analogWrite(B1A,0);
  analogWrite(B1B,0);
  analogWrite(A1A,0);
  analogWrite(A1B,0);
  Serial.println("goStop");
}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1