1621浏览
查看: 1621|回复: 1

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

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

DFrJ5KYVQaH  中级技匠

发表于 2020-4-14 07:41:14

这个问题比较有趣,仔细想想就可以想明白
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail