疯子。 发表于 2013-8-1 09:45:59

基于UNO的倒车雷达系统

本帖最后由 疯子。 于 2013-8-2 16:57 编辑

东西技术含量不大,转帖可以,但在别处说是你的原创!
http://tieba.baidu.com/p/2501792539
有人复制我的帖子发到贴吧说是他的原创,而且还来问我为什么抄袭他的,可笑。


前一阵见有人拿着东西做毕设。我修改优化了一下。

所用器材:
UNO * 1
HC--SR04 * 1
蜂鸣器 * 1
RGB LED *1 (也可用三种颜色的led)


图:


const int TrigPin = 3;
const int EchoPin = 4;
// 定义变色灯LED的三个输出接口,这里也可以选用三个led
int ledpin1 = 5;// R
int ledpin2 = 6;// G
int ledpin3 = 7;// B
int beeppin = 8;// 蜂鸣器的pin
int i = 0;


void setup ()
{
Serial.begin(9600);   //测量结果将通过此串口输出至 PC 上的串口监视器
pinMode(EchoPin, INPUT);      //设置EchoPin 为输入模式
pinMode(TrigPin, OUTPUT);   //设置超声波数字IO脚模式,OUTPUT为输出
pinMode(ledpin1,OUTPUT);
pinMode(ledpin2,OUTPUT);
pinMode(ledpin3,OUTPUT);
pinMode(beeppin,OUTPUT);      //设置蜂鸣器引脚输出模式
}


void loop()
{
digitalWrite(TrigPin, LOW);   // 通过Trig/Pin 发送脉冲,触发 HC-SR04 测距,使发出发出超声波信号接口低电平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);      //输出距离值

if(distance<20)            //当距离<20cm(这个数据可以在超声波测量的范围内随意改,3cm~450cm )
{
    setColor(255, 0, 0);//三色LED的设置颜色,如果是用三个led则这里删去
    buzzer1();
}
else if (distance<=120)    //当距离<120cm(这个数据可以在超声波测量的范围内随意改,3cm~450cm )
{
    setColor(0, 0, 255);
    buzzer2();
}
else
{
    setColor(0, 255, 0);
    buzzer3();
}
}

//*****************************************************************
void buzzer1()
{
tone(beeppin,900);
delay(300);//响声间隔300ms 听上去更急促
noTone(beeppin);
}

void buzzer2()
{
tone(beeppin,600);
delay(500);//响声间隔500ms 听上去普通
noTone(beeppin);
}

void buzzer3()//这里我用了除余的方法,目的是如果处在安全距离,在不用delay的情况下蜂鸣器响声不要那么频繁
{
if(i%100 == 1){
    tone(beeppin,500);
}
else{
    noTone(beeppin);
}
i++;
}

void setColor(int red, int green, int blue)//三色LED的设置颜色函数,如果是用三个led则这里删去。然后把上面也改一下
{
analogWrite(ledpin3, red);
analogWrite(ledpin2, green);
analogWrite(ledpin1, blue);
}

xiaoesky 发表于 2013-8-1 10:15:40

:)不错!支持一下!

328522073 发表于 2013-8-1 11:17:58

可以用个温度感应器修正一下音速,音速与温度的关系是V=331.3+0.606*C,C是摄氏温度值。
温度对测距的影响还挺大的。

疯子。 发表于 2013-8-1 13:17:32

328522073 发表于 2013-8-1 11:17 static/image/common/back.gif
可以用个温度感应器修正一下音速,音速与温度的关系是V=331.3+0.606*C,C是摄氏温度值。
温度对测距的影响 ...

嗯,有道理~~~

friskit 发表于 2013-8-1 22:05:50

只装一个超声波头么……感觉商品化的话起码得来上四个;P

疯子。 发表于 2013-8-1 23:27:05

friskit 发表于 2013-8-1 22:05 static/image/common/back.gif
只装一个超声波头么……感觉商品化的话起码得来上四个

嗯啊,自己玩玩。离商品化还比较远~~~

比如商品话不可能用这个超声波头,太笨重了,也不精准。
页: [1]
查看完整版本: 基于UNO的倒车雷达系统