|
|
一个蓝牙小车,前面都没问题,就是后面超声波那部分搞不懂。确定硬件没有问题,请大神赐教!
int ENB=3;
int IN4=5;
int IN3=6;
int IN2=9;
int IN1=10;
int ENA=11;
const int Trig=7;
const int Echo=8;
float cm;
void setup()
{
Serial.begin(9600);
pinMode(ENB,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN1,OUTPUT);
pinMode(ENA,OUTPUT);
pinMode(Trig,OUTPUT);
pinMode(Echo,INPUT);
}
void go()// 前进
{
digitalWrite(IN2,HIGH);
digitalWrite(IN1,LOW);
analogWrite(ENA,245);
analogWrite(ENB,255);
digitalWrite(IN4,HIGH);
digitalWrite(IN3,LOW);
}
void right()
{
digitalWrite(IN2,HIGH);
digitalWrite(IN1,LOW);
analogWrite(ENA,245);
analogWrite(ENB,255);
digitalWrite(IN4,LOW);
digitalWrite(IN3,HIGH);
delay(500);
go();
}
void left()
{
digitalWrite(IN2,LOW);
digitalWrite(IN1,HIGH);
analogWrite(ENA,245);
analogWrite(ENB,255);
digitalWrite(IN4,HIGH);
digitalWrite(IN3,LOW);
delay(500);
go();
}
void stop1()// 停止
{
digitalWrite(IN2,LOW);
digitalWrite(IN1,LOW);
analogWrite(ENA,245);
analogWrite(ENB,255);
digitalWrite(IN4,LOW);
digitalWrite(IN3,LOW);
}
void back()// 后退
{
digitalWrite(IN2,LOW);
digitalWrite(IN1,HIGH);
analogWrite(ENA,245);
analogWrite(ENB,255);
digitalWrite(IN4,LOW);
digitalWrite(IN3,HIGH);
}
//void zhineng()// 智能
//{
//}
void loop()
{
char val = Serial.read();
Serial.write(val);
if (1 != val) {
if ('2' == val)
go();
else if ('6' ==val)
right();
else if ('4' == val)
left();
else if ('8' == val)
back();
else if ('5' == val)
stop1();
else if ('0' == val)
//zhineng();
{digitalWrite(Trig, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
cm = pulseIn(Echo, HIGH) / 58.0; //将回波时间换算成cm
cm = (int(cm * 100.0)) / 100.0; //保留两位小数
cm=digitalRead(Echo);
if(cm>50.0)
{digitalWrite(IN2,HIGH);
digitalWrite(IN1,LOW);
analogWrite(ENA,245);
analogWrite(ENB,255);
digitalWrite(IN4,HIGH);
digitalWrite(IN3,LOW);}}
else
{ digitalWrite(IN2,LOW);
digitalWrite(IN1,HIGH);
analogWrite(ENA,245);
analogWrite(ENB,255);
digitalWrite(IN4,LOW);
digitalWrite(IN3,HIGH);}
delay(500);
}
else
{
//stop();
delay(500);
}
} |
|