这里有一个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)
|