超声波传感器
超声波测距模块工作原理:
(1)采用IO TRIG触发测距,给至少10 μs的高电平信号;
(2)模块自动发送8个40 kHz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340 m/s))/2;
(4)本模块使用方法简单,一个控制口发一个10 μs以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。
实物连接图
若与下方的LCD连接图组合,就可以实现在液晶屏上显示距离值的功能。
程序
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //定义LCD脚位 const int TrigPin = 8; const int EchoPin = 9; float cm; void setup() { Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); lcd.begin(16, 2); //设置LCD显示的数目。16 X 2:16格2行。 } void loop() { digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm cm = (int(cm * 100.0)) / 100.0; //保留两位小数 Serial.print("Distance:"); Serial.print(cm); Serial.print("cm"); Serial.println(); delay(1000); lcd.setCursor(0, 1); //将闪烁的光标设置到column 0, line 1 lcd.print("Dis:"); lcd.setCursor(5, 1); lcd.print(cm); lcd.setCursor(11, 1); lcd.print("cm"); }文件下载(已下载 3 次)
发布时间:2019/9/9 下午10:44:08 阅读次数:2520