【临沂】【古德微】第九课 超声波测距

2020-04-132553
AI 快速预览详细 收起
本文介绍了古德微第九课中超声波测距的学习过程。文章详细描述了数码管显示不正常的问题,并提供了正确的解决方案。通过调整赋值语句的位置和正确的数值拆分方法,解决了十位数显示错误的问题。此外,还提到了数码管显示与调试信息LOG中的数值差异,指出了测距神器需要改进的地方。
今天跟随教程在学习超声波测距这一课时遇到一个问题。前面的流程都没什么问题
【临沂】【古德微】第九课 超声波测距图5
超声波工作正常。
连接好数码管后,个位跟十分位的显示还算是比较正常
【临沂】【古德微】第九课 超声波测距图6
硬要说那里不正常就是这个赋值语句,在循环外面时数码管的显示需要运行一次程序才改变一次,当把赋值语句放到循环里面时,数码管的显示才是实时监测改变数值。
十位跟个位,十分位的程序也没大问题:
【临沂】【古德微】第九课 超声波测距图1
到了百位时就有问题了,我们知道数码管各个数位的显示是独立的,所以我们在获取了超声波检测数值后需要把数据拆分后赋值给各个数位,0号数码管显示的就应该是:
【临沂】【古德微】第九课 超声波测距图2
这个没什么问题,测距数值÷100后取整后交给百位显示。
那么十位上的数值该怎样来取值呢?我们来看下视频教程的程序写法:
【临沂】【古德微】第九课 超声波测距图3
他十位上用了测距数值取整后÷100然后取余数,试想一下当一个三位数除以100后的余数一定是十位上的那个数字吗。把这样的数值赋给数码管,它肯定是识别不了的。
正确的写法:
【临沂】【古德微】第九课 超声波测距图4
就是把测得的数值先取整后÷10取整后再÷10取余数的数值就是十位上的数字 了。
通过这次学习还发现了一个问题,数码管的数值显示跟调试信息LOG 中显示的超声波检测数值有不小的差别,测距神器的制作还是有不少需要改进的地方。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
DFrJ5KYVQaH
DFrJ5KYVQaH
这个问题比较有趣,仔细想想就可以想明白
- 没有更多了 -