代码如下:#include <SoftwareSerial.h>
SoftwareSerial mySerial(8,9); //定义软串口对象
void setup() {
// put your setup code here, to run once:
mySerial.begin(115200); //蓝牙接收串口
int_car_pin();
set_speed(140);
}
//前进--0xa
//后退--0xb
//前进--0xc
//后退--0xd
//停止--0x10
void loop() {
// put your main code here, to run repeatedly:
int ch = 0;
mySerial.listen(); //表示监听我们的软串口数据
while(mySerial.available() > 0)
{
Serial.println("Recv data : ");
ch = mySerial.read(); //软串口读出,写到arduino开发板上
switch(ch)
{
case 0xa:
car_forward();
break;
case 0xb:
car_back();
break;
case 0xc:
car_left();
break;
case 0xd:
car_right();
break;
case 0x10:
car_stop();
break;
}
}
return ;
}
--------------------------------------------------------------------------
//对应的四个电机驱动
int IN1 = 13; //右边轮子
int IN2 = 12; //右边轮子
int IN3 = 11; //左边轮子
int IN4 = 10; //左边轮子
int pwmleft = 5;
int pwmright = 6;
void int_car_pin() {
// put your setup code here, to run once:
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
}
void leftMotorForward() //左边正转
{
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void leftMotorBack() //左边反转
{
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void rightMotorForward() //右边正转
{//1
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
}
void rightMotorBack() //右边发转
{//2
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
}
void car_forward()
{
leftMotorForward();
rightMotorForward();
delay(500);
}
void car_back()
{
leftMotorBack();
rightMotorBack();
delay(500);
}
void car_left()
{
leftMotorBack();
rightMotorForward();
delay(500);
car_forward();
delay(500);
}
void car_right()
{
leftMotorForward();
rightMotorBack();
delay(500);
car_forward();
delay(500);
}
void car_stop()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(500);
}
void set_speed(int speed_value)
{
analogWrite(pwmleft, speed_value);
analogWrite(pwmright, speed_value);
}
运行后,小车前行,哎左转,右转正常。
倒退时小车异常
求大神解决
|