11.6

2017-11-06  本文已影响0人  李响lx

今天学习了声音传感器编程,并显示距离的程序。学习内容全在最后自己编写的程序里:

#include<LiquidCrystal.h>        //显示头文件

LiquidCrystal lcd(12, 11, 5, 4, 6, 7);        //显示管脚初始化

unsigned int EchoPin = 2;         //触发声音发出管脚

unsigned int TrigPin = 3;               //声音返回信号接收管脚

unsigned long Time_Echo_us = 0;

unsigned long Len_mm  = 0;

void setup() {

lcd.begin(16, 2);

Serial.begin(9600);                        //Serial: output result to Serial monitor

pinMode(EchoPin, INPUT);

pinMode(TrigPin, OUTPUT);                  // 发送高脉冲引脚用于触发测量 (>10us)

Serial.print("setup ");

}

void loop() {

digitalWrite(TrigPin, HIGH);              //开始发送 高电平,US-100开始测量距离

delayMicroseconds(20);                    // 设置高脉冲宽度为20us (>10us)

digitalWrite(TrigPin, LOW);              // 结束高脉冲

Time_Echo_us = pulseIn(EchoPin, HIGH);    // 敲击是第一个上升沿,返回波是第二个上升沿,两沿宽度

if((Time_Echo_us < 60000) && (Time_Echo_us > 1))    //有效的宽度范围 (1, 60000).

{

Len_mm = (Time_Echo_us*34/100)/2;                                            //计算距离

lcd.clear();                                                                        //清屏

tone(8, map(Len_mm, 1000, 10000,3951,131 ),250);            //发出警告声音

lcd.setCursor(0,1);                                                                    //显示定位:第0列第1行

lcd.print("Distance:");                                                                   //直接输出“Distance:”

lcd.print(Len_mm/10);                                                                    //输出距离

lcd.print("cm");

}

delay(Len_mm/2);                                                                            //调整发出信号周期,距离越近间                                                                                                          // 隔时间越短

}

上一篇下一篇

猜你喜欢

热点阅读