所需原价:arduino板子。超声波模块一个、led三色灯一枚。连接线若干
程序:
[code=cpp]int inputPin=3; // 定义超声波信号接收接口
int outputPin=2; // 定义超声波信号发出接口
int ledpin1=5;
int ledpin2=6;
int ledpin3=7;//变色灯的三个输出接口
void setup()
{
Serial.begin(9600);
pinMode(ledpin1,OUTPUT);
pinMode(ledpin2,OUTPUT);
pinMode(ledpin3,OUTPUT);
pinMode(inputPin, INPUT);
pinMode(outputPin, OUTPUT);//设置数字IO脚模式,OUTPUT为输出
}
void loop()
{
unsigned char i,j;
digitalWrite(outputPin, LOW); // 使发出发出超声波信号接口低电平2μs
delayMicroseconds(2);
digitalWrite(outputPin, HIGH); // 使发出发出超声波信号接口高电平10μs,这里是至少10μs
delayMicroseconds(10);
digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平
int distance = pulseIn(inputPin, HIGH); // 读出脉冲时间
distance= distance/58; // 将脉冲时间转化为距离(单位:厘米)
Serial.println(distance); //输出距离值
delay(50);
if (distance <=20)
{
digitalWrite(ledpin1,HIGH);
digitalWrite(ledpin2,LOW);
digitalWrite(ledpin3,LOW);
}
else
{
if(distance<=40)
{
digitalWrite(ledpin3,HIGH);
digitalWrite(ledpin1,LOW);
digitalWrite(ledpin2,LOW);
}
else
{
digitalWrite(ledpin2 ,HIGH);
digitalWrite(ledpin1,LOW);
digitalWrite(ledpin3,LOW);
}
}
}
[/code]
连接线按照程序定义的接口就行啦!
其实关键就在于那个三色小灯上。
|