对于 Arduino,这没什么大不了的,对吧?
只需将触发引脚数字写入“高电平”几微秒,然后在回波引脚中脉冲以及时测量脉冲持续时间,将时间转换为距离!
您如何在 PSoC 4 中做到这一点?做一些数学运算以获得时间并在 LCD 上打印!
触发器(也是用于短蓝色闪光的LED 引脚)称为PSoC 的输出引脚,它连接到超声波模块的触发器输入,每500 毫秒变为高电平 10 微秒以触发模块发送超声波. 这是从C 代码完成的,这意味着这部分由 CPU (PSoC 中的 ARM M0)处理。
请注意,触发器和 LED 均由软件控制。
然后模块的Echo Pin会产生一个High Pulse ,脉冲的宽度取决于测量的距离。为测量此持续时间,使用了 PSoC 的硬件定时器组件。
来自 HC 04 超声波模块的数据表,
回波脉冲高持续时间(以美国为单位)/58 = 1 cm
最大可测量长度 4 米 = 400 厘米将用 400 x 58 = 23200 uS 高脉冲表示。因此,定时器周期(此处为 65535)必须 > 23200。
检查上图 -
计数器模式:向上(从 0 到 65535 计数)
运行模式:1次(一旦停止,除非再次启动,否则不会启动)
Compare/Capture : Capture(捕捉定时器停止时的计数)
中断:捕获计数(捕获计数时将断言中断)
定时器在超声波模块回波引脚的上升沿启动(开始计数)并重新加载(从 0 开始)然后在下降沿停止(停止计数)并计数(从开始到停止的滴答计数),然后中断发生(在ISR 计数转换为时间,更新距离)。
当新的 Echo Pulse 出现时,计时器将再次启动!
如果您想使用 PSoC 4 进行以下项目:
这个迷你项目会很方便!在连续模式下使用另一个定时器,可以定期触发触发引脚,从而从代码中消除 CyDelay 以释放 CPU!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !