卢占卡
New Member
听邱老师讲话是快速入眠的最好方式
Posts: 35
|
Post by 卢占卡 on Feb 14, 2021 13:44:26 GMT
一.接线原理图二.原理用Trig触发测距 会发出8 个40khz的方波,自动检测是否有信号返回 有信号返回,通过echo输出高电平,高电平持续的时间就是距离的2倍 ,所以说测量距离 =(高电平时间*声速)/ 2三.程序
#define Trig 2 //引脚Tring 连接 IO D2
#define Echo 3 //引脚Echo 连接 IO D3
float cm; //距离变量
float temp; //
void setup() {
Serial.begin(9600);
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
}
void loop() {
//给Trig发送一个低高低的短时间脉冲,触发测距
digitalWrite(Trig, LOW); //给Trig发送一个低电平
delayMicroseconds(2); //等待 2微妙
digitalWrite(Trig,HIGH); //给Trig发送一个高电平
delayMicroseconds(10); //等待 10微妙
digitalWrite(Trig, LOW); //给Trig发送一个低电平
temp = float(pulseIn(Echo, HIGH)); //存储回波等待时间,
//pulseIn函数会等待引脚变为HIGH,开始计算时间,再等待变为LOW并停止计时
//返回脉冲的长度
//声速是:340m/1s 换算成 34000cm / 1000000μs => 34 / 1000
//因为发送到接收,实际是相同距离走了2回,所以要除以2
//距离(厘米) = (回波时间 * (34 / 1000)) / 2
//简化后的计算公式为 (回波时间 * 17)/ 1000
cm = (temp * 17 )/1000; //把回波时间换算成cm
Serial.print("Echo =");
Serial.print(temp);//串口输出等待时间的原始数据
Serial.print(" | | Distance = ");
Serial.print(cm);//串口输出距离换算成cm的结果
Serial.println("cm");
delay(100);
}
|
|
卢占卡
New Member
听邱老师讲话是快速入眠的最好方式
Posts: 35
|
Post by 卢占卡 on Feb 14, 2021 13:46:10 GMT
以上内容为超声波模块,拒绝喷子,从你我做起
|
|