[{"createTime":1735734952000,"id":1,"img":"hwy_ms_500_252.jpeg","link":"https://activity.huaweicloud.com/cps.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905","name":"华为云秒杀","status":9,"txt":"华为云38元秒杀","type":1,"updateTime":1735747411000,"userId":3},{"createTime":1736173885000,"id":2,"img":"txy_480_300.png","link":"https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=edb15096bfff75effaaa8c8bb66138bd&from=console","name":"腾讯云秒杀","status":9,"txt":"腾讯云限量秒杀","type":1,"updateTime":1736173885000,"userId":3},{"createTime":1736177492000,"id":3,"img":"aly_251_140.png","link":"https://www.aliyun.com/minisite/goods?userCode=pwp8kmv3","memo":"","name":"阿里云","status":9,"txt":"阿里云2折起","type":1,"updateTime":1736177492000,"userId":3},{"createTime":1735660800000,"id":4,"img":"vultr_560_300.png","link":"https://www.vultr.com/?ref=9603742-8H","name":"Vultr","status":9,"txt":"Vultr送$100","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":5,"img":"jdy_663_320.jpg","link":"https://3.cn/2ay1-e5t","name":"京东云","status":9,"txt":"京东云特惠专区","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":6,"img":"new_ads.png","link":"https://www.iodraw.com/ads","name":"发布广告","status":9,"txt":"发布广告","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":7,"img":"yun_910_50.png","link":"https://activity.huaweicloud.com/discount_area_v5/index.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=aXhpYW95YW5nOA===&utm_medium=cps&utm_campaign=201905","name":"底部","status":9,"txt":"高性能云服务器2折起","type":2,"updateTime":1735660800000,"userId":3}]
<>超声波测距模块的使用
<>超声波测距模块:
超声波测距模块有好多种类型,目前比较常用的有URM37超声波传感器默认是232接口,可以调为TTL接口,URM05大功率超声波传感器测试距离能到10米,算是目前来说测试距离比较远的一款了,另外还有比较常用的国外的几款SRF系列的超声波模块,目前的超声波模块精度能到1cm
<>工作原理:
超声波测距模块是用来测量距离的一种产品,通过发送和就接收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离。
<>具体使用及代码
1、定义引脚
#include<reg52.h> #include<stdio.h> sbit Trig = P1^0; sbit Echo = P1^1;
2、设定串口波特率
void init_115200() { SCON = 0x50; T2CON |= 0X30; TH1 = 0xFF; TL1 = 0xFD;
RCAP2H = 0XFF; RCAP2L = 0XFD; TR2 = 1; ES = 1; EA = 1; ET0=1; }
3、设定发送时间
void Delay10us() { TMOD |= 0x1; TH0 = 0xFF; TL0 = 0xF6; TR0 = 1; while(!TF0);
TF0 = 0; } void CSB_Rstart() //启动超声波模块,初始化 { Trig=0; Trig=1; Delay10us();
Trig=0; }
4、获取时间和距离
int gettime()//获取时间 { unsigned int time = 0; time = TH0<<8 | TL0;
//TH0*256+TL0 return time; } float CSB_Getdis(unsigned int time) //获取距离 { float
distance; distance = (float)time * 0.0017; TH0=0; TL0=0;//清空计时器· return
distance; } void star() { TH0 = 0; TL0 = 0; TR0 = 1; } void end() { TR0 = 0; }
void CSB_GetOnce() //获取一次超声波测距模块的距离 { CSB_Rstart(); while(!Echo);//当Echo为零时等待
star(); while(Echo);//当Echo为1计数并等待 end(); }
5、将所测距离打印出来
int main() { unsigned int time = 0; float dis; char buf[24]={'\0'};
init_115200(); while(1) { CSB_GetOnce(); time = gettime(); dis =
CSB_Getdis(time); sprintf(buf,"dis=%fcm\r\n",dis); delay(); upt(buf); } return
0; }
打印函数
void shuchu(char c) { SBUF = c; while(TI==0); TI = 0; } void upt(char *p) {
while(*p != '\0'){ shuchu(*p); p++; } }
延时函数
void delay() { int i; int j; for(i=0;i<100;i++) for(j = 0;j<2000;j++); }