标题:
arduino蓝牙小车加避障代码
[打印本页]
作者:
TJCL1451681
时间:
2017-6-6 12:54
标题:
arduino蓝牙小车加避障代码
#define IN1 4
#define IN2 5
#define IN3 6
#define IN4 7
void forward();
void back();
void turnLeft();
void turnRight();
void _stop();
int ledpin=13;
int i;
int TrigPin = 8;
int EchoPin = 9;
void setup()
{ pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(ledpin,OUTPUT);
Serial.begin(9600);
}
void loop()
{
i= Serial.read();
digitalWrite(TrigPin, LOW); // 使发出发出超声波信号接口低电平2μs
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH); // 使发出发出超声波信号接口高电平10μs,这里是至少10μs
delayMicroseconds(10);
digitalWrite(TrigPin, LOW); // 保持发出超声波信号接口低电平
int distance = pulseIn(EchoPin, HIGH); // 读出脉冲时间
distance= distance/58; // 将脉冲时间转化为距离(单位:厘米)
Serial.println(distance); //输出距离值
delay(50);
if (distance <=30)
{//如果距离大于50厘米小灯亮起
digitalWrite(ledpin,HIGH);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}//如果距离小于50厘米小灯熄灭
else
digitalWrite(ledpin,LOW);
//if(Serial.available())
//i= Serial.read();
switch(i)
{ case'1':{turnLeft();break;}
case'2':{forward();break;}
case'3':{turnRight();break;}
case'4':{_stop();break;}
case'5':{back();break;}
}
}
void forward()
{ digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void back()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void turnLeft()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void turnRight()
{ digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void _stop()
{ digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
复制代码
作者:
xqxyk
时间:
2017-6-8 11:24
新手看懂了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1