超声波传感器C程序HC-SR04

超声波传感器C程序HC-SR04
超声波传感器C程序HC-SR04

#include

#define uchar unsigned char

#define uint unsigned int

//

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

//

void delay_20us()

{

uchar a ;

for(a=0;a<100;a++);

}

//******************************************** *******************

//显示数据转换程序

void display(uint temp)

{

uchar ge,shi,bai;

bai=temp/100;

shi=(temp%100)/10; ge=temp%10;

wela=1;

P0=0xf7;

wela=0;

dula=1;

P0=table[bai];

dula=0;

delay(1);

dula=1;

P0=0x00; //关位码 dula=0;

wela=1;

P0=0xef;

wela=0;

dula=1;

P0=table[shi];

dula=0;

delay(1);

dula=1;

P0=0x00; //关位码

dula=0;

dula=1;

P0=table[ge];

dula=0;

wela=1;

P0=0xdf;

wela=0;

delay(1);

dula=1;

P0=0x00; //关位码

dula=0;

}

//******************************************** *******************

void main()

{

uint distance;

test =0;

Trig=0; //首先拉低脉冲输入引脚

EA=1; //打开总中断0

TMOD=0x10; //定时器1,16位工作方式

while(1)

{

EA=0; //关总中断

Trig=1; //超声波输入端

delay_20us(); //延时20us

Trig=0; //产生一个20us的脉冲 while(Echo==0); //等待Echo回波引脚变高电平

succeed_flag=0; //清测量成功标志

EA=1;

EX0=1; //打开外部中断0

TH1=0; //定时器1清零

TL1=0; //定时器1清零

TF1=0; //计数溢出标志

TR1=1; //启动定时器1

delay(20); //等待测量的结果

TR1=0; //关闭定时器1

EX0=0; //关闭外部中断0

if(succeed_flag==1)

{

time=timeH*256+timeL;

distance=time*0.172; //厘米

display(distance);

}

if(succeed_flag==0)

{

distance=0; //没有回波则清零

test = !test; //测试灯变化

}

}

}

//******************************************** *******************

//外部中断0,用做判断回波电平

void exter() interrupt 0 // 外部中断0是0号

{

timeH =TH1; //取出定时器的值

timeL =TL1; //取出定时器的值

succeed_flag=1;//至成功测量的标志

EX0=0; //关闭外部中断

}

//******************************************** ********************

//定时器1中断,用做超声波测距计时

void timer1() interrupt 3 //

{

TH1=0;

TL1=0;

}

超声波传感器测距原理

芀一、超声波测距原理 肅超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的 同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差△t ,就可以计算出发射点距障碍物的距离S , 即: 膂S = v·△t /2 ① 芀这就是所谓的时间差测距法。 蝿由于超声波也是一种声波, 其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0. 6 米/ 秒。如果测距精度要求很高, 则应通过温度补偿的方法加以校正(本系统正是采用了温度补偿的方法)。已知现场环境温度T 时, 超声波传播速度V 的计算公式为: 螅V = 331.45 + 0.607T ② 芄 声 速 确 定

后, 只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。 薂二、系统硬件电路设计 腿图2 超声波测距仪系统框图 蒆基于单片机的超声波测距仪框图如图 2 所示。该系统由单片机定时器产生 40KHZ 的频率信号、超声波传感器、接收处理电路和显示电路等构成。单片机 是整个系统的核心部件,它协调和控制各部分电路的工作。工作过程:开机,单 片机复位,然后控制程序使单片机输出载波为40kHz 的10 个脉冲信号加到超声 波传感器上,使超声波发射器发射超声波。当第一个超声波脉冲群发射结束后, 单片机片内计数器开始计数,在检测到第一个回波脉冲的瞬间,计数器停止计数, 这样就得到了从发射到接收的时间差△t;根据公式①、②计算出被测距离,由显示装置显示出来。下面分别介绍各部分电路: 莅1 、超声波发射电路 螀超声波发射电路如图3所示,89C51 通过外部引脚P1.0 输出脉冲宽度为250 μ s , 40kHz 的10 个脉冲串通过超声波驱动电路以推挽方式加到超声波传感器而发 射出超声波。由于超声波的传播距离与它的振幅成正比,为了使测距范围足够远, 可对振荡信号进行功率放大后再加在超声波传感器上。 薈图3中T为超声波传感器,是超声波测距系统中的重要器件。利用逆压电效应 将加在其上的电信号转换为超声机械波向外辐射; 利用压电效应可以将作用在它 上面的机械振动转换为相应的电信号, 从而起到能量转换的作用。市售的超声 波传感器有专用型和兼用型,专用型就是发送器用作发送超声波,接收器用作接

超声波测距传感器(硬件件篇)

