ardunio 实验:超声波测距、声光报警模拟倒车雷达

所用元件:

     1、Arduino 2012 UNO R3开发板
     2、超声波模块:HC-SR04
     3、LED \ 蜂鸣器

功能:

  • 输出测距信息至串口
  • 距离20CM 蜂鸣器开始报警,LED闪烁
  • 20CM 到 3CM 间 报警音不断急促,3CM内报警音长鸣,LED长亮

代码:

 1 int beeppin = 8;
 2 int ledpin=9;
 3 int echo= 6;
 4 int trig=7;
 5 unsigned long time_echo=0; // record the pulse width by sensor returns
 6 unsigned long distance =0; // record the distance value;
 7  
 8 void setup(){
 9    Serial.begin(9600);
10    pinMode(beeppin,OUTPUT);
11    pinMode(ledpin,OUTPUT);   
12    pinMode(echo,INPUT);
13    pinMode(trig,OUTPUT);
14 }
15  
16 void loop(){
17   digitalWrite(trig,HIGH);  //send pulse
18   delayMicroseconds(80);    //set pulse width with 50us(>10us)
19   digitalWrite(trig,LOW);   //stop send
20  
21   time_echo = pulseIn(echo,HIGH); //get return pulse width
22   if((time_echo<60000)&&(time_echo>1)) //valid scope 1-60000
23   {
24     distance = (time_echo*34/100)/2; //mm   
25     if(distance < 200)
26      {
27       if(distance<30){
28         digitalWrite(beeppin,HIGH);
29         digitalWrite(ledpin,HIGH);
30       }else{   
31         alert(distance/2);
32       }
33      }
34     Serial.print(distance,DEC);
35     Serial.println('\n');
36  
37   }
38   delay(100);
39 }
40 void alert(unsigned i){
41   digitalWrite(beeppin,HIGH);
42   digitalWrite(ledpin,HIGH);
43   delay(i);
44   digitalWrite(beeppin,LOW);
45   digitalWrite(ledpin,LOW);
46   delay(i);
47 }
原文地址:https://www.cnblogs.com/vmax/p/2733730.html