我目前正试图在我的BeagleBone Black(Rev C.)上使用超过1个HC-SR04 我尝试了以下脚本: https://github.com/luigif/hcsr04它也有效,但我不知道,我如何更改已使用的PIN以及如何以串行方式使用它们。
是的,有人可以帮帮我吗? 最好的祝福 INGO答案 0 :(得分:0)
当前代码的一个可能解决方案是将两个足够快的多路复用器添加到传感器的回波/触发引脚(8:1或16:1,具体取决于您要连接的传感器数量) )。第一种是在触发连接之间切换,第二种是在回声连接之间切换。要控制多路复用器,您必须将多路复用器的选择线连接到任何GPIO引脚(最简单的是P8_14,P8_15,P8_16和P8_18,因为PRU正在使用P8_11和P8_12)。
您必须更改此类代码
/* Execute code on PRU */
printf(">> Executing HCSR-04 code\n");
prussdrv_exec_program(0, "hcsr04.bin");
/*Add code here to set GPIO pins high/low to choose the sensor */
/* Get measurements */
mux通常有5v输入和输出,确保你将它降低到3V,否则你会打击你的傻瓜!
基本廉价多路复用器的最大响应时间为35ns,足以满足要求
https://en.wikipedia.org/wiki/Multiplexer http://socrates.berkeley.edu/~phylabs/bsc/PDFFiles/DM74151A.pdf
增加:将所有触发引脚连接在一起并仅复用回声引脚,这样您只需要一个多路复用器而不是2个