自制一个由你掌控的 —— 超声波测距传感器(硬件篇) 一、背景 四年多前,我曾尝试自己制作一个超声波测距传感器。 当时是想为 LEGO 的 RCX 配套,因为我是Semia 的技术支持,那时RCX 还没有配置任何测距传感器。由于可查阅的资料有限,且不详细,最后以失败告终 /(也许在网络搜索上我属于“菜鸟”)。 为了达到目的,只好选用了 Sharp 公司的 GP2D12。但自制超声波测距传感器的愿望一直没被遗忘。一是觉得超声波用于测距从原理上讲应该效果不错(GP2D12的测距范围太小,只有 10 — 80 cm);二是市售成品不够灵活,为了适应它还得做转换接口,费力耗财。 前段时间协助一个单位搞项目,涉及到超声波测距;有幸的是解剖了一款进口的超声波测距传感器 —— SensComp公司的6500,使我对相关原理和技术有了比较透彻的了解。 本想项目结束后立刻动手设计一个自己的传感器,后因忙于“圆梦小车”耽搁了。 现在圆梦小车已初具雏形,可以腾出一点时间,而且小车也需要一些传感器与之配套,便着手实现了这个夙愿。

基于嵌入之梦工作室的宗旨 —— 为学习单片机的大学生服务,将设计和制作的细节与大家分享,希望能有助于读者做出属于你自己的超声波传感器,也让和我有类似想法的人不至于再次失望于网络。 二、需求分析 ?能在测距范围上弥补 GP2D12 的不足,将距离延伸到 80cm以外; ?可以提供给大学生和爱好者 DIY,具有学习功能; ?方便自己随时修改程序,使学习的作用得以充分发挥; ?成品具有一定的使用价值,可方便的应用于小车等需要测距的装置上。 三、概要设计 总体设计参照 SensComp公司(https://www.360docs.net/doc/a07523166.html,)6500测距模块,其核心是两片专用的超声波测距IC:TL851和TL852。 TL852是一片专门设计用于超声波接收、放大、检测的芯片,集成了可变增益、选频放大器,可通过四根控制线变换11级增益,对于检测超声波信号十分有效。 TL851 与TL852 配套,它可实现超声波发射及控制TL852的增益变换,通过定时控制增益,使TL852的增益与回波时间相匹配,一方面提高了检测的灵敏度,同时减小了干扰。 如果不能随时间变换增益,为增加检测距离,就需要加大灵敏度;而开始时灵敏度就很高,无疑会收到一些不想要的信号。(6500测距模块的相关资料及芯片资料见附件) 解剖此模块时,对TL852的功能十分感兴趣,当初我制作时就是“栽”在这个环节;而TL851的功能基本属数字控制范畴,输出还需要配合单片机才能得到结果,接口也不是十分灵活,笔者认为完全可以用单片机替代。 所以,本次设计的主要改变就是用单片机替换6500模块的TL851。 单片机还是选用圆梦小车所用的STC12系列,一是考虑是51兼容,符合国内多数教材;二是下载程序方便。此次选用的是 STC12LE4052(4K FlashROM,256 RAM)。考虑体积因素,选择了SOP20封装。

霍尔传感器位移特性实验

实验14 直流激励时霍尔传感器位移特性实验 141270046 自动化杨蕾生 一、实验目的: 了解直流激励时霍尔式传感器的特性。 二、基本原理: 根据霍尔效应,霍尔电势U H=K H IB,当霍尔元件处在梯度磁场中运动时,它的电势会发生变化,利用这一性质可以进行位移测量。 三、需用器件与单元: 主机箱、霍尔传感器实验模板、霍尔传感器、测微头、数显单元。 四、实验步骤: 1、霍尔传感器和测微头的安装、使用参阅实验九。按图14示意图接线(实验模板的输出V o1接主机箱电压表Vin),将主机箱上的电压表量程(显示选择)开关打到2V档。 2、检查接线无误后,开启电源,调节测微头使霍尔片大致在磁铁中间位置,再调节Rw1使数显表指示为零。 3、以某个方向调节测微头2mm位移,记录电压表读数作为实验起始点;再反方向调节测微头每增加0.2mm记下一个读数,将读数填入表14。

作出V-X曲线,计算不同线性范围时的灵敏度和非线性误差。 五、实验注意事项: 1、对传感器要轻拿轻放,绝不可掉到地上。 2、不要将霍尔传感器的激励电压错接成±15V,否则将可能烧毁霍尔元件。 六、思考题: 本实验中霍尔元件位移的线性度实际上反映的是什么量的变化? 答:本人认为应该是实际的输入、输出与拟合的理想的直线的偏离程度的变化,当X不同的时候,实际的输出值与根据拟合直线得到的数值的偏离值是不相同的。 七、实验报告要求: 1、整理实验数据,根据所得得实验数据做出传感器的特性曲线。 实验数据如下: 表9-2

(1)由上图可知灵敏度为S=ΔV/ΔX=-0.9354V/mm (2)由上图可得非线性误差: 当x=1mm时, Y=-0.9354×1+1.849=0.9136 Δm =Y-0.89=0.0236V yFS=1.88V δf =Δm /yFS×100%=1.256% 当x=3mm时: Y=-0.9354×3+1.849=-0.9572V Δm =Y-(-0.94)=-0.0172V yFS=1.88V δf =Δm /yFS×100%=0.915% 2、归纳总结霍尔元件的误差主要有哪几种,各自的产生原因是什么,应怎样进 行补偿。 答:(1)零位误差。零位误差由不等位电势所造成,产生不等位电势的主要原因是:两个霍尔电极没有安装在同一等位面上;材料不均匀造成电阻分布不均匀;控制电极接触不良,造成电流分布不均匀。补偿方法是加一不等位电势补偿电路。 (2)温度误差。因为半导体对温度很敏感,因而其霍尔系数、电阻率、霍尔电势的输入、输出电阻等均随温度有明显的变化,导致了霍尔元件产生温度误差。补偿方法是采用恒流源供电和输入回路并联电阻。

51单片机超声波测距程序

//晶振:11.0592 //TRIG:P1.2 ECH0:P1.1 //波特率:9600 #include #include #include #define uchar unsigned char #define uint unsigned int sbit RX=P0^2; sbit TX=P0^3; unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0; void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; //算出来是CM if(flag==1) //超出测量 { flag=0; printf("-----\n"); } printf("S=%f\n",S); } void delayms(unsigned int ms) { unsigned char i=100,j; for(;ms;ms--) { while(--i)

{ j=10; while(--j); } } } void zd0() interrupt 1 //T0中断用来计数器溢出,超出测距范围{ flag=1; //中断溢出标志 } void StartModule() //T1中断用来扫描数码管和计800ms启动模块{ TX=1; //800MS启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; } void main(void) { TMOD=0x21; //设T0为方式1,GATE=1; SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0;

