脉冲长度 - Arduino - >覆盆子

时间:2016-06-19 19:51:57

标签: python arduino raspberry-pi

我不知道为什么会这样,但我很生气:-),因为我现在已经挣扎了两天..

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 ......

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

对我来说,这更像是电子问题。

事实上,对于那种库,我们可以假设函数正常工作(我想你编写了正确的代码:https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/robot/buttons_and_switches/)。

我认为电子问题可以来自几个方面:

  • 您的地面连接严重(或者arduino和rasperry pi不一样)。因此,参考张力不相同,并且对于树莓pi,arduino的0V可以是1V。
  • 这也可能是电路开启和关闭时解释错误的结果。 不要忘记在树莓派的输入中放置一个普通的0V (当电路关闭时)。你需要在arduino的输出端显式写0V(我的意思是:digitalWrite(ledPin, LOW);),否则你的引脚就不会被接地"但是"漂浮"根据环境因素,张力可以从任何值(接近0)波动到另一个值。 (要实现它,您还可以使用下拉电阻,请参阅:http://playground.arduino.cc/CommonTopics/PullUpDownResistor)。

  • 由于不需要的电容反应,它也可能是瞬态现象。因此,当您的电流快速变化时,电路无法立即跟随它,并且会产生一些电压故障。

我建议检查两个第一点。如果它无法解决您的问题,它应与第二点相关,您可以使用电容器和等待时间处理它。

我希望它会有所帮助:)

答案 1 :(得分:0)

感谢您的重播。这是我今天所做的测试。 - 我已连接齐纳二极管以获得3,3v,这部分很好 - 使用不同的脉冲长度进行测试 他们都没有工作。

有趣的是,如果我启动RSP脚本,如果我只是等待冲动(不触发它),我将在几分钟内得到30分。所以看起来有些事情正在发生。

我在arduino中禁用了这部分代码,但我仍然得到了这些读数...... 顺便说一句。我应该将arduino和rsp GND连接在一起吗?

电子。

相关问题