我不知道为什么会这样,但我很生气:-),因为我现在已经挣扎了两天..
HW: Arduino板 - >覆盆子模型2 B
我从arduino mega数字引脚8发送一秒钟的冲动到覆盆子。 我添加了分压器,所以我有3,25V的干净冲击。
RSP正确读取大部分脉冲,但有时我会得到错误的读数。 例如。一个冲动被触发,很少没有,或者它开始触发冲动,但我没有从arduino那边发送任何冲动。
我尝试使用pullup,下拉设置,但问题是一样的。 也许我应该定义"冲动"是值持续1秒,其他一切都是"垃圾" ?。如果是这样,怎么做?
CODE:
GPIO.setmode(GPIO.BCM)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)
#GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
...
GPIO.Cleanup()
有趣的是,如果我测试来自RSP 3,3V引脚的脉冲,它每次都有效(当然还有pull_down设置)。那么,可能是什么问题? 3,3V和3,25完全没有区别,RSP将HIGH定义为2.8 - 3.3V ......
有什么想法吗?
答案 0 :(得分:0)
对我来说,这更像是电子问题。
事实上,对于那种库,我们可以假设函数正常工作(我想你编写了正确的代码:https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/robot/buttons_and_switches/)。
我认为电子问题可以来自几个方面:
这也可能是电路开启和关闭时解释错误的结果。 不要忘记在树莓派的输入中放置一个普通的0V (当电路关闭时)。你需要在arduino的输出端显式写0V(我的意思是:digitalWrite(ledPin, LOW);
),否则你的引脚就不会被接地"但是"漂浮"根据环境因素,张力可以从任何值(接近0)波动到另一个值。
(要实现它,您还可以使用下拉电阻,请参阅:http://playground.arduino.cc/CommonTopics/PullUpDownResistor)。
由于不需要的电容反应,它也可能是瞬态现象。因此,当您的电流快速变化时,电路无法立即跟随它,并且会产生一些电压故障。
我建议检查两个第一点。如果它无法解决您的问题,它应与第二点相关,您可以使用电容器和等待时间处理它。
我希望它会有所帮助:)
答案 1 :(得分:0)
感谢您的重播。这是我今天所做的测试。 - 我已连接齐纳二极管以获得3,3v,这部分很好 - 使用不同的脉冲长度进行测试 他们都没有工作。
有趣的是,如果我启动RSP脚本,如果我只是等待冲动(不触发它),我将在几分钟内得到30分。所以看起来有些事情正在发生。
我在arduino中禁用了这部分代码,但我仍然得到了这些读数...... 顺便说一句。我应该将arduino和rsp GND连接在一起吗?
电子。