实验十九 开关式霍尔传感器测转速实验

实验十九开关式霍尔传感器测转速实验 一、实验目的:了解开关式霍尔传感器测转速的应用。 二、基本原理:开关式霍尔传感器是线性霍尔元件的输出信号经放大器放大,再经施密特电路整形成矩形波(开关信号)输出的传感器。开关式霍尔传感器测转速的原理框图19—1所示。当被测圆盘上装上6只磁性体时,圆盘每转一周磁场就变化6次,开关式霍尔传感器就同频率f相应变化输出,再经转速表显示转速n。 图19—1开关式霍尔传感器测转速原理框图 三、需用器件与单元:主机箱中的转速调节0~24V直流稳压电源、+5V直流稳压电源、电压表、频率\转速表;霍尔转速传感器、转动源。 四、实验步骤: 1、根据图19—2将霍尔转速传感器安装于霍尔架上,传感器的端面对准转盘上的磁钢并调节升降杆使传感器端面与磁钢之间的间隙大约为2~3mm。 2、将主机箱中的转速调节电源0~24V旋钮调到最小(逆时针方向转到底)后接入电压表(电压表量程切换开关打到20V档);其它接线按图19—2所示连接(注意霍尔转速传感器的三根引线的序号);将频频\转速表的开关按到转速档。 3、检查接线无误后合上主机箱电源开关,在小于12V范围内(电压表监测)调节主机箱的转速调节电源(调节电压改变直流电机电枢电压),观察电机转动及转速表的显示情况。

图19—2 霍尔转速传感器实验安装、接线示意图 4、从2V开始记录每增加1V相应电机转速的数据(待电机转速比较稳定后读取数据);画出电机的V-n(电机电枢电压与电机转速的关系)特性曲线。实验完毕,关闭电源。 n(转/ 406286108132157179203225250分) V(mv)2003004635006017037999019991104 电机的V-n(电机电枢电压与电机转速的关系)特性曲线 五、思考题: 利用开关式霍尔传感器测转速时被测对象要满足什么条件? 被测物能够阻挡或透过或反射霍尔信号,般都是一个发射头一个接收头若发射接收安装在同侧,则被测物必须能反射该信号,发射接收安装在对侧,则被测物必须能阻挡透过该信

超声波测距程序(详细C语言数码管显示)

