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