c_cpp Beep_HC-SR04
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp Beep_HC-SR04相关的知识,希望对你有一定的参考价值。
int beep = A1;//定义倒车蜂鸣器
int Trig_behind = A3;
int Echo_behind = A2;
float distance_behind = 0;//超声波测距HC-SR04(后)
void setup()
{
Serial.begin(9600);//初始化串口
delay(500);
pinMode(Trig_behind,OUTPUT);
pinMode(beep,OUTPUT);
}
void Beep_behind()
{
if(distance_behind < 15)
{
for(int i=0;i<=8;i++)
{
tone(beep,800);
}
while(!digitalRead(distance_behind > 15))//当小车后侧到障碍物的距离大于15cm时,蜂鸣器停止
{
for(int i=0;i<=8;i++)
{
tone(beep,0);
}
}
}
else
{
for(int i=0;i<=8;i++)
{
tone(beep,0);
}
}
}
float Distance_measure_behind()
{
digitalWrite(Trig_behind,LOW);//保险起见,先给低电平
delayMicroseconds(2);//给触发脚低电平2us(可调) // 我们通过发送一个10微秒的HIGH脉冲来触发传感器。但是,在此之前,我们给出一个短的低电平脉冲,以确保我们得到一个干净的高脉冲。
digitalWrite(Trig_behind,HIGH);
delayMicroseconds(10);//给触发脚高电平10us(可调) // 给Trig一个至少10us的高电平信号,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检测到回波信后,通过Echo管脚输出。
digitalWrite(Trig_behind,LOW);//通过这里公职超声波的发射
distance_behind = pulseIn(Echo_behind,HIGH) / 58.15;//读取高电平的持续时间 // 距离=(传播时间/ 2)x声速 // 声速为:344m / s = 0.0344cm / uS = 1 / 29.07cm / uS ==》 距离 = 传播时间/ 58.15
distance_behind = (distance_behind * 100.0) / 100.0; //保留两位小数
//Serial.print("Distance_behind:");
//Serial.print(distance_behind);
//Serial.println("cm");
return distance_behind;
delay(500);
}
void loop()
{
while(1)
{
Distance_measure_behind();
Beep_behind();
}
}
以上是关于c_cpp Beep_HC-SR04的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 04 - 变量d的后向存储器
c_cpp C ++ 14中的函数currying(function_traits.cpp:https://gist.github.com/Garciat/cafe27d04cfdff0e891e)
c_cpp 130.周围地区
c_cpp 200.岛屿数量
c_cpp 127.单词阶梯
c_cpp MOFSET