超声波测距程序(详细C语言数码管显示) #include //头文件 #include// _nop_() 函数延时1US用 #include #include #define uchar unsigned char #define uint unsigned int #define nop _nop_() sbit csb=P1^0;//超声波发送端口为P1.0 sbit bai=P2^2;//数码管百位 sbit shi=P2^1;//数码管十位 sbit ge=P2^0;//数码管个位 uchar flag;//超声波接收标志 float juli1;//距离变量,用来数码管显示用 int juli; uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管0到9的代码 int xianshi[3]; void delayshow(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void ledshow(void) { xianshi[0]=juli/100; xianshi[1]=((juli%100)/10); xianshi[2]=juli%10; bai=0; P0=table[xianshi[0]]; delayshow(2); bai=1; delayshow(2); shi=0; P0=table[xianshi[1]]; delayshow(2); shi=1;

超声波传感器及其测距原理

安全避障是移动机器人研究的一个基本问题。障碍物与机器人之间距离的获得是研究安全避障的前提,超声波传感器以其信息处理简单、价格低廉、硬件容易实现等优点,被广泛用作测距传感器。本超声波测距系统选用了SensComp公司生产的Polaroid 6500系列超声波距离模块和600系列传感器,微处理器采用了ATMEL公司的AT89C51。本文对此超声波测距系统进行了详细的分析与介绍。 1、超声波传感器及其测距原理 超声波是指频率高于20KHz的机械波[1]。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应[1]的原理将电能和超声波相互转 化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。 超声波测距的原理一般采用渡越时间法TOF(time of flight)[2]。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的

声源与障碍物之间的距离,即 1、硬件电路设计 我们设计的超声波测距系统由Polaroid 600系列传感器、Polaroid 6500系列超声波距离模块和AT89C51单片机构成。 2.1 Polaroid 600系列传感器 此超声波传感器是集发送与接收一体的一种传感器。传感器里面有一个圆形的薄片,薄片的材料是塑料,在其正面涂了一层金属薄膜,在其背面有一个铝制的后板。薄片和后板构成了一个电容器,当给薄片加上频率为49.4kHz、电压为300VAC pk-pk的方波电压时,薄片以同样的频率震动,从而产生频率为49.4kHz的超声波。当接收回波时,Polaroid 6500内有一个调谐电路,使得只有频率接近49.4kHz的信号才能被接收,而其它频率的信号则被过滤。 Polaroid 600超声传感器发送的超声波具有角度为30度的波束角[3],如图1所示:

霍尔传感器制作实训报告

佛山职业技术学院实训报告 课程名称传感器及应用 报告内容霍尔传感器制作与调试专业电气自动化技术 班级08152 姓名陈红杰 学号31 二0一0年六月 佛山职业技术学院

《传感器及应用》 霍尔传感器制作实训报告 班级 08152 学号 31 姓名陈红杰时间2009-2010第二学期 指导老师张教雄谢应然 项目名称霍尔传感器电路制作与 调试 一、实验目的与要求: 1.对霍尔传感器的实物(电路部分)进行一个基本的了解。 2.了解双层PCB板以及一定(霍尔传感器)的焊接排版的技术和工艺。 二、实验仪器、设备与材料: 1.认识霍尔传感器(电路部分)的元件(附图如下): 2.焊接电路PCB板(双层)和对电路设计的排版工艺的了解。 3.对霍尔传感器的电路原理图进行基本的分析(附图如下):

霍尔传感器原理图: 霍尔开关电路(霍尔数字电路),由三 端7812稳压器,霍尔片差分放大器THS119, 三端可调分流稳压器TL431及双路JFET的输 入运放TL082和输出级组成。在外磁场的作 用下,当感应强度超过导通阀值时,霍尔电路 输出管导通,输出低电平 TL082是一通用的J-FET双运用算放大 器,其特点有,较低输入偏置电压和偏移电 流,输出没有短路保护,输入级具有较高的 输入阻抗,内建频率被子偿电路,较高的压 摆率。最大工作电压为18V。TL082是霍尔传 感器的核心处理部位。(CON2接口对应霍尔 元件THS119) 霍尔元件THS119封装图

印刷板: 3211 2 2 12 121 2121 21 21212 1 21 2 1 4321 1234 8 7653213 211 2321 121 2 1212 直流电源输入24V ,由IN4148、三端稳压管7812和TL431(串接一个电阻)构成的稳压支路,得到不同的电压。霍尔元件THS119是采样核心元件,值得一提的是Z2这个稳压元件。在实际运用当中精密稳压集成电路TL431并不一定要用实物,可以用一个NPN 型三极管来串接一个电阻来等效代替。 整个电路的设计运用了闭环温度反馈来实现自我保护。主要的设计是RT1热敏电阻,对电路在工作时的表面温度进行控制。这样的设计能很好的起到一个自我保护。 因为我们知道,霍尔传感器的PCB 板是封装在塑料外壳里,由于电路的工作环境的问题,导致电路几乎没有更好的散热(外壳有些导热)。至此,用到RT1热敏电阻来进行温度控制保护显得非常合理。 三、实验操作(焊接): 1.霍尔传感器PCB 双层印制电路板的焊接。 2.了解电路的元件的安排和电路设计线路的排版。

