標題: arduino藍牙小車例程 [打印本頁]

作者: 大可帥    時間: 2018-2-2 13:42
標題: arduino藍牙小車例程
這里有一個mega2560的藍牙小車例程和大家分享下》
  1. #include <Wire.h>
  2. #include <Servo.h>
  3. #include <LiquidCrystal.h>
  4. #include <PID_v1.h>


  5. /************ 轉向舵機參數(shù) ***********/
  6. Servo myservo;        //建立一個舵機對象,名稱為 myservo
  7. int x=100;
  8. /*********** 馬達控制參數(shù) **********/
  9. const unsigned char pinMotorLCW  = 6;   // 接控制電機順時針轉的 H 橋引腳
  10. const unsigned char pinMotorLCCW = 5;   // 接控制電機逆時針轉的 H 橋引腳
  11. const unsigned char pinMotorRCW  = 9;   // 接控制電機順時針轉的 H 橋引腳
  12. const unsigned char pinMotorRCCW = 10;   // 接控制電機逆時針轉的 H 橋引腳

  13. int speedpin=8;//定義EA(PWM調(diào)速)接口


  14. // 電機停轉
  15. void motorStop()
  16. {
  17.     digitalWrite(pinMotorRCW,  LOW);
  18.     digitalWrite(pinMotorRCCW, LOW);
  19.         digitalWrite(pinMotorLCW,  LOW);
  20.     digitalWrite(pinMotorLCCW, LOW);
  21.        analogWrite(speedpin,255);
  22. }

  23. // 小車前進
  24. void motorAhead(int a)         //給電機輸入一個電壓值a(a在0-255之間)  調(diào)速
  25. {
  26.     digitalWrite(pinMotorRCW,  HIGH);
  27.     digitalWrite(pinMotorRCCW, LOW);
  28.         digitalWrite(pinMotorLCW,  HIGH);
  29.     digitalWrite(pinMotorLCCW, LOW);
  30.     analogWrite(speedpin,a);
  31. }
  32. // 小車左轉
  33. void motorLeft(int a)               //給電機輸入一個電壓值a(a在0-255之間).  調(diào)速
  34. {
  35.     digitalWrite(pinMotorRCW,  LOW);
  36.     digitalWrite(pinMotorRCCW, HIGH);
  37.         digitalWrite(pinMotorLCW,  HIGH);
  38.     digitalWrite(pinMotorLCCW, LOW);
  39.       analogWrite(speedpin,a);
  40. }
  41. // 小車右轉
  42. void motorRight(int a)               //給電機輸入一個電壓值a(a在0-255之間).  調(diào)速
  43. {
  44.     digitalWrite(pinMotorLCW,  LOW);
  45.     digitalWrite(pinMotorLCCW, HIGH);
  46.         digitalWrite(pinMotorRCW,  HIGH);
  47.     digitalWrite(pinMotorRCCW, LOW);
  48.       analogWrite(speedpin,a);
  49. }
  50. // 小車后退
  51. void motorBack(int a)               //給電機輸入一個電壓值a(a在0-255之間).  調(diào)速
  52. {
  53.     digitalWrite(pinMotorRCW,  LOW);
  54.     digitalWrite(pinMotorRCCW, HIGH);
  55.         digitalWrite(pinMotorLCW,  LOW);
  56.     digitalWrite(pinMotorLCCW, HIGH);
  57.       analogWrite(speedpin,a);
  58. }
  59. void setup()
  60. {
  61. Serial.begin(9600);
  62.       myservo.attach(13);                             //將引腳 13 上的舵機與舵機對象連接起來
  63.     digitalWrite(pinMotorRCW,  LOW);                  //電機初始化
  64.     digitalWrite(pinMotorRCCW, HIGH);
  65.         digitalWrite(pinMotorLCW,  LOW);                  //電機初始化
  66.     digitalWrite(pinMotorLCCW, HIGH);
  67.       analogWrite(speedpin,255);
  68. }

  69. void loop()
  70. {
  71.   while(Serial.available())
  72.    {   
  73.      char c=Serial.read();
  74.       if(c=='S')motorStop();
  75.       if(c=='A')motorAhead(80);
  76.       if(c=='B')motorBack(80);
  77.        if(c=='s')motorAhead(250);
  78.       if(c=='L')motorLeft(80);
  79.        if(c=='O')myservo.write(100);
  80.       if(c=='R')motorRight(80);   
  81.        if(c=='E')myservo.write(170);
  82.        if(c=='F')myservo.write(30);                  
  83.    }
  84. }
復制代碼

下載:
__.rar (933 Bytes, 下載次數(shù): 17)


作者: danielliu    時間: 2018-2-28 20:59
這是串口控制的,沒有加入藍牙部分。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1