這里有一個mega2560的藍牙小車例程和大家分享下》
- #include <Wire.h>
- #include <Servo.h>
- #include <LiquidCrystal.h>
- #include <PID_v1.h>
- /************ 轉向舵機參數 ***********/
- Servo myservo; //建立一個舵機對象,名稱為 myservo
- int x=100;
- /*********** 馬達控制參數 **********/
- const unsigned char pinMotorLCW = 6; // 接控制電機順時針轉的 H 橋引腳
- const unsigned char pinMotorLCCW = 5; // 接控制電機逆時針轉的 H 橋引腳
- const unsigned char pinMotorRCW = 9; // 接控制電機順時針轉的 H 橋引腳
- const unsigned char pinMotorRCCW = 10; // 接控制電機逆時針轉的 H 橋引腳
- int speedpin=8;//定義EA(PWM調速)接口
- // 電機停轉
- void motorStop()
- {
- digitalWrite(pinMotorRCW, LOW);
- digitalWrite(pinMotorRCCW, LOW);
- digitalWrite(pinMotorLCW, LOW);
- digitalWrite(pinMotorLCCW, LOW);
- analogWrite(speedpin,255);
- }
- // 小車前進
- void motorAhead(int a) //給電機輸入一個電壓值a(a在0-255之間) 調速
- {
- digitalWrite(pinMotorRCW, HIGH);
- digitalWrite(pinMotorRCCW, LOW);
- digitalWrite(pinMotorLCW, HIGH);
- digitalWrite(pinMotorLCCW, LOW);
- analogWrite(speedpin,a);
- }
- // 小車左轉
- void motorLeft(int a) //給電機輸入一個電壓值a(a在0-255之間). 調速
- {
- digitalWrite(pinMotorRCW, LOW);
- digitalWrite(pinMotorRCCW, HIGH);
- digitalWrite(pinMotorLCW, HIGH);
- digitalWrite(pinMotorLCCW, LOW);
- analogWrite(speedpin,a);
- }
- // 小車右轉
- void motorRight(int a) //給電機輸入一個電壓值a(a在0-255之間). 調速
- {
- digitalWrite(pinMotorLCW, LOW);
- digitalWrite(pinMotorLCCW, HIGH);
- digitalWrite(pinMotorRCW, HIGH);
- digitalWrite(pinMotorRCCW, LOW);
- analogWrite(speedpin,a);
- }
- // 小車后退
- void motorBack(int a) //給電機輸入一個電壓值a(a在0-255之間). 調速
- {
- digitalWrite(pinMotorRCW, LOW);
- digitalWrite(pinMotorRCCW, HIGH);
- digitalWrite(pinMotorLCW, LOW);
- digitalWrite(pinMotorLCCW, HIGH);
- analogWrite(speedpin,a);
- }
- void setup()
- {
- Serial.begin(9600);
- myservo.attach(13); //將引腳 13 上的舵機與舵機對象連接起來
- digitalWrite(pinMotorRCW, LOW); //電機初始化
- digitalWrite(pinMotorRCCW, HIGH);
- digitalWrite(pinMotorLCW, LOW); //電機初始化
- digitalWrite(pinMotorLCCW, HIGH);
- analogWrite(speedpin,255);
- }
-
- void loop()
- {
- while(Serial.available())
- {
- char c=Serial.read();
- if(c=='S')motorStop();
- if(c=='A')motorAhead(80);
- if(c=='B')motorBack(80);
- if(c=='s')motorAhead(250);
- if(c=='L')motorLeft(80);
- if(c=='O')myservo.write(100);
- if(c=='R')motorRight(80);
- if(c=='E')myservo.write(170);
- if(c=='F')myservo.write(30);
- }
- }
復制代碼
下載:
__.rar
(933 Bytes, 下載次數: 17)
2018-2-2 13:42 上傳
點擊文件名下載附件
例程 下載積分: 黑幣 -5
|