求助,树莓派GPIO输入的时候出现错误

  • sky无限
  • LV2工程师
  • |      2015-11-28 20:58:59
  • 浏览量 1644
  • 回复:16

我用的python控制的树莓派

下面是代码

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD)

GPIO.setup(11,GPIO.IN)

while 1:

    v=GPIO.input(11)

    if(v==1):

        print "down"

        time.sleep(0.5)

首先,树莓派时能运行的,使用上没问题,

运行这个代码的时候,正常没有输出的

当我把杜邦线插在11口,就出问题了,刚插上线,就开始打印down了

问题是,我只插了杜邦线的一头到11口,另一头还没动呢,怎么就接到高电平了

我换成12口也是这个样子,


这是树莓派坏了,还是怎么了?

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:15
Ipaddr 2015-12-07
拉个电阻试试,也许有效呢。
0   回复
举报
发布
oceancjc 2015-11-29

这个问题很简单:

原因:你的管脚配置成输入,那么处于浮空状态,外部长导线会使他拉高也很容易理解。

解决方法,你需要输入低电平,把外面导线另一头接地,不然就接3v3就ok啦,如果你是想gpio作为输出的,就不要IN,改成OUT

0   回复
举报
发布
sky无限 2015-11-29
多谢
0   回复
举报
发布
sky无限 2015-11-28

感谢您,我已经解决了,果然是那个上拉下拉的地方

代码修改成这个可以控制上拉下拉

GPIO.setup(37, GPIO.IN, pull_up_down=GPIO.PUD_UP)


多谢
0   回复
举报
发布
fjjjnk1234 2015-11-28
加上拉电阻或下拉电阻,就是接个10K电阻到电源或10K的电阻到地,让引脚初始为高电平或低电平。
0   回复
举报
发布
sky无限 2015-11-28
那怎么解决呢
0   回复
举报
发布
fjjjnk1234 2015-11-28
嗯,可以确定引脚处于浮动状态了,程序只是读取引脚的状态,引脚的内部结构是有构成回路的。至于内部结构是什么样的,高通不开源,我们也没办法知道。
0   回复
举报
发布
sky无限 2015-11-28




这个是我尝试换成37口的


0   回复
举报
发布
sky无限 2015-11-28

就是正常打印啊,开始时输出up,输出5个左右,开始输出down 输出12个左右,就这样循环



0   回复
举报
发布
fjjjnk1234 2015-11-28
加了那条语句了吗?打印什么信息?
0   回复
举报
发布
查看更多
x
收藏成功!点击 我的收藏 查看收藏的全部帖子