191zzy 发表于 2012-10-19 23:50:30

超声波测距(HC-SR04)+arduino制作倒车雷达

上次买arduino的时候,顺带买了个HC-SR04,一直没玩,今年翻出来了,仅仅测距多没意思。想想可以做点什么呢?来做个倒车雷达吧。

在论坛上没有看到HC-SR04的库文件,我就找了找,放在后面了。

辛苦卷纸了。代码很简单。{:soso_e121:}

#include <Ultrasonic.h>

#define TRIGGER_PIN    12
#define ECHO_PIN       13

#define NUMBER_BUFFERS 3
#define BUFFER_SIZE    3

#define BUFFER_01      0
#define BUFFER_02      1
#define BUFFER_03      2

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
bool disableSD = false;

size_t count = 0;


void setup()
{
Serial.begin(9600);
Serial.println("Starting Ultasonic Test using standard deviation ...");
pinMode(3,OUTPUT);
pinMode(4,INPUT);

/*
   * If NUMBER_BUFFERS is 2 then it must be followed by two size variables
   * one for each buffer to be created. The size variables do not need to be
   * the same value.
   *
   * Example: ultrasonic.sampleCreate(3, 20, 10, 3) is valid.
   *
   * Note: The minimum size for any buffer is 2. Using less than 2 will waist
   *       resources and the buffer will be ignored.
   */
if(!ultrasonic.sampleCreate(NUMBER_BUFFERS, BUFFER_SIZE, BUFFER_SIZE,
      BUFFER_SIZE))
    {
    disableSD = true;
    Serial.println("Could not allocate memory.");
    }
}

void loop()
{
float cmMsec, inMsec;
float msStdDev, cmStdDev, inStdDev;
long microsec = ultrasonic.timing();

cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);


    if(disableSD)
      {
      Serial.print("CM: ");
      Serial.print(cmMsec);
      Serial.print(", IN: ");
      Serial.println(inMsec);
      }
    else
      {
      msStdDev = ultrasonic.unbiasedStdDev((float) microsec, BUFFER_01);
      cmStdDev = ultrasonic.unbiasedStdDev(cmMsec, BUFFER_02);
      inStdDev = ultrasonic.unbiasedStdDev(inMsec, BUFFER_03);
      Serial.print(", CM: ");
      Serial.print(cmMsec);
      }

if(cmMsec<=200)
{
    Serial.println("in if") ;
    digitalWrite(3,HIGH);
    delay(cmMsec*3);
    digitalWrite(3,LOW);
    tone(4,1000);
    delay(cmMsec*6);
    noTone(4);
}
delay(100);
}



http://player.youku.com/player.php/sid/XNDY0MTY5MjY0/v.swf

shenhaiyu 发表于 2012-10-20 14:55:22

我来补一些资料吧:

Randy 发表于 2012-10-20 07:49:24

有创意,必须帮顶!不错!

tgyfish 发表于 2012-10-21 11:40:14

shenhaiyu 发表于 2012-10-20 14:55 static/image/common/back.gif
我来补一些资料吧:

好多我想要的,谢啦!

丿ˇ黑仔ˇ丨 发表于 2013-3-31 15:21:49

感谢了。。。。。。。。。

A_Cappella-阿卡 发表于 2013-5-9 21:52:59

好东西!顶起来!

华子 发表于 2013-6-3 10:59:17

顶一下,麻烦高手能指导下小弟么

pasico 发表于 2013-7-1 21:32:28

求接线图~~!

zwltanf 发表于 2013-7-2 09:56:30

留个记号,

linkkl 发表于 2013-7-8 22:02:11

学习学习~谢谢分享

Greek 发表于 2013-8-6 23:10:29

shenhaiyu 发表于 2012-10-20 14:55 static/image/common/back.gif
我来补一些资料吧:

It's very good!

lslcxlsl 发表于 2014-6-9 17:22:27

不错,顶一个!

请叫我小萌兽 发表于 2014-12-7 14:57:48

一个不拉,全收

水镜 发表于 2015-12-17 14:27:59

good.arduino 的例子很好。

会飞的狼之华仔 发表于 2016-7-30 19:00:21

多谢,要好好学习了
页: [1] 2
查看完整版本: 超声波测距(HC-SR04)+arduino制作倒车雷达