你好,我前段时间使用了HC-SR04超声波测距仪来测距离,用51单片机控制,LCD1602显示距离,精确到001cm,最大可测400cm。
我把我的程序给你,能做个测距和显示的参考。
若我们使用的是同一型号的超声波测距仪,可以回复我一起讨论。
希望我的回答能帮助到你。
考试说明:本试题2011年主设备厂家优化项目理论测试题,测试时间90分钟,填写答案时要求字体工整,严禁涂改。有问题举手向监考示意,严禁讨论,本试题上不准答题!考完收回!
一、 填空题
1、GSM的功率控制的调整步长 _2__ db,调整的频率为 _500___ ms一次。
2、RSCP单位是 __dbm____ EC/IO单位是: _ d B __ Tx Power单位是:__ dbm ___
3、43dBm+43dBm= _46__ dBm,43dBm+3db= __46 ___dBm
4、W小区搜索过程主要包括:_ 时隙同步________,帧同步和码组识别_____,扰码识别____
5、WCDMA常用电话主扰码共:_512___ 个
6、目前移动有三种声音编码解码功能,即__ EFR(增强型全速率)___ FR(全速率)___________ HR(半速率)____
7、正常小区时间提前量TA的取值范围是从 _0__到 _63__ ,它限制了一个小区的最大覆盖半径是 _35_ Km
8、系统消息的发送方式有两种,一种是:_ BCCH ___ 信道上发送,另一种是在__SACCH___ 信道上发送。
9、若系统消息数据表中、“周期位置更新时限制”设为50,代表实际周期为 _5_ 小时。
10、对于同一位置区中的小区,“附着分离允许”必须设置为:___相同_____
11、功率控制可分为上行功控和下行功控,其中上行功控式控制 __手机 _____ 的功率,下行功控式控制 ___基站 ________的功率。
12、PBGT切换很DTX的中文全称是:__功率预算切换_________ ; __不连续发射______
二、单项选择题 (每题1分,共20分)
1、两台计算机通过以太网口网线直接相连,网线制作室应按照以下哪种方式(A )
A、1和3交叉,2和6交叉 B、1和6交叉,2和3交叉
C、4和5交叉,2和3交叉 D、1和3交叉,4和5交叉
2、WCMDA中基本( C )是所有其他下行物理信道的缺省相位基准
A、DPCH B、CCPCH C、CPICH D、BCH
3、GSM的基本传输数据速率是( A )
A、96kbs B、48kbs C、192kbs D、24kbs
4、从路测中我们看不到什么信息(B )
A、下行接收质量和下行接收质量 B、上行接收质量和上行接收电平 C、跳频状态D、Layer3层信令信息
5、W网中( B )通过动态调整小区CPICH的发射功率来调整小区边界,实现相邻小区负载平衡。
A、软容量 B、小区呼吸 C、接入控制 D、异频切换
6、在手机收到的邻区列表中邻区之间( C )优先级关系
A、存在 B、必须存在 C、不存在 D、不允许存在
7、3GPP R4中定义的Nb接口可以采用( B )承载
A、 IP B、MTP3B C、MTP3 D、SCCP
8、激光测距仪能够调出( C )个测量值
A、5 B、8 C、10 D、15
9、WCDMA网络规划流程中,规模估算根据覆盖容量可以估算基站数量,根据业务需求总量也可以估算基站数量,两者( A )作为规模估算的基站数量
A、取小者 B、取平均数 C、取大者 D、取和数
10、小区选择C1算法跟以下哪个因素有关?( C )
A、Rxlev_min B、MS_TXpwer_Max C、Rxlev_Access_min D、BS_Txpwr_Max
11、假设一个用户在一个小时内分别进行了一个两分钟及一个四分钟的通话,那么他在这一小时内产生了多少话务?( C )
A、10millierlangs B、50millierlangs C、100millierlangs D、200millierlangs
12、天线增益是如何获得的?(B )
A、在天下系统中使用功率放大器 B、使天线的辐射变得更集中 C、使用高频率的天馈线 D、使用低驻波比的设备
13、对于GSM系统,手机在通话过程中每 A ms向网络提供一次测量报告,其中包含了 个TCH复帧
A、480、21 B、480 、4 C、369、21 D、369、4
14、在一个小区中同时存在多个用户进行GPRS上行数据传送,是由哪个参数来控制在一个时间内哪个手机传送?( A )
A、USF B、TFI C、RLC D、TBF
15、在天线安装中,我们要求同一扇区之间的两个天线最小间隔的距离是: 发射天线和接受天线之间去耦合值是 ,发射天线和另一个扇区发射天线的去耦合值是:
A、3m 、20db、30db B、3m 、20db、30db C、5m 、40db、20db D、3m 、20db、40db
16、NBAP信令是( A )接口的信令
A、Iub B、Iur C、Iu D、Uu
17、内环功率的测量值是( C )
A、RSCP B、Ec/Io C、SIR D、BLER
18、PRACH信道采用 ( A )功率控制
A、开环功控 B、内闭环功控 C、外闭环功控 D、不采用
19、UE驻留在W小区,如果系统没有下发参数SsearchRA时,手机将( A )
A、不搜索异系统(GSM)小区 B、一直搜索异系统(GSM)小区 C、有条件搜索异系统(GSM)小区 D、以上都不是
20、在2/3G互 *** 作中,参数Qsearch_1等于6时,表示:( C )
A、UE一直搜索W信号 B、UE从不搜索W信号
C、当服务小区信号低于对应门限时,UE搜索W信号 D、当服务小区信号高于对应门限时,UE搜索W信号
楼主你这里的光电开关又叫光电对管(一个红外发射管和一个基极内接的感光三极管) 因为这是循迹小车我选用rpr220,我以上传电路图
我补充一句光电耦合器原理也类似光电对管只不过把发光管和感光管镶嵌在内部,而且值得注意的是光电耦合器规格只有多少电压的,我没有听说有多少电流的,要用光耦还不如用三极管更直接。其实不推荐使用光耦做驱动,我的电路就是使用l298n驱动12v电机
顺便说一下,电路图里有一个电机接一个电容主要是针对电机调速,而我的电机灵敏度不好,加一个电容起缓冲作用,而l298芯片的电路典型法中没有。
我最近做了个循迹小车结题报告如下。。。
其实是否用光电隔离取决于你驱动的电机的电流大小如果电流不到1安不用光电耦合也行。。。光耦驱动好像不行,不太稳定
测速用码盘的话最好做的越密越好,否则实际运行中轮子会晃动等等很多原因使结果误差很大,因为一般光电开关都会有聚光器,很小的晃动都能感觉到
循迹小车
制作人:李静
摘要:通过制作小车可以加深对单片机控制的熟练程度,同时初步学习项目开发的过程。
小车按照给定的路线行走,有定时,显示运行时间,计时,粗测行走距离等功能。
一、 设计任务:
1、设计要求
(1)自动寻迹小车开始处于设置模式下,通过按键设置运行时间,完成设置时间后,按下开始键小车启动,同时显示当前运行的时间。
(2)小车按指定路线运行,自动区分直线轨道和弯路轨道,在指定弯路处拐弯,实现灵活前进、转弯等功能。
(3)小车行走在预设的时间后,自动停止,数码管显示行走的时间,3秒后显示行走距离。
(4)中途可以按右键强制停止,提前结束,显示行走时间,距离。
2、小车循迹的原理
这里的循迹是指小车在白色地板上循黑线行走,通常采取的方法是红外探测法。
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过3cm。
二、 方案论证:
根据设计要求,本系统主要由控制器模块、电源模块、寻迹传感器模块、直流电机及其驱动模块、电压比较模块等模块构成。
为较好的实现各模块的功能,我们分别设计了几种方案并分别进行了论证。
31车体设计
方案1:购买玩具电动车。购买的玩具电动车具有组装完整的车架车轮、电机及其驱动电路。但是一般的说来,玩具电动车具有如下缺点:首先,这种玩具电动车由于装配紧凑,使得各种所需传感器的安装十分不方便。其次,这种电动车一般都是前轮转向后轮驱动,不能适应该题目的方格地图,不能方便迅速的实现原地保持坐标转90度甚至180度的弯角。再次,玩具电动车的电机多为玩具直流电机,力矩小,空载转速快,负载性能差,不易调速。而且这种电动车一般都价格不菲。因此我们放弃了此方案。
方案2:自己制作电动车。经过反复考虑论证,我们制定了左右两轮分别驱动,前万向轮转向的方案。即左右轮分别用两个转速和力矩基本相同的直流电机进行驱动,车体首部装一个万向轮。由此可以轻松的实现小车坐标不变的90度转弯。
在安装时我们保证两个驱动电机同轴。当小车前进时,左右两驱动轮与前万向轮形成了三点结构。这种结构使得小车在前进时比较平稳,可以避免出现后轮过低而使左右两驱动轮驱动力不够的情况。为了防止小车重心的偏移,前万向轮起支撑作用。
对于车架材料的选择,我们经过比较选择了铝合金。用有铝合金做的车架比塑料车架更加牢固,比铁制小车更轻便,美观。
32控制器模块
方案1:采用stc宏晶公司的stc89c52单片机作为主控制器。stc89c5是一个低功耗,高可靠性,超低价,无法解密,高性能的8位单片机,片内含32k空间的可反复擦写100,000次的Flash只读存储器, 32个IO口,且stc系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试。
从方便使用的角度考虑,我们选择了此方案。
33电源模块
方案1:采用12V蓄电池为直流电机供电,将12V电压降压、稳压后给单片机系统和其他芯片供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。虽然蓄电池的体积过于庞大,在小型电动车上使用极为不方便,但由于我们的车体设计时留出了足够的空间,并且蓄电池的价格比较低。因此我们选择了此方案。
综上考虑,我们选择了此方案。
34稳压模块
方案1:用一个7805直接降压,用大散热片。虽然结构,原理简单,但电流过大,使电路不稳定,容易烧坏稳压块我们放弃了此方案。
方案2:直接用两7805把电压直接稳压到5V,理论上由于降压过大容易烧稳压块,用两个7805并联。但两个稳压块出现馈赠问题,后用修改电路解决此问题,我们最后选择了此方案
35寻迹传感器模块
方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。
但是这种方案受光照影响很大,不能够稳定的工作。因此我们考虑其他更加稳定的方案。
方案2:用RPR220型光电对管。RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。
RPR220采用DIP4封装,其具有如下特点:
塑料透镜可以提高灵敏度。
内置可见光过滤器能减小离散光的影响。
体积小,结构紧凑。
当发光二极管发出的光反射回来时,经过lm339电压比较芯片,通过对门限电压进行比较,输出高低电平,通过调整门限电压可以调整传感器单元的灵敏度。此光电对管调理电路简单,工作性能稳定。
因此我们选择了方案2。
36电机模块
本系统为智能电动车,对于电动车来说,其驱动轮的驱动电机的选择就显得十分重要。由于本实验要实现对路径的准确定位和精确测量,我们综合考虑了一下两种方案。
方案1:采用直流减速电机。直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。
因我们用软件对电机调速,实际值要比这小一些
注意:在实际计算时用的是理论值。
能够较好的满足系统的要求,因此我们选择了此方案。
37电机驱动模块
方案1:采用专用芯片L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动, *** 作方便,稳定性好,性能优良。
方案2:对于直流电机用分立元件构成驱动电路。由分立元件构成电机驱动电路,结构简单,价格低廉,在实际应用中应用广泛。但是这种电路工作性能不够稳定。
因此我们选用了方案1。
三、 分析与计算:
1、传感器模块的设计
因此我们考虑用比较器的方案。
在图中,可调电阻RV1可以调节比较器的门限电压,而且经试验验证给此电路供电的电池的压降较小。因此我们选择此电路作为我们的传感器检测与调理电路。
2、寻迹光电对管的安装
考虑到设计要求,本次设计仅用4对光电传感器就能完成设计要求,采用直线型排列,中间2对传感器用来校正小车的寻迹路线,保证小车运行的直线性。两侧的传感器用来检测小车过线,可以实现小车的转弯。
4、电机驱动电路的设计
我们采用电机驱动芯片L298N作为电机驱动,驱动电路的设计如图7所示:
L298N的5、7、10、12四个引脚接到单片机上,通过对单片机的编程就可以实现两个直流电机的PWM调速以及正反转等功能。这里的二极管作用是释放电机线圈的自感电能
电容c3起缓冲作用,经过试验在调速时下方的电机接收的是一个高脉冲的电流,由于直流电机灵敏性不是很好,我们也考虑用周期长的脉冲,但由于扫描数码管就会慢,数码管就会出现颤动。综合考虑,我们选择接电容起缓冲作用。
4、测量距离设计
我们采用用一个光电对管感应轮子黑白条来算出轮子转动的角度间接测出行走的距离。
在实际中会出现轮子打滑现象,黑白纸带表面不光滑,不平整,轮子轴不牢固,内外摇晃,由于rpr220有聚光器即使非常小的变化都会有反应。通过实际测试传感器发出的信号要比理论大的多,在电池电量过低时,这种现象会更加不准,无规律可循(有时候大,有时候小)。即使在电量足的情况下也有很大误差,超过一定距离,结果已经没有意义,所以我们限定最大估测距离在6米左右,因此此设计为粗测距离。
四、 总电路图及元器件清单
经过反复论证,我们最终确定了如下方案:
(1)车体用铝合金车架手工制作。
(2)采用stc89c52单片机作为主控制器。
(3)用12V蓄电池为直流电机供电,将12V电压经两个7805(带大散热片)并联降压、稳压后为单片机系统和其他芯片供电。
(4)用RPR220型光电对管进行寻迹。
(5)L298N作为直流电机的驱动芯片。
五、 软件实现
31主程序流程图
我们所设计的软件的主程序流程图如图所示:
六、 测试:
七、 创新点
本作品改进了lm339电压比较器接控制门限电压的电阻的方式,没有采用接4个变阻器,用的是统一接一个变阻器,这样方便调整灵敏度。在光电对管传感器电路上也有改变,直接把发射极和集电极接在5V电源上,这样可以使电流更大,试验证明当接通时电流不足以烧坏三极管。
直流并联了电容,电容c3起缓冲作用,经过试验在调速时下方的电机接收的是一个高脉冲的电流,由于直流电机灵敏性不是很好,我们也考虑用周期长的脉冲,但由于扫描数码管也会慢,数码管就会出现颤动,我们同时考虑用时钟中断扫描刷新数码管,但那样使中断频繁发生(大约50ms)而且数码管刷新一次用时也会很长(大约24ms),造成中断过长,那样会大大加大整个循环周期,基本看不到数码管显示连续的数。综合考虑,我们选择接电容起缓冲作用。
八、 心得体会
P0 要想用做io口时必须加上拉电阻,即使用上拉电阻驱动能力也不怎么好。本作品用共阴数码管,驱动电路设计比较复杂,数字不够亮,最好用共阳数码管,加上三极管驱动可能效果会好一些。
由于单片机高频的对数码管进行扫描,在程序设计的时候就要求主程序的周期不能过长,这对于我们小车执行寻迹,调速,定时,计时,测距,转弯等功能的程序要求是非常高的,经过我综合考虑后决定主函数只有刷新数码管和探测黑线的功能剩下的所有功能都用中断处理,同时要求产生的中断时间不能过长。这些就造就了我的程序到目前为止已经有350行的长度。
我们最初设计精确测量距离,但误差不可避免,由于硬件的局限性,尊重事实,我们降低了标准。以后可以在此改进,扩展。
在整个测试阶段我们充分考虑程序功能的连续性和兼容性,由于89c52单片机速度的局限,同时程序需要实时对数码管高速的刷新频率我们不能设计车太高的速度。经过反复测试综合考虑我们采用目前的方案
九、 结束语
我们的寻迹小车在完成设计要求的前提下,充分考虑到了外观、成本等问题,在性能和价格之间作了比较好的平衡。由于设计要求并不复杂,我们没有在电路中增加冗余的功能。
由于作者水平的有限,部分观点存在错误,希望指正,指教,对此表示感谢。
特别感谢:
张洪军老师和实验室老师的指导,及接伟权,张新涛,黄绍军等学长的建议和指教,还有陈振宇,吴旷和全组成员,没有你们就没有我们今天。
2010年5 月
李静
程序片段
/
数码管刷新函数
/
void display(uchar qw,uchar bw,uchar sw,uchar gw)//显示函数
{
P2=0xe0;
P1=tabledu[qw];
delay(6);
P2=0xd0;
P1=tabledu[bw];
delay(6);
P2=0xb0;
P1=tabledu[sw];
delay(6);
P2=0x70;
P1=tabledu[gw];
delay(6);
P2=0x0f;//
}
/
任务初始化函数
/
void init0()任务1初始化函数
{
EA=1;
EX0=1;
EX1=1;
IT1=IT0=1;
P0=0x00;
flag=1;
jishu=0;//
}
void init()//任务2初始化函数
{
EA=1;
TH0=(65536-50000)/256;//初始化加1计数器
TL0=(65536-50000)%256;
ET0=1;
TR0=1;
TH1=(65536-50000)/256;//初始化加1计数器
TL1=(65536-50000)%256;
ET1=1;
TR1=1;
TMOD=0x11;
dsh=(qw10+bw)60;//
jishu=1;//
}
void jiesu()
{
if(flag2==0)
{
flag1=1;
flag2=1;
cnt1=0;
}
ET0=0;
P0=0;
display(qw,bw,sw,gw);
}
hello,读者们好!
前两章,主要讲述了环境参量的测量获取,想必大家都有些许收获。在这一章中,我将介绍如何利用超声波来测距。在现实生活中,利用超声波测距的应用很多,广泛应用于机器人避障 、物体测距 、液位检测 、公共安防、停车场检测等领域。
本次测距使用的超声波为HC-SRO4,该模块共有4个引脚,分别是两个电源引脚VCC和GND,一个触发控制信号输入(TRIG)和一个回响信号输出( ECHO),性能稳定,测度距离精确,模块高精度,盲区小。
那么,超声波模块测距原理是:首先,给Trig引脚至少10us的高电平信号,检测Echo是否有信号返回,若有信号返回,则Echo发出高电平。高电平持续的时间就是超声波从发射到返回的时间,所以测试距离为(高电平时间声速)/2。下面,就是超声波模块的时序图。
本模块使用方法简单,配合stm32的定时器TIM4,一个控制口发一个10us以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器TIM4计时,当此口变为低电平时就可以读定时器TIM4的值,此时就为此次测距的时间,方可算出距离。如此不断的周期测,即可以达到你移动测量的值。
(1)配置超声波的引脚
/初始化超声波引脚:Trig:PB0,Echo:PB1/
void ultra_gpio_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/使能GPIO的RCC时钟/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
/配置Trig引脚/
GPIO_InitStructureGPIO_Pin = GPIO_Pin_0;
GPIO_InitStructureGPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructureGPIO_Mode = GPIO_Mode_Out_PP;//Trig
GPIO_Init(GPIOB,&GPIO_InitStructure);
/配置Echo引脚/
GPIO_InitStructureGPIO_Pin = GPIO_Pin_1;
GPIO_InitStructureGPIO_Mode = GPIO_Mode_IN_FLOATING;//Echo
GPIO_Init(GPIOB,&GPIO_InitStructure);
}
由于PB0接超声波Trig引脚,所以选择推挽输出模式,PB1接超声波Echo引脚,所以选择浮空输入模式。这样,超声波模块引脚就配置完成。
(2)定时器TIM4初始化
/定时器4的NVIC配置/
void tim4_nvic_config(void)
{
NVIC_InitTypeDef NVIC_InitStruct;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructNVIC_IRQChannel = TIM4_IRQn;
NVIC_InitStructNVIC_IRQChannelPreemptionPriority = 0;//抢占优先级为0
NVIC_InitStructNVIC_IRQChannelSubPriority = 0;//子优先级为0
NVIC_InitStructNVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);
}
/定时器4初始化/
void tim4_config(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
tim4_nvic_config(); //配置NVIC
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//开启时钟
TIM_DeInit(TIM4); //定时器4复位
TIM_TimeBaseInitStructTIM_Period = 1000-1; //自动重装载寄存器值
TIM_TimeBaseInitStructTIM_Prescaler = 72-1; //时钟预分频数
TIM_TimeBaseInitStructTIM_ClockDivision = TIM_CKD_DIV1; //采样分频
TIM_TimeBaseInitStructTIM_CounterMode = TIM_CounterMode_Up; //计数模式
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseInitStruct); //初始化TIM4
TIM_ClearFlag(TIM4, TIM_FLAG_Update); //清除溢出中断标志
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM4, DISABLE);
}
由于考虑到测距时的距离过大,计数会溢出,出现不准确的现象,这里需要用到长计时,并且使用TIM4中断对计时变量进行自增,所以需要配置NVIC。这里设置的中断优先级比较高,因为测距不能被其他中断打断,否则可能出现数据不准的现象,或是数据抖动现象。其次,设置TIM4的中断溢出时间为1ms,此时还不能开启定时器TIM4。
(3)编写定时器中断程序
/定时器4中断服务函数/
void TIM4_IRQHandler(void)
{
if(TIM_GetITStatus(TIM4 ,TIM_IT_Update)!=RESET)
{
TIM4_NUM++;//长计时变量
}
TIM_ClearITPendingBit(TIM4 ,TIM_FLAG_Update);
}
为避免测量的距离过长,这里我们需要进行长计时,只需在中断函数里这样 *** 作:TIM4_NUM++,同时记得在每次测量距离前对TIM4_NUM复位即可。
(4)编写超声波测距相关函数
/启动超声波测距/
u16 ultra_measure(void)
{
u16 distance;
TRIG_H;
delay_us(20);
TRIG_L;
while(ECHO==RESET);
TIM_SetCounter(TIM4,0);
TIM4_NUM = 0;
TIM_Cmd(TIM4, ENABLE);
while(ECHO!=RESET);
TIM_Cmd(TIM4, DISABLE);
distance = (u16)ultra_get_distance();
return distance;
}
/获取超声波传播时间,间接计算出距离/
float ultra_get_distance(void)
{
u32 time;
float distance;
time = TIM4_NUM1000;
time += TIM_GetCounter(TIM4);//获取超声波测距总时间
TIM4->CNT = 0; //定时器复位
distance = (float)time0017;
return distance;
}
这里,需要查阅超声波手册中的时序图,方可编写程序。首先,向给trig 发送至少10 us的高电平脉冲,然后等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照测试距离=(高电平时间声速)/2 就可以算出超声波到障碍物的距离。
这里我们测算的距离:distance = (float)time0017,计算的距离单位为cm。
(5)主函数调用测距函数
最后,在主函数里,调用测距函数即可获取到距离值,再通过lcd显示函数,显示出距离值。
value = ultra_measure();
lcd_display_string(0,32,"测量距离");
lcd_display_num_m(3, 48, value/1000);
lcd_display_num_m(3, 56, (value%1000)/100);
lcd_display_num_m(3, 64, (value%100)/10);
lcd_display_num_m(3, 72, value%10);
通过本章的介绍,相信你对于超声波测距应该了解不少了吧,相信你也可以做出来的。通过不断改变超声波和障碍物之间的位置,距离值会随之改变,是不是很有趣啊~
到目前为止,多功能时钟已经具备了显示时间、测量温湿度、测量空气质量以及测距的功能,但我们的LCD显示部分还没有优化。在下一章中,我将带着大家完成多功能时钟人机交互界面(简称UI)的开发,到时候,我们的界面就会变得比较美观了。敬请期待~
后置摄像头。
iPhone12ProMax摄像头参数超广角:_/24光圈和120° 视角广角:_/16光圈长焦:_/20光圈(iPhone12Pro);_/22光圈(iPhone12Pro Max) 2倍光学变焦(放大),2倍光学变焦(缩小);4IT之家10 月14 日消息今晚,苹果发布iPhone 12 系列,iPhone 12 Pro/Max 两款型号压轴登场,屏幕和摄像头系统更为先进。
以上就是关于我自己写了一个超声波测距的程序,用51单片机,1602液晶显示,但是现在显示不出来,请各位大神帮忙全部的内容,包括:我自己写了一个超声波测距的程序,用51单片机,1602液晶显示,但是现在显示不出来,请各位大神帮忙、华为it可信理念考试、由光电传感器感应的单片机控制电动机系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)