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