|
代碼如下:#include <SoftwareSerial.h>
SoftwareSerial mySerial(8,9); //定義軟串口對象
void setup() {
// put your setup code here, to run once:
mySerial.begin(115200); //藍(lán)牙接收串口
int_car_pin();
set_speed(140);
}
//前進(jìn)--0xa
//后退--0xb
//前進(jìn)--0xc
//后退--0xd
//停止--0x10
void loop() {
// put your main code here, to run repeatedly:
int ch = 0;
mySerial.listen(); //表示監(jiān)聽我們的軟串口數(shù)據(jù)
while(mySerial.available() > 0)
{
Serial.println("Recv data : ");
ch = mySerial.read(); //軟串口讀出,寫到arduino開發(fā)板上
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 ;
}
--------------------------------------------------------------------------
//對應(yīng)的四個電機(jī)驅(qū)動
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() //左邊正轉(zhuǎn)
{
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void leftMotorBack() //左邊反轉(zhuǎn)
{
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void rightMotorForward() //右邊正轉(zhuǎn)
{//1
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
}
void rightMotorBack() //右邊發(fā)轉(zhuǎn)
{//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);
}
運(yùn)行后,小車前行,哎左轉(zhuǎn),右轉(zhuǎn)正常。
倒退時小車異常
求大神解決
|
|