超声波测距(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 static/image/common/back.gif
我来补一些资料吧:
好多我想要的,谢啦! 感谢了。。。。。。。。。 好东西!顶起来! 顶一下,麻烦高手能指导下小弟么 求接线图~~! 留个记号, 学习学习~谢谢分享 shenhaiyu 发表于 2012-10-20 14:55 static/image/common/back.gif
我来补一些资料吧:
It's very good! 不错,顶一个! 一个不拉,全收 good.arduino 的例子很好。 多谢,要好好学习了
页:
[1]
2