一款串口输出超声波测距模块使用范例
超声波测距模块[串口输出
超声波测距模块[串口输出]【编号】0003【简介】串口输出的超声波测距离之用的电子模块;使用了收发独立的超声波传感器。
低成本的超声波流量计、超声波液位计、雷达液位计、农业机械自动Array化等应用的实用模块。
串口输出的系列产品有两种,(两者在硬件上、软件上都有不同)US-A:测量距离29厘米~3米,精度1厘米。
US-D:测量距离7.5厘米~99厘米,精度0.5厘米。
价格见本文末。
(这是很多集成商客户实际使用的模块,性能稳定,并非仅供学习的实验板)一、产品介绍1.可用作应用系统的测距模块。
因为它是串口TTL电平输出的,而且尺寸小巧3cmx5cm。
可应用在倒车雷达、机器人避障、液位检测、入侵报警、距离测量等产品中。
板上留有安装孔;左右各有一排插针孔,以备插到应用板上。
2.使用了STC公司的C51单片机。
低成本的超声波流量计、超声波液位计、雷达液位计、农业机械自动化等应用的实用模块。
实物图:技术参数:★模块尺寸:33x45mm2(火柴盒大小)★输入电压:DC3.5~5.5V★输出接口定义:(信号输出脚是第3脚TX,可接应用系统单片机的RX引脚)。
★串口传输协议:9600,N,8,1★数据格式:每个距离数据输出占用4个字节。
前两个为固定值0xff,0xaa;后两个为距离值,先是低字节,后是高字节,单位为厘米。
(对于US-D型号产品,数据格式一样,只是单位是0.5厘米。
)★数据传输控制:连续输出,每200ms一次。
(需要使能控制的客户,我们可以提供定制服务)二、产品的调试产品模块拿到手后,如何知道它是否正常工作,是否达到要求的参数。
最简单的方法就是让它将数据显示在电脑上。
连接方法示意图如下:赛先生科技提供了这样的调试软件工具。
你只要找一根RS232转TTL电平的数据线插到电脑的串口上,然后运行本软件工具即可。
软件运行界面如下:此调试程序exe档下载★PC串口接收此超声波模块的示范源代码(VC++工程)点击下载此编程的详细步骤见:/articles/Read.asp? ID=1264★单片机应用系统接收此超声波模块的示范代码(Keil C工程、包含了连接原理图。
HC-SR04超声波测距模块说明书
HC-SR04超声波测距模块◼产品概述HC-SR04是一款升级的超声波测距模块。
新增加UART,IIC及1-WIRE(单总线)功能,模式可以通过外围电阻设置。
2CM超小盲区,4M典型最远测距,2mA超低工作电流。
采用自研超声波测距解调芯片,使其外围更加简洁,工作电压更宽(2.8-5.5V)。
驱动采用扫频技术,减少探头本身一致性对灵敏度的影响。
内部40K驱动频率采用正温度补偿,切合探头中心频率的温度特性,减小温度影响。
外部晶振为外观兼容而放置的晶振,不起任何作用,不焊接晶振的模块价格更有优势。
◼实物图片◼主要特性⚫采用专业解调芯片⚫工作电压:2.8-5.5V⚫工作电流:2mA⚫支持GPIO,UART,IIC及1-WIRE多种接口模式,默认输出模式兼容HC-SR04⚫2CM盲区,4M典型最远测距⚫200mS周期⚫可配置各种颜色及加固型探头◼典型应用⚫玩具,机器人避障⚫液位,水位测量⚫坐姿检测⚫其它测距应用◼性能参数◼GPIO/UART/IIC/1-WIRE模式选择◼测量操作一:GPIO模式工作模式同HC-SR04。
外部MCU给模块Trig脚一个大于10uS的高电平脉冲;模块会给出一个与距离等比的高电平脉冲信号,可根据脉宽时间“T”算出:距离=T*C/2(C为声速)声速温度公式:c=(331.45+0.61t/℃)m•s-1(其中330.45是在0℃)0℃声速:330.45M/S20℃声速:342.62M/S40℃声速:354.85M/S0℃-40℃声速误差7左右。
实际应用,如果需要精确距离值,必需要考虑温度影响,做温度补偿。
如有需要,可关注我司带温补单芯片RCWL-9700。
二:UART模式UART模式波特率设置:9600N1命令返回值说明0XA0BYTE_HBYTE_MBYTE_L 输出距离为:((BYTE_H<<16)+(BYTE_M<<8)+BYTE_L)/1000单位mm0XF1公司及版本信息连接串口。
HC-SR04超声波测距模块
HC-SR04超声波测距模块之阳早格格创做
1、本模块本能宁静,测度距离透彻.能战海中的
SRF05,SRF02等超声波测距模块相媲好.模块下粗度,盲区(2cm)超近,宁静的测距是此产品乐成走背商场的有力根据!
2主要技能参数: 1:使用电压:DC5V 2:固态电流:小于2mA 3:电仄输出:下5V 4:电仄输出:底0V 5:感触角度:没有大于15度 6:探测距离:2cm-450cm
交线办法,VCC、trig(统造端)、 echo(交支端)、GND
3模块处事本理:
(1)采与IO触收测距,给起码10us的下电仄旗号;
(2)模块自动收支8个40khz的圆波,自动检测是可有旗号返回;
(3)有旗号返回,通过IO输出一下电仄,下电仄持绝的时间便是
超声波从收射到返回的时间.尝试距离=(下电通常间*声速(340M/S))/2;
本模块可提供齐套测距步调:C51,PIC18F877,超声波LCD1602隐现,超声波LCD12864隐现,数码管隐现,串心隐现等,测距参照步调.
供以下齐套资料
超声波模块本理图:。
URM04超声波测距模块
URM04 超声波测距模块说明性能描述1.工作电源:+5V2.工作电流:<20mA3.工作温度范围:-10℃~+70℃4.超声波距离测量:最大测量距离―500cm最小测量距离―4cm分辨率-1cm5.模块使用RS485总线通讯,编写通讯程序非常的便捷。
6.模块内带温度补偿电路提高测量的精度。
7.模块重量:约30g模块测量角度模块角度60度功能描述正面图图1 URM04超声波测距模块管脚1: +5V 电源+5V输入2: GND 电源地3: A RS485总线A(正)4: B RS485总线B (负)通讯协议模块波特率 115200BPS,无奇偶效验,一位停止位。
出厂的模块地址可以进行重新编址,以适应组网需要。
注意这时RS485总线只能连接一只待编程的模块。
发送通用的编址命令,将地址ADD参数设置到模块,ADD地址范围0到128。
模块返回操作标志。
设置成功S返回0X01,设置失败无返回。
2.启动超声波测量0XFF本指令读取一次环境温度,温度高字节的高4位代表温度正负,当高4位都是1时说明是负温度,当高4位都是0时是正温度,除去温度高字节的高4位后是12位的温度。
分辨率0.1度,每个数字代表0.1摄氏度。
当测量无效时返回的温度高位和低位数据都是0xff。
55 aa ab 01 55 11 11 返回 55 AA 11 01 55 01 67 设置为地址0X1155 aa 11 00 01 11 返回 55 AA 11 02 01 00 04 17 读取地址为0X11的模块距离55 aa 11 00 02 12 返回 55 AA 11 02 02 01 06 1B 读取地址为0X01的模块温度。
参数可调节超声波测距模块说明
超声波测距模块该超声波测距模块采用AVR的ATMEGA8单片机作处理器,模块的工作电压为:DC4.5-5V;测量距离范围为:5cm~150cm,测量结果由三位数码管直接显示出来,当测量超过上限值150cm收不到回波时显示“C C C”, 测量低于下限值5cm时显示“- - -”。
模块上设有一输出端口,用于输出报警信号,正常情况下,输出5V高平,当测量结果小于设定的报警值时输出低电平信号。
报警值可通过板上的两个按键开关K1、K2设定,设定值范围5cm~150cm(与测量上限值相配)。
测量可调次数可调,调整范围为:1-20次/秒;测量上限值可调,调整范围5-150cm;工作环境温度通过按键开关设定,可实现手工温度补偿会修正测量结果,温度范围0-40度。
以上所有设定好的值存于单片机内的EEPROM中,断电后数值不会消失。
模块尺寸:68mm× 30 mm。
一、 各参数设定1、各参数设定顺序为:环境温度、测量次数、测量上限、报警值、保存设定参数。
2、K1为功能键,K2为定值调整。
3、设定方法:模块接通工作电源处于工作状态后,点动功能键K1,显示值显示字符,之后转入显示当前定值,现次点动K1键,闪动显示的位数为当前要调整的值,按动K2进行定值设定,设定好一位后,点动K1设定下一位。
3、设定定值的流程:环境温度、测量次数、测量上限、报警值、保存设定参数。
工作状态→K1→显示“t C”环境温度→K1→K1→K2设定十位数→K1→K2设定个位数→K1→显示“C S”测量次数 → K1→K1→K2设定十位数→K1→K2设定个位数→K1→显示“HHH”测量上限→ K2设定百位数→K1→ K2设定十位数→K1→K2设定个位数→K1→显示“AAA”报警值→ K2设定百位数→K1→ K2设定十位数→K1→K2设定个位数→K1储存当前定值后,重新进入工作状态。
一款超声波测距模块运用程序
一款超声波测距模块运用程序本模块性能稳定,使用方便,测度距离精确。
能和国外的SRF05,SRF02等超声波测距模块相媲美,且价格实惠,是你采购超声波器件的理想选择。
模块高精度,盲区(2cm)超近,稳定的测距是此产品成功走向市场的有力根据!测量范围在2cm~500cm,测量精度3mm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。
超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于液位、井深、管道长度的测量,用于机器人控制、小车躲避障碍等场合中。
小车上安装此模块配合舵机使用能控制得更方便。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。
因此在移动机器人的研制上也得到了广泛的应用。
模块性能1:使用电压:DC5V;2:静态电流:小于2mA;3:输出信号:电平信号,高电平5V,低电平为0V;4:感应角度:不大于15度;5:探测距离:2cm-500cm6: 高精度:可达0.3cm超声波测距模块工作原理:(1)采用单片机IO触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过echo输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。
用户通过从trig脚输入40kHz的方波信号,即用户从单片机的IO口连续发出高低电平,产生方波,方波的个数一般为10个左右;然后就可以在接收端等待高电平输出,一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,高电平的时间就是此次测距的时间,根据以下公式计算测量距离:测试距离=(高电平时间*声速(340m/s))/2;注意事项1、超声波发射头向外发射60度角的超声束,因此,在探头与被测物体之间不能有其他障碍物。
KS103超声波测距模块说明书
工作电压:3.0V~5.5V 直流电源 工作时瞬间最大电流:10.6mA@5.0V, typical 工作电流:1.6-2.7 mA@5.0V, typical 休眠时最大耗电量:500uA@5.0V, typical (串口模式时不休眠) 功耗:使用纳瓦技术省电,5s 未收到 I2C 控制指令自动进入 uA 级休眠,并可随时被主机 I2C 控
位
I2C
(4)
数据。
Note 4: 这种总线钳制探测方式可以为客户获得更大的探测速度及效率,而不是通过定时器延时或 delay 函数延时每次探测都要至少等
待 65ms。换言之,用户大部分时候仅需要快速知晓 1m 范围内是否有障碍物。具体延时时间应大于表 1 所列各指令的最大探测时间。
如果不希望 SCL 线在探测时被拉低,可以通过发送指令 0xc3 指令,之后断电重启 KS101B/KS103/KS103S 后 SCL 线仍然不会拉低。如果想恢复 I2C 钳制及 SCL 拉低功能,发送
Note 1: 要达到最佳的工作状态推荐使用+5V 电源,低于 5V 的电压将影响测距量程。并且,严禁将 VCC 与 GND 接反,否则可能会
损坏电路。超过 3 秒钟的电路反接将可能导致不可恢复的损坏。
具体连线如下图所示(20 个):
VCC VCC
R1
R2
4.7K
4.7K
VCC SDA SCL GND
I2C 地址
寄存器 2
8 位数据指令
延时等待或查询 SCL
否
线是否为高?
3
是
接收 16 位 I2C 数据
多量程探测 探测指令从 0x01 到 0x2f,数值越大,信号增益越大。指令 0x01 对应量程约 100mm,0x02
HC-SR04超声波测距模块
.超声波测距模块04C-SRH 1、产品特点:2cm-400cm 的非接触式距离感测功能,HC-SR04 超声波测距模块可提供基本工;模块包括超声波发射器、接收器与控制电路。
测距精度可达高到3mm作原理:模块自动发的高电平信号; (2) TRIG 触发测距,给至少 10us (1)采用 IO 口有信号返回,通过 40khz 的方波,自动检测是否有信号返回; (3) 8 送个输出一个高电平,高电平持续的时间就是超声IO 口 ECHO(340M/S))/2;声速=(高电平时间*波从发射到返回的时间。
测试距离、实物图:2VCC 供如右图接线,,GND 为地电5V 源信线,TRIG 触发控制信响号输入,ECHO 回线。
等四支号输出图一实物图3、电气参数HC-SR04超声波模电气参工作电DC 5 V工作电15mA工作频率40Hz....4、超声波时序图:图二、超声波时序图以上时序图表明你只需要提供一个 10uS 以上脉冲触发信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波。
一旦检测到有回波信号则输出回响信号回响信号的脉冲宽度与所测的距离成正比。
由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。
公式:uS/58=厘米或者 uS/148=英寸;或是:距离=高电平时间*声速(340M/S)/2;建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响。
注:1、此模块不宜带电连接,若要带电连接,则先让模块的GND 端先连接,否则会影响模块的正常工作。
2、测距时,被测物体的面积不少于0.5 平方米且平面尽量要求平整,否则影响测量的结果、实物规格:5.。
超声波测距模块使用说明
超声波测距资料超声波测距模块连线:我们将超声波测距模块用红色,绿色两根导线引出,红色线(超声波测距模块电源脚)接5208K实验仪+5V,绿色线(超声波测距模块接地脚)接5208K实验仪GND.打开5208K实验仪电源, 超声波测距模块初始化显示27.将超声波发射接收头对准障碍物,数码管将显示超声波测距模块与障碍物之间的距离。
超声波测距学习板,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
超声波学习板采用AT89S51单片机晶振为12M,单片机用P1.0口输出超声波换能器所需的40K方波信号,利用外中断监测超声波接收电路输出的返回信号,显示电路采用简单的4位共阳LED数码管,段码驱动用74LS244集成电路,位码用S8550三极管驱动。
超声波测距的算法原理: 超声波在空气中传播速度为每秒钟340米(15℃时)。
X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,则距离为340mx0.03S=10.2米。
这就是超声波探头到反射物体之间的距离。
产品性能特点:成品板上自带:超声波收发传感器、接收放大电路、四位LED数码显示、四位按键(四个按钮和蜂鸣器属于功能预留,程序中无定义),电源部分自带整流、滤波、稳压电路,允许交流7~15V或者直流9~16V输入,经过实际测试,测量范围可达27~250厘米,测量精度为1厘米。
下图是超声波测距学习板的元件布局图,以下是部分汇编源程序;/////////////////////////////////////////////////////// ; USE BY :超声波测距器; IC :AT89C51; TEL :; OSCCAL :XT (12M); display :共阳LED显示;/////////////////////////////////////////////////////// ;测距范围7CM-11M,堆栈在4FH以上,20H用于标志;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离;VOUT EQU P1.0 ; 红外脉冲输出端口speak equ p1.1;********************************************;* 中断入口程序 *;********************************************;ORG 0000HLJMP STARTORG 0003HLJMP PINT0ORG 000BHretiORG 0013HRETIORG 001BHLJMP INTT1ORG 0023HRETIORG 002BHRETI;;********************************************;* 主程序 *;********************************************;START: MOV SP,#4FHMOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位)MOV R7,#0BHCLEARDISP: MOV @R0,#00HDJNZ R7,CLEARDISPMOV 20H,#00HMOV TMOD,#11H ;T1为 T0为16位定时器MOV TH0,#00H ;65毫秒初值MOV TL0,#00HMOV TH1,#00HMOV TL1,#00HMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R4,#04H ;超声波肪冲个数控制(为赋值的一半)SETB PX0SETB ET1SETB EASETB TR1 ;开启测距定时器start1: LCALL DISPLAYJNB 00H,START1 ;收到反射信号时标志位为1CLR EALCALL WORK ;计算距离子程序clr EAMOV R2,#32h;#64H ;测量间隔控制(约4*100=400MS)LOOP: LCALL DISPLAYDJNZ R2,LOOPCLR 00Hsetb et0mov th0,00hmov tl0,00hSETB TR1 ;重新开启测距定时器SETB EASJMP Start1;;**************************************************** ;* 中断程序* *;****************************************************;T1中断,发超声波用 ;T1中断,65毫秒中断一次INTT1: CLR EAclr ex0MOV TH0,#00HMOV TL0,#00HMOV TH1,#00HMOV TL1,#00HSETB ET0SETB EASETB TR0 ;启动计数器T0,用以计intt11:CPL VOUT ;40KHZnopnopnopnopnopnopnopnopnopDJNZ R4,intt11;超声波发送完毕,MOV R4,#04Hlcall delay_250 ;延时,避开发射的直达声波信号SETB EX0 ;开启接收回波中断RETIOUT: RETI;外中断0,收到回波时进入PINT0: nopjb p3.2,pint0_exitCLR TR0 ;关计数器CLR EA ;CLR EX0 ;MOV 44H,TL0 ;将计数值移入处理单元MOV 45H,TH0 ;mov th0,#00hmov tl0,#00hjnb p3.2,$SETB 00H ;接收成功标志pint0_exit:RETI;;****************************************************;* 显示程序 *;****************************************************; 40H为最高位,43H为最低位,先扫描高位DISPLAY: MOV R1,#40H;GMOV R5,#7fH;GPLAY: MOV A,R5MOV P0,#0FFHMOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,ALCALL DL1MSINC R1MOV A,R5JNB ACC.4,ENDOUT;GRR AMOV R5,AAJMP PLAYENDOUT: MOV P2,#0FFHMOV P0,#0FFHRET;TAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h, 09h,0ffh ;共阳段码表 "0" "1" "2" "3" "4" "5""6" "7" "8" "9" "不亮""A""-" ;;**************************************************** ;* 延时程序 *;**************************************************** ;DL1MS:push 06hpush 07hMOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1pop 07hpop 06hRET;;**************************************************** ;* 距离计算程序 (=计数值*17/1000cm) *;**************************************************** ;work: PUSH ACCPUSH PSWPUSH BMOV PSW, #18hMOV R3, 45HMOV R2, 44HMOV R1, #00DMOV R0, #17DLCALL MUL2BY2MOV R3, #03HMOV R2, #0E8HLCALL DIV4BY2LCALL DIV4BY2MOV 40H, R4MOV A,40HJNZ JJ0MOV 40H,#0AH ;最高位为零,不点亮JJ0: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #100DLCALL DIV4BY2MOV 41H, R4MOV A,41HJNZ JJ1MOV A,40H ;次高位为0,先看最高位是否为不亮SUBB A,#0AHJNZ JJ1MOV 41H,#0AH ;最高位不亮,次高位也不亮JJ1: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #10DLCALL DIV4BY2MOV 42H, R4MOV A,42HJNZ JJ2MOV A,41H ;次次高位为0,先看次高位是否为不亮SUBB A,#0AHJNZ JJ2MOV 42H,#0AH ;次高位不亮,次次高位也不亮JJ2: MOV 43H, R0POP BPOP PSWPOP ACCRET;;**************************************************** ;* 两字节无符号数乘法程序 *;**************************************************** ; R7R6R5R4 <= R3R2 * R1R0超声波专用发射接收头,有T字样的是发射头,标有R字样的是接收头.。
超声波测距模块使用说明
超声波测距资料超声波测距模块连线:我们将超声波测距模块用红色,绿色两根导线引出,红色线(超声波测距模块电源脚)接5208K实验仪+5V,绿色线(超声波测距模块接地脚)接5208K实验仪GND.打开5208K实验仪电源, 超声波测距模块初始化显示27.将超声波发射接收头对准障碍物,数码管将显示超声波测距模块与障碍物之间的距离。
超声波测距学习板,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
超声波学习板采用AT89S51单片机晶振为12M,单片机用P1.0口输出超声波换能器所需的40K方波信号,利用外中断监测超声波接收电路输出的返回信号,显示电路采用简单的4位共阳LED数码管,段码驱动用74LS244集成电路,位码用S8550三极管驱动。
超声波测距的算法原理: 超声波在空气中传播速度为每秒钟340米(15℃时)。
X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,则距离为340mx0.03S=10.2米。
这就是超声波探头到反射物体之间的距离。
产品性能特点:成品板上自带:超声波收发传感器、接收放大电路、四位LED数码显示、四位按键(四个按钮和蜂鸣器属于功能预留,程序中无定义),电源部分自带整流、滤波、稳压电路,允许交流7~15V或者直流9~16V输入,经过实际测试,测量范围可达27~250厘米,测量精度为1厘米。
下图是超声波测距学习板的元件布局图,以下是部分汇编源程序;/////////////////////////////////////////////////////// ; USE BY :超声波测距器; IC :AT89C51; TEL :; OSCCAL :XT (12M); display :共阳LED显示;/////////////////////////////////////////////////////// ;测距范围7CM-11M,堆栈在4FH以上,20H用于标志;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离;VOUT EQU P1.0 ; 红外脉冲输出端口speak equ p1.1;********************************************;* 中断入口程序 *;********************************************;ORG 0000HLJMP STARTORG 0003HLJMP PINT0ORG 000BHretiORG 0013HRETIORG 001BHLJMP INTT1ORG 0023HRETIORG 002BHRETI;;********************************************;* 主程序 *;********************************************;START: MOV SP,#4FHMOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位)MOV R7,#0BHCLEARDISP: MOV @R0,#00HINC R0DJNZ R7,CLEARDISPMOV 20H,#00HMOV TMOD,#11H ;T1为 T0为16位定时器MOV TH0,#00H ;65毫秒初值MOV TL0,#00HMOV TH1,#00HMOV TL1,#00HMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R4,#04H ;超声波肪冲个数控制(为赋值的一半)SETB PX0SETB ET1SETB EASETB TR1 ;开启测距定时器start1: LCALL DISPLAYJNB 00H,START1 ;收到反射信号时标志位为1CLR EALCALL WORK ;计算距离子程序clr EAMOV R2,#32h;#64H ;测量间隔控制(约4*100=400MS)LOOP: LCALL DISPLAYDJNZ R2,LOOPCLR 00Hsetb et0mov th0,00hmov tl0,00hSETB TR1 ;重新开启测距定时器SETB EASJMP Start1;;**************************************************** ;* 中断程序* *;****************************************************;T1中断,发超声波用 ;T1中断,65毫秒中断一次INTT1: CLR EACLR TR0clr ex0MOV TH0,#00HMOV TL0,#00HMOV TH1,#00HMOV TL1,#00HSETB ET0SETB EASETB TR0 ;启动计数器T0,用以计intt11:CPL VOUT ;40KHZnopnopnopnopnopnopnopnopnopDJNZ R4,intt11;超声波发送完毕,MOV R4,#04Hlcall delay_250 ;延时,避开发射的直达声波信号SETB EX0 ;开启接收回波中断RETIOUT: RETI;外中断0,收到回波时进入PINT0: nopjb p3.2,pint0_exitCLR TR0 ;关计数器CLR EA ;CLR EX0 ;MOV 44H,TL0 ;将计数值移入处理单元MOV 45H,TH0 ;mov th0,#00hmov tl0,#00hjnb p3.2,$SETB 00H ;接收成功标志pint0_exit:RETI;;**************************************************** ;* 显示程序 *;**************************************************** ; 40H为最高位,43H为最低位,先扫描高位DISPLAY: MOV R1,#40H;GMOV R5,#7fH;GPLAY: MOV A,R5MOV P0,#0FFHMOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,ALCALL DL1MSINC R1MOV A,R5JNB ACC.4,ENDOUT;GRR AMOV R5,AAJMP PLAYENDOUT: MOV P2,#0FFHMOV P0,#0FFHRET;TAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h, 09h,0ffh ;共阳段码表 "0" "1" "2" "3" "4" "5""6" "7" "8" "9" "不亮""A""-" ;;****************************************************;* 延时程序 *;****************************************************;DL1MS:push 06hpush 07hMOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1pop 07hpop 06hRET;;****************************************************;* 距离计算程序 (=计数值*17/1000cm) *;****************************************************;work: PUSH ACCPUSH PSWPUSH BMOV PSW, #18hMOV R3, 45HMOV R2, 44HMOV R1, #00DMOV R0, #17DLCALL MUL2BY2MOV R3, #03HMOV R2, #0E8HLCALL DIV4BY2LCALL DIV4BY2MOV 40H, R4MOV A,40HJNZ JJ0MOV 40H,#0AH ;最高位为零,不点亮JJ0: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #100DLCALL DIV4BY2MOV 41H, R4MOV A,41HJNZ JJ1MOV A,40H ;次高位为0,先看最高位是否为不亮SUBB A,#0AHJNZ JJ1MOV 41H,#0AH ;最高位不亮,次高位也不亮JJ1: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #10DLCALL DIV4BY2MOV 42H, R4MOV A,42HJNZ JJ2MOV A,41H ;次次高位为0,先看次高位是否为不亮SUBB A,#0AHJNZ JJ2MOV 42H,#0AH ;次高位不亮,次次高位也不亮JJ2: MOV 43H, R0POP BPOP PSWPOP ACCRET;;****************************************************;* 两字节无符号数乘法程序 *;****************************************************; R7R6R5R4 <= R3R2 * R1R0超声波专用发射接收头,有T字样的是发射头,标有R字样的是接收头。
超声波模块 说明
1、本模块性能稳定,测度距离精确,是目前市面上性价比最高的超声波模块,本模块可实现2cm-4.5m的非接触测距功能,拥有2.4-5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。
2、主要技术参数:1)使用电压:DC5V2)静态电流:小于2mA3)电平输出:高5V低0V4)串口输出:波特率9600,起始位1位,停止位1位,数据位8位,无奇偶校验,无流控制。
5)感应角度:不大于15度6)探测距离:2cm-450cm7)高精度: 0.3cm+1%8)电路板尺寸20*45*1.6mm3.接线方式:VCC、trig(控制端)/TXD,echo/RXD(接收端),GND.4.使用方法:一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了~~5.模块工作原理:只需要在Trig/TX管脚输入一个10US以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。
当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX 管脚输出。
在此模式下,模块将距离值转化为340m/s时的时间值的2倍,通过Echo端输出一高电平,可根据此高电平的持续时间来计算距离值。
即距离值为:(高电平时间*340m/s)/2。
注:因为距离值已经经过温度校正,此时无需再根据环境温度对超声波声速进行校正,即不管温度多少,声速选择340m/s即可。
与Arduino连接接线图Arduino测距界面Arduino测温度界面买就送如下资料已经详细使用说明书,Arduino测试程序,接线图等资料,让你一时间用好本模块。
超声波测距串口输出
超声波测距串口输出超声波测距模块:(1):采用IO口TRIG触发测距,给至少10us的高电平信号;(2):模块自动发送8个40khz的方波,自动检测是否有信号返回;(3):有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2。
超声波测距串口输出程序源代码/*******************超声波测距串口输出********************** 单片机:51单片机* 开发环境:keil* 名称:超声波测距串口输出* 说明:波特率9600注意:用杜邦线将超声波模块的VCC接开发板5V对外供电接口用杜邦线将超声波模块的GND接开发板GND用杜邦线将超声波模块的Trig接单片机的P1.5用杜邦线将超声波模块的Echo接单片机的P1.6/************************包含头文件************************/#include <reg52.h>/**************************宏定义**************************/#define SPEED_30C 3495 //30摄氏度时的声速,声速V=331.5+0.6*温度;#define SPEED_23C 3453 //23摄氏度时的声速,声速V=331.5+0.6*温度;/**************************位定义**************************///FOSC = 11.0592MHz,12T模式,SMOD=0#define reload_count_1200bps 0xe8#define reload_count_2400bps 0xf4#define reload_count_4800bps 0xfa#define reload_count_9600bps 0xfdsbit ECHO = P1^6; //回声接收端口sbit TRIG = P1^5; //超声触发端口sbit BEEP = P2^3; //蜂鸣器/**********************定义变量和数组**********************/long int distance = 0; //距离变量unsigned char count;void Delay5Ms(void);void delay(int In,int Out);unsigned char zifuchuan[]="SSLV WELCOME!"; //待显示字符。
超声波测距模块(hc-sr04)用户手册
超声波测距模块(HC-SR04)
用户手册
版本号:
版本日期:2011-2-27
1.产品特色
产品框图
3.接口定义
4.模块工作原理
5.注意事项
1 产品特色:
1、典型工作用电压:5V。
2、超小静态工作电流:小于2mA。
3、感应角度:不大于15度。
4、探测距离:2cm-400cm
5、高精度:可达0.3cm。
6、盲区(2cm)超近。
7、完全谦容GH-311防盗模块。
8、带金属USB外壳,坚固耐用。
2 产品框图:
3 接口定义:
Vcc、 Trig(控制端)、 Echo(接收端)、 Gnd
本产品使用方法:控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了。
4 模块工作原理:
(1)采用IO触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是
(4)超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;
5注意事项:
1:此模块不宜带电连接,如果要带电连接,则先让模块的Gnd端先连接。
否则会影响模块工作。
2:测距时,被测物体的面积不少于平方米且要尽量平整。
否则会影响测试结果。
超声波测距模块使用说明
1.模块引脚
从左到右(见图)模块引脚分别为
VCC、trig(控制端)、echo(接收端)、out(空脚)、GND
2.主要技术参数:
1:使用电压:DC5V
2:静态电流:小于2mA
3:电平输出:高电平VCC-0.2V 低<0.2V
4:感应角度:不大于15度
5:探测距离:2cm-500cm
6:探测精度:3MM
板上接线方式,VCC、trig(控制端)、echo(接收端)、out(空脚)、GND。
OUT脚为此模块作为防盗模块时的开关量输出脚,测距模块不用此脚!
3.使用方法:
(1)采用IO触发测距,给TRIG至少10us的高电平信号(实际上25US最佳);
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号通过ECHO返回,ECHO输出一高电平,高电平持续的时间就是超声
波从发射到返回的时间.
本产品使用方法简单,用单片机IO口控制TRIG发一个10US以上(25US最佳)
的高电平,就可以在接收口(ECHO)等待高电平输出.当ECHO从低变到高就可以开定时
器计时,当ECHO变为低电平时就可以读定时器的值,此时就为此次测距的时间,据公式
测试距离=(高电平时间*声速(340M/S))/2;
方可算出距离.如此不断的周期测,就可以达到你移动测量的值了!
智能微控工作室。
超声波模块使用说明书
超声波模块使用说明书尊敬的客户:您好!感谢您选用本店的超声波测距模块,为了更快更好的使用本产品,请您仔细的阅读本使用说明书。
一、超声波测距模块简介检测距离:5CM-5M分辨率:5MM数字电平信号,可直接接单片机,无需任何辅助电路,也无需单片机产生任何信号辅助,距离和模块输出信号脉冲长度成正比。
尺寸:43.5*20.5毫米高度:13.8毫米二、超声波测距模块的引脚功能如上图所示:从左到右依次为VCC、控制发射、接收信号(距离信号由此输出)、空脚、GND。
三、测距方式:通过单片机i/o口向模块控制信号接口发送一个>=10US的高电平信号(启动测距功能),等待然后是检测输出信号,输出信号的高电平时间与距离成正比。
然后根据高电平的时间便可计算出距离。
示例程序:///////////////////////////////////////////////////////////////////// ///////////////PIC16F877+DYP-ME007+LCD03example//Written October2005by Gerald Coe,using HITECH PIC16compiler////Note-assumes a20MHz crystal,which is5MHz timer clock//A1:4prescaler is used to give a 1.25MHz timer count(0.8uS per tick)////This code is Freeware-Use it for any purpose you like./////////////////////////////////////////////////////////////////////// //////////#include<pic.h>#include<stdio.h>__CONFIG(0x3b32);#define trig RB0#define echo RB1void clrscn(void);//prototypesvoid cursor(char pos);void print(char*p);void setup(void);unsigned int get_srf04(void);char s[21];//buffer used to hold text to printvoid main(void){unsigned int range;setup();//sets up thePIC16F877I2C portclrscn();//clears the LCD03disply cursor(2);//sets cursor to1st row of LCD03sprintf(s,"SRF04Ranger Test");//text,printed into our bufferprint(s);//send it to the LCD03while(1){//loop foreverrange=get_srf04();//get range from srf04 (round trip flight time in0.8uS units)cursor(24);//sets cursor to2nd row of LCD03sprintf(s,"Range=%dcm",range/72);//convert to cmprint(s);//send it to the LCD03cursor(44);//sets cursor to3rd row of LCD03sprintf(s,"Range=%dinch",range/185);//convert to inchesprint(s);//send it to the LCD03TMR1H=0;//52mS delay-this is so that the SRF04ranging is not too rapidTMR1L=0;//and the previous pulse has faded away before we start the next oneT1CON=0x21;//1:4prescale and runningTMR1IF=0;while(!TMR1IF);//wait for delay timeTMR1ON=0;//stop timer }}unsigned int get_srf04(void){TMR1H=0xff;//prepare timer for10uS pulse TMR1L=-14;T1CON=0x21;//1:4prescale and runningTMR1IF=0;trig=1;//start trigger pulsewhile(!TMR1IF);//wait10uStrig=0;//end trigger pulseTMR1ON=0;//stop timerTMR1H=0;//prepare timer to measure echo pulse TMR1L=0;T1CON=0x20;//1:4prescale but not running yet TMR1IF=0;while(!echo&&!TMR1IF);//wait for echo pulse to start(go high) TMR1ON=1;//start timer to measure pulse while(echo&&!TMR1IF);//wait for echo pulse to stop(go low) TMR1ON=0;//stop timerreturn(TMR1H<<8)+TMR1L;//TMR1H:TMR1L contains flight timeof the pulse in0.8uS units}void clrscn(void){SEN=1;//send start bitwhile(SEN);//and wait for it to clearSSPIF=0;SSPBUF=0xc6;//LCD02I2C addresswhile(!SSPIF);//wait for interruptSSPIF=0;//then clear it.SSPBUF=0;//address of register towrite towhile(!SSPIF);//SSPIF=0;//SSPBUF=12;//clear screenwhile(!SSPIF);//SSPIF=0;//SSPBUF=4;//cursor offwhile(!SSPIF);//SSPIF=0;//PEN=1;//send stop bitwhile(PEN);//}void cursor(char pos){SEN=1;//send start bitwhile(SEN);//and wait for it to clearSSPIF=0;SSPBUF=0xc6;//LCD02I2C addresswhile(!SSPIF);//wait for interruptSSPIF=0;//then clear it.SSPBUF=0;//address of register to write to while(!SSPIF);//SSPIF=0;//SSPBUF=2;//set cursorwhile(!SSPIF);//SSPIF=0;//SSPBUF=pos;//while(!SSPIF);//SSPIF=0;//PEN=1;//send stop bitwhile(PEN);//}void print(char*p){SEN=1;//send start bitwhile(SEN);//and wait for it to clearSSPIF=0;SSPBUF=0xc6;//LCD02I2C addresswhile(!SSPIF);//wait for interruptSSPIF=0;//then clear it.SSPBUF=0;//address of register to write towhile(!SSPIF);//SSPIF=0;//while(*p){SSPBUF=*p++;//write the datawhile(!SSPIF);//SSPIF=0;//}PEN=1;//send stop bitwhile(PEN);//}void setup(void){unsigned long x;TRISB=0xfe;//RB0(trig)is outputPORTB=0xfe;//and starts lowTRISC=0xff;PORTC=0xff;SSPSTAT=0x80;SSPCON=0x38;SSPCON2=0x00;SSPADD=50;//SCL=91khz with20Mhz Oscfor(x=0;x<300000L;x++);//wait for LCD03to initialise}注:只是提供一个编程思路,可能还需要自己动手编程,没有其他程序了。
US-100超声波测距模块RS232底板使用说明
US‐100超声波测距模块RS232底板使用说明1.产品介绍US-100超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。
由于在串口模式下,US-100输出的是TTL电平,要实现与PC机或其他RS232电平的设备通信,需要对其进行电平转换。
RS232底板可实现TTL电平与RS232电平的转换,并且电池盒集成在底板上,US-100超声波模块直接插上RS232底板上便可使用,无需更改线序,如题1.1所示:图1.1:US-100模块RS232底板使用场景注意:在连接前请确保US-100处于串口工作模式,即使用前应插上US-100模块背部的跳线。
2.底板照片及接口RS232底板的正面图如图2.1所示:图2.1:RS232底板正面图图2.2:RS232底板背面图RS232底板自带电池盒,电池盒可装3节5号电池,电池盒通过两个直径为2mm的螺丝固定在底板上。
RS232底板包含三个接口,分别为RS232接口,US-100接口和电源接口,如图2.3所示。
其中RS232可直接连接PC机的串口,US‐100接口上可直接插入US‐100超声波测距模块,电源接口可直接插入电池座的插头,也可以接外部电源,输入电压范围3.0‐5.5V。
图2.3:RS232底板接口说明3.使用说明以串口调试助手为例进行说明。
首先插上US‐100背部的跳线,使之处于串口模式,然后按照图1.1所示连接好,RS232接口连接PC机的串口。
然后上电,此时打开PC机上的串口调试助手,选择连接US‐100所对应的COM口,将波特率设为9600,选择16进制显示和16进制发送。
通过串口调试助手向US‐100发送0X55,可实现测距功能,如图3.1所示。
通过串口调试助手想US‐100发送0X50,可实现测温功能,如图3.2所示。
超声波测距模块(HC-SR04)用户手册
超声波测距模块(HC-SR04用户手册版本号:V1.0版本日期:2011-2-271. 产品特色2. 产品框图3. 接口定义4. 模块工作原理5. 注意事项1产品特色:1、典型工作用电压:5V。
2、超小静态工作电流:小于2mA3、感应角度:不大于15度。
4、探测距离:2cm-400cm5、高精度:可达0.3cm。
6、盲区(2cm)超近。
7、完全谦容GH-311防盗模块。
8、带金属USB外壳,坚固耐用。
2产品框图:⑷超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;3接口定义:Vcc、Trig (控制端)、Echo (接收端)、Gnd本产品使用方法:控制口发一个10US以上的高电平,就可以在接收口等待高电平输出 . 有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了。
4模块工作原理:(1) 采用10触发测距,给至少10us的高电平信号;(2) 模块自动发送8个40khz的方波,自动检测是否有信号返回;(3) 有信号返回,通过IO输出一高电平,高电平持续的时间就是⑷ 超声波从发射到返回的时间.测试距离 =(高电平时间*声速(340M/S))/2; 越声at 时序BB :10uS 的 TTL慰发信号______ 回响电平输出 与检测距离成上匕例圏二、超声波时序图以上时睜图表切你只需要提供一个1OuS 以匕脉冲触发信号,该模块内部将 发出&个4以缶周期电平井检测回波。
一 11检测到仔回波信巧则输出刖响信号口 回响信号的尿冲宽度弓所测的距离成正比“由此通过发射信号到收到的回响信号 时间间隔可以计算得到距离。
公式:uS/58=厘米或者uS/148=英寸;或是*距离 =高电平时间*声速(34OMS) 2:建议测舅周期为60ms W 上.以防止发射信号 对回响倩号的影响&5注意事项:1:此模块不宜带电连接,如果要带电连接,则先让模块的Gnd 端先连接。
超声波测距模块说明
最近做超声波测距,就是简单的测量引脚高电平的时间。
思路是这样的1.使用8MHZ时钟,不分频初始化Timerx_Init(235,1);//8Mhz的计数频率,计数到235为1cm距离2. PA0高电平时,打开定时器,测量时间while(PAin(0)){TIM3->CR1|=0x01; //使能定时器3}TIM3->CR1|=0x00; //关闭定时器3S=temp/2 //测量距离为总路程一半temp=0;//计数值清零3.计数到235时,产生中断,进入中断函数。
执行temp++操作void TIM3_IRQHandler(void){if(TIM3->SR&0X0001)//溢出中断{temp++;}TIM3->SR&=~(1<<0);//清除中断标志位}4.得出距离值S初学定时器,这样测距思路对吗实际测试后,S值一直为0,为什么超声波测距模块说明1.模块引脚从左到右(见图)模块引脚分别为:VCC、trig(控制端)、echo(接收端)、out(空脚)、GND2.主要技术参数:1:使用电压:DC5V2:静态电流:小于2mA3:电平输出:高电平VCC-0.2V 低<0.2V4:感应角度:不大于15 度5:探测距离:0.02m-5m6:探测精度:3mm(既然探测精度精确到毫米,就是说数据可以显示到毫米级,也就是四位数了!)板上接线方式:VCC、trig(控制端)、echo(接收端)、out(空脚)、GND。
OUT 脚为防盗模块时的开关量输出脚,测距模块不用此脚!3.使用方法:(1)采用IO 触发测距,给TRIG 至少10us 的高电平信号(实际上25us 最佳);此处通过IO口给一个高电平就行了。
(2)模块自动发送8 个40khz 的方波,自动检测是否有信号返回;(3)有信号通过ECHO 返回,ECHO 输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.此处用定时器定时看看到底多长时间!这里要检测高电平信号,本产品使用方法简单,用单片机IO 口控制TRIG 发一个10us以上(25us最佳)的高电平,就可以在接收口(ECHO)等待高电平输出.当ECHO 从低变到高就可以开定时器计时,当ECHO 变为低电平时就可以读定时器的值,此时就为此次测距的时间,据公式:测试距离=(高电平时间*声速(340m/s))/2,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了!在程序编写上应该注意的问题:第一个问题:基于SPI通信方式的一片74CH595驱动的四个数码管的显示的实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一款串口输出超声波测距模块使用范例一、模块简介:该串口输出超声波测距模块采用STC11F04E单片机作处理器,工作电源:DC5V,工作电流10mA。
测量数据输出方式为TTL串口输出,数据格式为标准的ASCII码,数据由:空格位(起始位)+百+十位+个位。
工作方式有两种:一是连续测量方式;二是查询测量方式。
测量范围:方式一:5cm~200cm(盲区5cm);方式二:25cm~350cm(盲区25cm)。
测量过程中,当接收不到障碍物反射的回波时,输出“C C C”,当测量低于下限值(在盲区内)时显示“- - -”。
测量结果由模块上的输出端口输出,输出方式为串口(TTL电平)输出。
测量结果可通过电脑进行显示。
模块使用串口通讯可靠性更高,同时可以通过电脑串口采集数据,编写通讯程序非常的便捷。
波特率:1200校验位:无数据位:8停止位:无ASCII码数据格式:空格位(起始位)+百+十位+个位。
二、模块的使用设置下图为模块的背面图片。
图中标有A、B、C短接焊盘是作为设置测量方式用;标有0-7的短路焊盘是设置查询方式下的模块地址用。
方式1:设置为小盲区期测量。
设置方法,标号为B 的焊盘即单片机的P3.5 脚与地断开,这时的测量范围为:5-200;这种方式下,测量盲区值小,适合长时间近距离测量用。
方式2: 设置为远距离测量,这种方式,盲区值相对较大,测量相对较远一些,设置方法:将标号为B的焊盘即单片机的P3.5 脚与地短接,这时的测量范围为:25-350厘米。
方式3:连续方式测量。
将标号为A的焊盘即单片机的P3.4 脚与地断开,这时模块测量方式是连续的进行测量,测量间隔为1-2次/秒,每测量一次,就将测量结果通过串口送出。
方式4:查询方式测量。
将标号为A的焊盘即单片机的P3.4 脚与地短接,这时的测量方式为查询方式测量,即通过控制设备向模块发出一个命令后,模块才测量一次。
查询方式下,每向测距模块发送一次查询命令,模块才进行测量一次,完成测量后即将测量结果通过串口发送出来。
设置成查询方式,模块可多块模块连接在一起组网测量。
查询命令格式:AT+CL=1-255(1-255为模的的地址编码,每个模块的地址编码由模块上单片机P1口与地短接的情况决定,各块模块的编码可独立,由使用者自己设定,设定范围1-255,只在查询方式下有效),数据格式为16进制数据。
三、模块使用为减小本超声波测距模块外形尺寸,该超声波测距元件采用双面安装,全部元件安装在一块长6cm宽2.5cm 的PCB上。
模块可用作应用系统的测距模块。
因为它是串口TTL电平输出的。
可应用在倒车雷达、机器人避障、液位检测、入侵报警、距离测量等产品中。
板上留有安装孔;有一排插针,以备插到应用板上。
对外接口定义:(信号输出脚是第3脚TXD,5V左右的TTL电平,可接应用系统单片机的RXD引脚)。
测试显示程序范例如下:#include ;//头文件#include ;//头文件#define uchar unsigned char//定义变量类型为字符型#define uint unsigned int//定义变量类型为长整型#define LED P0//数码管段码输出端#define LED1 P2_6//数码管位1#define LED2 P2_4//数码管位2#define LED3 P2_5//数码管位3#define sx P2_3//数码管位3uchars,i,pd,jsh,ml[3]={0,0,0},zj,xm0,xm1,xm2,xm3,buffe r[3];//程序中用到的变量ucharconvert[10]={0xA0,0xBD,0x64,0x34,0x39,0x32,0x22,0 xBC,0x20,0x30};//0~9段码单片机端口P0.0-P0.7 分别接数码管的A、B、F、D、E、H、C、G各段void delay(i);//延时函数void scanLED();//显示函数void timeToBuffer();//显示转换函数void offmsd();//百位数为0判断处理模块void main()//主程序{EA=1;//开总中断ES=1;//串口中断允许SCON = 0x50;//串口方式1,允许接收TMOD = 0x21;//定时器1定时方式2 TCON = 0x40;//定时器1开始计数TH1 = 0xF3;//6MHz 1200波特率TL1 = 0xF3;//6MHz 1200波特率TI = 0;//串口发送中断标志置0 RI =0;//串口接收中断标志置0 TR1=1;//启动定时器1sx=0;while(1){timeToBuffer();//调用转换段码功能模块offmsd();//调用百位数为0判断处理模块 scanLED();//调用显示函数}}void delay(i)//延时子程序{while(--i);//延时循环}void scanLED()//显示功能模块{LED=buffer[0];//显示个位数值,个数位数的段码送显示端口LED3=0;//个位数位码,低电平有效,进行显示delay(1);//显示延时,加大该值,显示亮度提高LED3=1;//关闭显示个位数显示delay(20);//关闭显示延时,减小该值时显示亮度提高 LED=buffer[1];//显示十位数值,十数位数的段码送显示端口LED2=0;//十位数位码,低电平有效,进行显示delay(1);//显示延时,加大该值,显示亮度提高LED2=1;//关闭显示十位数显示delay(20);//关闭显示延时,减小该值时显示亮度提高 LED=buffer[2];//显示百位数值,百数位数的段码送显示端口LED1=0;//百位数位码,低电平有效,进行显示delay(1);//显示延时,加大该值,显示亮度提高LED1=1;//关闭显示百位数显示delay(20);//关闭显示延时,减小该值时显示亮度提高}void offmsd()//百位数为0判断处理模块{if (buffer[2]==0xA0)//如果值为零时百位不显示buffer[2] = 0xff;//数码管百位数的段码全部为1,即高电平,百位不显示}void serial() interrupt 4 using 3 //串口中断接收程序{if(RI)//串口接收到数据时串口中断标志位为1{RI=0;//串口中断标志位置0pd=SBUF;//接收到的数据送中间变变量pd储存if(pd==0x20)//判断接收到的数据是否为0x20(这是ASCII码的空格的代码){jsh=0;//接收位数计数器jsh置0pd=0;//中间变变量pd清0}if(jsh==1)//当jsh值为1时,代表串口接收到模块发送回的百位数值{ml[0]=SBUF;//串口接收到模块发送回的百位数值存入ml[0]单元}else if(jsh==2)//当jsh值为2时,代表串口接收到模块发送回的十位数值{ml[1]=SBUF;//串口接收到模块发送回的十位数值存入ml[1]单元}else if(jsh==3)//当jsh值为3时,代表串口接收到模块发送回的个位数值{ml[2]=SBUF;//串口接收到模块发送回的个位数值存入ml[2]单元s=ml[0]*100+ml[1]*10+ml[2];//计算测量得到的距离值s,单位为厘米}jsh++;//接收位数计数器值加1}}void timeToBuffer()//转换段码功能模块{xm0=ml[0]-48;//接到的值为标准的ASCII码,进行十进制转换,百位数的值xm1=ml[1]-48;//接到的值为标准的ASCII码,进行十进制转换,十位数值xm2=ml[2]-48;//接到的值为标准的ASCII码,进行十进制转换,个位数值buffer[0]=convert[xm2];//转换成对应的显示码段buffer[1]=convert[xm1];//转换成对应的显示码段buffer[2]=convert[xm0];//转换成对应的显示码段if ((ml[0]==67)&&(ml[1]==67)) //判断接收到的ASCII码数值为"C",表示模块接收不到回波,这时的显示用"C C C"表示{buffer[0]=0xE2;//显示"C"的段码是0xE2buffer[1]=0xE2;//显示"C"的段码是0xE2buffer[2]=0xE2;//显示"C"的段码是0xE2}else if ((ml[0]==45)&&(ml[1]==45)) //判断接收到的ASCII码数值为"-",表示模块的测量范围在盲区范围内这时的显示用"- - -"表示{buffer[0]=0x7F;//显示"-"的段码是0x7Fbuffer[1]=0x7F;//显示"-"的段码是0x7Fbuffer[2]=0x7F;//显示"-"的段码是0x7F}}。