Arduino蓝牙小车程序

Arduino蓝牙小车


我做的是舵机控制方向,一个电机驱动的简单蓝牙小车。
板子:arduino uno;
拓展版我用的是:PM—R3电机拓展版(2路直流电机输出);
蓝牙模块:HC-06;
舵机:MG996R;
电机:不知道;
若干杜邦线;
程序:

int servopin=9;//定义舵机接口数字接口9
int myangle;//定义角度变量
int pulsewidth;//定义脉宽变量
int val;
char _val;
const int led1=10;
const int led2=11;
void servopulse(int servopin,int myangle)//定义一个脉冲函数
{
     
  pulsewidth=(myangle*11)+500;//将角度转化为500-2480的脉宽值
  digitalWrite(servopin,HIGH);//将舵机接口电平至高
  delayMicroseconds(pulsewidth);//延时脉宽值的微秒数
  digitalWrite(servopin,LOW);//将舵机接口电平至低
  delay(20-pulsewidth/1000);
}
void setup() {
     
  // put your setup code here, to run once:
pinMode(6,OUTPUT);//驱动模块上的输出脚
pinMode(7,OUTPUT);//驱动模块上的输出脚
pinMode(servopin,OUTPUT);
Serial.begin(9600);   
Serial.println("系统已准备好");
}

void loop() {
     
  // put your main code here, to run repeatedly:
 _val = Serial.read();//读取串行端口的值
switch(_val){
       
  case 'g':     //前进
  digitalWrite(6,HIGH);   
  digitalWrite(7,LOW);break;
  case 'b':    //后退
  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);break;
  case 's':   //小车停下
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);break;
  case 'z':    //小车左转向
  val=60;
  Serial.print("moving servo to ");   //显示舵机转动的角度
  Serial.print(val,DEC);
    Serial.println();
    for(int i=0;i<=30;i++)//给予舵机足够的时间让它转到指定角度
     {
     
        servopulse(servopin,val);//引用脉冲函数
      }
      break;
   case 'y':   //小车右转
   val=140;
  Serial.print("moving servo to ");
  Serial.print(val,DEC);
    Serial.println();
    for(int i=0;i<=30;i++)//给予舵机足够的时间让它转到指定角度
     {
     
        servopulse(servopin,val);//引用脉冲函数
      }
      break;
    case 'h':  //使小车方向回正;我这定义的是舵机角度为100时方向为正
    val = 100;
  Serial.print("moving servo to ");
  Serial.print(val,DEC);
  Serial.println();
  for(int i=0;i<=30;i++)//给予舵机足够的时间让它转到指定角度
     {
     
        servopulse(servopin,val);//引用脉冲函数
      }break;
    case 'a':   //以下是控制车上的灯
    digitalWrite(led1,HIGH);
    digitalWrite(led2,LOW);break;
    case 'c':
    digitalWrite(led1,LOW);
    digitalWrite(led2,HIGH);break;
    case 'k':
    digitalWrite(led1,LOW);
    digitalWrite(led2,LOW);break;
    case 'q':
    digitalWrite(led1,HIGH);
    digitalWrite(led2,HIGH);break;
      default:
      break;
}
}

Arduino蓝牙小车程序_第1张图片

Arduino蓝牙小车程序_第2张图片
YYM,给LZ点赞!!!!
最后祝大家新年快乐;

你可能感兴趣的:(DIY蓝牙小车,arduino)