|
/*注意事項(xiàng):(在燒寫的過程中,請(qǐng)先斷開藍(lán)牙模塊和Nano板的連接,否則會(huì)燒不進(jìn)程序。)
1.寫代碼到Arduino板上時(shí),數(shù)字0和1口不能接線,必需撥掉(不要帶電撥線,容易燒)
2.藍(lán)牙的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); //串口波特率(使用藍(lán)牙串口必需此句)
pinMode(B1A,OUTPUT); //設(shè)置數(shù)字口為輸出口
pinMode(B1B,OUTPUT);
pinMode(A1A,OUTPUT);
pinMode(A1B,OUTPUT);
}
void loop() {
while(Serial.available()) { //判斷緩沖器狀態(tài)。
char c=Serial.read(); //讀取串口
switch (c) {
case 'A':
goUp(80); //前進(jìn)
break;
case 'B':
goLeft(200); //左轉(zhuǎn)
break;
case 'C':
goRight(200); //右轉(zhuǎn)
break;
case 'D':
goBack(80); //后退
break;
case 'E':
goStop(); //停止
break;
}
}
}
void goUp(int up_speed) { //前進(jìn)
analogWrite(B1A,255);
analogWrite(A1B,255);
analogWrite(B1B,up_speed);
analogWrite(A1A,up_speed);
Serial.println("goUp"); //輸出到串口
}
void goLeft(int left_speed) { //左轉(zhuǎn)
analogWrite(B1A,0); //向數(shù)字口發(fā)送值(以下都是)
analogWrite(A1A,0);
analogWrite(B1B,left_speed);
analogWrite(A1B,left_speed);
Serial.println("goLeft");
}
void goRight(int right_speed) { //右轉(zhuǎn)
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");
}
|
|