单片机应用_超声波测距器

单片机课程设计 一、需求分析: 超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。要求测量围在1m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。 本文旨在设计一种能对中近距离障碍物进行实时测量的测距装置,它能对障碍物进行适时、适量的测量,起到智能操作,实时监控的作用。 关键词单片机AT82S51 超声波传感器测量距离 二、硬件设计方案 设计思路 超声波传感器及其测距原理 超声波是指频率高于20KHz的机械波。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。

超声波测距的原理一般采用渡越时间法TOF(time of flight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离 测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为340米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。 由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。 超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。 根据设计要求并综合各方面因素,可以采用AT89S51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如下图所示: 超声波测距器系统设计框图 主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。采用AT89S51来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。

高精度超声波测距系统设计

高精度超声波测距系统设计。 引言 利用超声波测量距离的原理可简单描述为:超声波定期发送超声波,遭遇障碍物时发生反射,发射波经由接收器接收并转化为电信号,这样测距技术只要测出发送和接收的时间差, 然后按照下式计算,即可求出距离: 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求, 因此,广泛应用于倒车提醒、建筑工地、工业现场等的距离测量。目前的测距量程上能达到百米数量级,测量的精度往往能达到厘米数量级。本文在分析现有超声波测距技术基础之上, 给出了一种改进方案,测量精度可达毫米级。 2 系统方案分析与论证 2.1 影响精度的因素分析 根据超声波测距式(1)可知测距的误差主要是由超声波的传播速度误差和测量距离传播 的时间误差引起的。 对于时间误差主要由发送计时点和接收计时点准确性确定,为了能够提高计时点选择的准确性,本文提出了对发射信号和加收信号通过校正的方式来实现准确计时。此外,当要求测距误差小于 1 mm时,假定超声波速度C=344 m/s(20℃室温),忽略声速的传播误差。则测距误差s△t<0.000 002 907 s,即2.907 ms。根据以上过计算可知,在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在达到微秒级,就能保证测距误差小于1 mm的误差。使用的12 MHz晶体作时钟基准的89C51单片机定时器能方便的计数到1μs的精度,因此系统采用AT89S51的定一时器能保证时间误差在 1 mm的测量范围内。

超声波测距仪的设计说明

题目:超声波测距仪的设计 超声波测距仪的设计 一、设计目的: 以51单片机为主控制器,利用超声波模块HC-SR04,设计出一套可在数码管上实时显示障碍物距离的超声波测距仪。 通过该设计的制作,更为深入的了解51的工作原理,特别是51的中断系统及定时器/计数器的应用;掌握数码管动态扫描显示的方法和超声波传感器测距的原理及方法,学会搭建51的最小系统及一些简单外围电路(LED显示电路)。从中提高电路的实际设计、焊接、检错、排错能力,并学会仿真及软件调试的基本方法。 二、设计要求: 设计一个超声波测距仪。要求: 1.能在数码管上实时显示障碍物的实际距离; 2.所测距离大于2cm小于300cm,精度2mm。 三、设计器材: STC89C52RC单片机 HC-SR04超声波模块 SM410561D3B四位的共阳数码管 9014三极管(4) 按键(1) 电容(30PF2,10UF1) 排阻(10K),万用板,电烙铁,万用表,5V直流稳压电源,镊子,钳子,

导线及焊锡若干,电阻(200欧5)。 四、设计原理及设计方案: (一)超声波测距原理 超声测距仪是根据超声波遇到障碍物反射回来的特性进行测量的。超声波发射器向某一方向发射超声波,在发射同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即中断停止计时。通过不断检测产生波发射后遇到障碍物所反射的回波,从而测出发射超声波和接收到回波的时间差T,然后求出距离L。基本的测距公式为:L=(△t/2)*C 式中 L——要测的距离 T——发射波和反射波之间的时间间隔 C——超声波在空气中的声速,常温下取为344m/s 声速确定后,只要测出超声波往返的时间,即可求得L。 根据本次设计所要求的测量距离的围及测量精度,我们选用的是HC-SR04超声波测距模块。(如下图所示)。此模块已将发射电路和接收电路集成好了,硬件上不必再自行设计繁复的发射及接收电路,软件上也无需再通过定时器产生40Khz的方波引起压电陶瓷共振从而产生超声波。在使用时,只要在控制端‘Trig’发一个大于15us宽度的高电平,就可以在接收端‘Echo’等待高电平输出。单片机一旦检测到有输出就打开定时器开始计时。 当此口变为低电平时就停止计时并读出定时器的值,此值就为此次测距的时间,再根据传播速度方可算出障碍物的距离。 (二)超声波测距模块HC-SR04简要介绍 HC-SR04超声波测距模块的主要技术参数使用方法如下所述: 1. 主要技术参数: ①使用电压:DC5V ②静态电流:小于2mA ③电平输出:高5V

实验名称用霍尔传感器测定螺线管磁场

实验名称:用霍尔传感器测定螺线管磁场 姓 名 学 号 班 级 桌 号 教 室 基教1108 实验日期 20 年 月 日 时段 同组同学 指导教师 一、实验目的(请先参阅实验教材上《磁场测量》的内容,然后充分阅读实验报告!) 1、验证霍尔传感器输出电势差与螺线管内磁感应强度成正比。 2、测量集成线性霍尔传感器的灵敏度。 3、测量螺线管内磁感应强度与位置之间的关系,求得螺线管均匀磁场范围及边缘的磁感应强度。 4、学习补偿原理在磁场测量中的应用。 二、实验仪器 FD-ICH-II 新型螺线管磁场测定仪,包括:实验主机、螺线管、集成霍尔传感器探测棒、单刀双掷开关、双刀双掷换向开关、、连接导线(4红,4黑)若干组成。其仪器装置如图1所示。 图1 新型螺线管磁场测定仪仪器装置 三、实验原理 把一块半导体薄片(锗片或硅片)放在垂直于它的磁场B 中,如图2所示,当沿AA ′方向(Y 轴方向)通过电流I 时,薄片内定向移动的载流子受到洛伦兹力f B 的作用而发生偏转。从而在DD ′间产生电位差U H ,这一现象称为 ,这个电位差称为 。

由电磁理论可得: U H = (1) 式中,K H = ned 1 称为霍尔元件的灵敏度,n 为载流子浓度,e 为载流子电荷电量,d 为半导体薄片厚度。 虽然从理论上讲霍尔元件在无磁场作用(即B=0)时,U H =0,但实际中,在产生霍尔效应的同时,还伴随着几个副效应,它们分别是 ; ; ; 。所以用数字电压表测时U H 并不为零,这是由于半导体材料结晶不均匀及各电极不对称等引起附加电势差,该电势差U 0称为剩余电压。 随着科技的发展,新的集成化(IC)元件不断被研制成功。本实验采用SS95A 型集成霍尔传感器(结构示意图如图3所示)是一种高灵敏度集成霍尔传感器,它由霍尔元件、放大器和薄膜电阻剩余电压补偿器组成。测量时输出信号大,并且剩余电压的影响已被消除。对SS95A 型集成霍尔传感器,它有三根引线,分别是:“V +”、“V -”、“V out ”。其中“V +”和“V -”构成“电流输入端”,“V out ”和“V -”构成“电压输出端”。由于SS95A 型集成霍尔传感器,它的工作电流已设定,被称为标准工作电流,使用传感器时,必须使工作电流处在该标准状态。在实验时,只要在磁感应强度为零(零磁场)条件下,调节“V +”、“V -”所接的“霍尔片工作电压”调节旋钮,使霍尔片传感器输出电压为2.500V(在数字电压表上显示),则传感器就可处在标准工作状态之下。 图3 95A 型集成霍尔元件内部结构图 图2 霍耳效应原理图

超声波测距C语言源程序代码

超声波测距C语言源程 序代码 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

/*{HZ即单位s的倒数}本晶振为12MHZ,因此外部的时钟频率为12MHZ,所以内部的时钟频率为(12M H Z)/12=1M H 即1000000HZ,而机械频率为1/(1MHZ),即每完成一次计算(即定时器的值加一)用时, 即1us(微秒).*/ /*************************************************************************** ********/ #include<> #define UC unsigned char #define UI unsigned int void delay(UI); sbit BX = P3^0;void TimeConfiguration(); a = 0; b = 0; c = 0; P2 =~ 0x00; goto loop; } time = TL0 + TH0*256; juli = ( int )( (time*/2 ); BAI = ( (juli%1000)/100 ); SHI = ( (juli%100)/10 ); GE = ( juli%10 ); /******************************************两种模式的距离显示 ********************************************/ if(juli > MAX) { Hong = 0; Lv = 1; while( t1-- ) { a = 0; b = 1; c = 1; P2 =~ CharacterCode[BAI]; delay(400); a = 1; b = 0; c = 1; P2 =~ CharacterCode[SHI]; delay(400); a = 1; b = 1; c = 0; P2 =~ CharacterCode[GE]; delay(390);

超声波传感器测量距离

一、超声波测距原理 超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差△t ,就可以计算出发射点距障碍物的距离S ,即: S = v·△t /2 ① 这就是所谓的时间差测距法。 由于超声波也是一种声波, 其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0. 6 米/ 秒。如果测距精度要求很高, 则应通过温度补偿的方法加以校正(本系统正是采用了温度补偿的方法)。已知现场环境温度T 时, 超声波传播速度V 的计算公式为: V = 331.45 + 0.607T ② 声 速 确 定 后, 只 要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。 二、系统硬件电路设计

图2 超声波测距仪系统框图 基于单片机的超声波测距仪框图如图2所示。该系统由单片机定时器产生40KHZ的频率信号、超声波传感器、接收处理电路和显示电路等构成。单片机是整个系统的核心部件,它协调和控制各部分电路的工作。工作过程:开机,单片机复位,然后控制程序使单片机输出载波为40kHz的10个脉冲信号加到超声波传感器上,使超声波发射器发射超声波。当第一个超声波脉冲群发射结束后,单片机片内计数器开始计数,在检测到第一个回波脉冲的瞬间,计数器停止计数,这样就得到了从发射到接收的时间差△t;根据公式①、②计算出被测距离,由显示装置显示出来。下面分别介绍各部分电路: 1 、超声波发射电路 超声波发射电路如图3所示,89C51通过外部引脚P1.0 输出脉冲宽度为250μs , 40kHz的10个脉冲串通过超声波驱动电路以推挽方式加到超声波传感器而发射出超声波。由于超声波的传播距离与它的振幅成正比,为了使测距范围足够远,可对振荡信号进行功率放大后再加在超声波传感器上。 图3中T为超声波传感器,是超声波测距系统中的重要器件。利用逆压电效应将加在其上的电信号转换为超声机械波向外辐射; 利用压电效应可以将作用在它上面的机械振动转换为相应的电信号, 从而起到能量转换的作用。市售的超声

用51单片机实现HC-SR04超声波测距程序

#include //包括一个52标准内核的头文件 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long sbit Trig = P1^0; //产生脉冲引脚 sbit Echo = P3^2; //回波引脚 sbit test = P1^1; //测试用引脚 uchar code SEG7[10]={~0xC0,~0xF9,~0xA4,~0xB0,~0x99,~0x92,~0x82,~0xF8,~0x80,~0x90};//数码管0-9 uint distance[4]; //测距接收缓冲区 uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; //自定义寄存器 bit succeed_flag; //测量成功标志 //********函数声明 void conversion(uint temp_data); void delay_20us(); void main(void) // 主程序 { uint distance_data,a,b; uchar CONT_1; i=0; flag=0; test =0; Trig=0; //首先拉低脉冲输入引脚 TMOD=0x11; //定时器0,定时器1,16位工作方式 TR0=1; //启动定时器0 IT0=0; //由高电平变低电平,触发外部中断 ET0=1; //打开定时器0中断 EX0=0; //关闭外部中断 EA=1; //打开总中断0 while(1) //程序循环 { EA=0; Trig=1; delay_20us(); Trig=0; //产生一个20us的脉冲,在Trig引脚 while(Echo==0); //等待Echo回波引脚变高电平 succeed_flag=0; //清测量成功标志 EX0=1; //打开外部中断 TH1=0; //定时器1清零 TL1=0; //定时器1清零 TF1=0; //

高精度超声波测距系统设计

高精度超声波测距系统设计 引言 利用超声波测量距离的原理可简单描述为:超声波定期发送超声波,遭遇障碍物时发生反射,发射波经由接收器接收并转化为电信号,这样测距技术只要测出发送和接收的时间差,然后按照下式计算,即可求出距离: 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此,广泛应用于倒车提醒、建筑工地、工业现场等的距离测量。目前的测距量程上能达到百米数量级,测量的精度往往能达到厘米数量级。本文在分析现有超声波测距技术基础之上,给出了一种改进方案,测量精度可达毫米级。 2 系统方案分析与论证 2.1 影响精度的因素分析 根据超声波测距式(1)可知测距的误差主要是由超声波的传播速度误差和测量距离传播的时间误差引起的。 对于时间误差主要由发送计时点和接收计时点准确性确定,为了能够提高计时点选择的准确性,本文提出了对发射信号和加收信号通过校正的方式来实现准确计时。此外,当要求测距误差小于1 mm时,假定超声波速度C=344 m/s(20℃室温),忽略声速的传播误差。则测距误差s△t<0.000 002 907 s,即2.907 ms。根据以上过计算可知,在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在达到微秒级,就能保证测距误差小于1 mm的误差。使用的12 MHz晶体作时钟基准的89C51单片机定时器能方便的计数到1μs的精度,因此系统采用AT89S51的定一时器能保证时间误差在1 mm的测量范围内。

超声波传感器原理及应用

[日期:2007-06-05] 来源:作者:[字体:大中小] 超声波发射原理是把铁磁材料置于交变磁场中,产生机械振动,发射出超声波。 接收原理是当超声波作用在磁致材料上时,使磁滞材料磁场变化,使线圈产生感应电势输出。 超声波传感器原理与应用 2008-04-18 02:40 超声波传感器原理及应用 信息来源:转载https://www.360docs.net/doc/a07523166.html,发布时间:2008-01-02字号:小中大 关键字:超声波传感器 1、遥控开关超声波遥控开关可控制家用电器及照明灯。采用 2、液位指示及控制器由于超声波在空气中有一定的衰减,则发送到液面及从液面反射回来的信号大小与液位有关,液面位置越高,信号越大;液面越低则信号就小。接收到的信号经BG1、BG2放大,经D1、D2整流成直流电压。当4.7KΩ上的电压超过BG3的导通电压时,有电流流过BG3,电流表有指示,电流大小与液面有关。A点与上图A点相连接。当液位低于设置值时,比较器输出为低电平。BG 不导通,若液位升到规定位置,比较器翻转,输出高电平。BG导通,J吸合,可通过电磁阀将输液开关关闭,以达到控制的目的(高位控制)。 超声波传感器 信息来源:https://www.360docs.net/doc/a07523166.html,/ca.htm发布时间:2007-11-27字号:小中大 关键字:超声波传感器传感器压电陶瓷超声传感器超声波距离传感器 超声波传感器的测距系统设计图

信息来源:中国超声波发布时间:2008-03-17字号:小中大 关键字:超声波传感器 安全避障是移动机器人研究的一个基本问题。障碍物与机器人之间距离的获得是研究安全避障的前提,超声波传感器以其信息处理简单、价格低廉、硬件容易实现等优点,被广泛用作测距传感器。本超声波测距系统选用了senscomp公司生产的polaroid6500系列超声波距离模块和600系列传感器,微处理器采用了atmel公司的at89c51。本文对此超声波测距系统进行了详细的分析与介绍。 1、超声波传感器及其测距原理 超声波是指频率高于20khz的机械波[1]。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应[1]的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。 超声波测距的原理一般采用渡越时间法tof(timeofflight)[2]。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离,即 1、硬件电路设计 我们设计的超声波测距系统由polaroid600系列传感器、polaroid6500系列超声波距离模块和at89c51单片机构成。

带温度补偿的超声波测距程序

/**程序:基于HC-SR04得超声波测距系统 *单片机型号:STC90C51612MHz *说明:开始连续进行7次超声波测距,每次测距间隔80ms, *完成后对7次结果排序并将最大得2个数值与最小得2个数值去除,对剩余得 *3个数值取平均值。完成后指示灯灭,输出结果到LCD1602上。测量超出范围则发出报警声、 *使用两个IO端口控制HC-SR04触发信号输入与回响信号输出, *以及一个T0定时器用于时间计数。 * 使用DS18B20测量环境温度,声速公式:V=334。1m/s+Temperature*0、61, *单片机晶振为12Mhz(11、953M),计数时为T=1us *计算公式:S=(334。1m/s+Temperature*0。61)*N*T/2,N为计数值=TH0*256+TL0*/ /*包含头文件*/ #include 〈reg51。h> #include 〈intrins。h> #define Delay4us(){_nop_();_nop_();_nop_();_nop_();} /*宏定义*/ #define uchar unsignedchar?//无符号8位 #define uint?unsigned int//无符号16位 #define ulongunsigned long ?//无符号32位 /*全局变量定义*/ sbit BEEP=P1^5;??//报警测量超出范围 sbit Trig=P3^4; //HC-SR04触发信号输入 sbitEcho=P3^2;?//HC—SR04回响信号输出 float xdataDistanceValue=0。0;?//测量得距离值 float xdata SPEEDSOUND; ??//声速 float xdataXTALTIME; ?//单片机计数周期 uchar xdata stringBuf[6];??//数值转字符串缓冲 //LCD1602提示信息 uchar codePrompts[][16]= { ?{"Measure Distance"}, //测量距离 {"-Out of Range -"}, //超出测量范围 ?{"MAX range400cm "}, //测距最大值400cm {”MIN range 2cm"},?//测距最小值2cm {”"},?//清屏 }; uchar xdata DistanceText[]="Range: ";//测量结果字符串 uchar xdata TemperatureText[]="Temperature:";//测量温度值 /*外部函数声明*/ extern voidLCD_Initialize(); //LCD初始化 extern void LCD_Display_String(uchar*, uchar); externvoid ReadTemperatureFromDS18B20(); extern int xdataCurTempInteger; void DelayMS(uint ms);?//毫秒延时函数 voidDelay20us(); //20微秒延时函数 voidHCSR04_Initialize();//HCSR04初始化 float MeasuringDistance();?//测量距离

相关文档
最新文档