覆盆子pi上的GPIO 3.3v输出'在Raspberry Pi上发送的频道无效'

时间:2015-03-04 00:49:57

标签: python raspberry-pi gpio

我正在尝试学习如何使用我的Raspberry Pi做一些很酷的事情。我正试图在我的覆盆子pi上运行带有3.3V gpio引脚的NMOS晶体管。我很确定它能够提供3.3V输出,但我一直都会遇到错误。我检查了我的布线和代码。我没有看到任何问题。请查看下面的代码,如果您发现任何错误,请告诉我。谢谢!

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(12,GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(17,GPIO.OUT)
GPIO.output(17,GPIO.HIGH)
while True:
    input_state = GPIO.input(12)
    if input_state == False:
        #command for running 5v/3.3v output below
        GPIO.output(17,GPIO.LOW)
        time.sleep(3.5)
        GPIO.output(17,GPIO.HIGH)

我使用“sudo python myscript.py”运行我的脚本。这是我不断得到的错误:

GPIO.setup(17,GPIO.OUT) ValueError:在Raspberry Pi上发送的通道无效

4 个答案:

答案 0 :(得分:5)

http://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/

查看“Pin Numbering”部分。您可以根据芯片上包含GPIO的引脚(BCM编号)或您连接的引脚头上的编号(BOARD)编号GPIO。如果你想要GPIO17,那就是BCM引脚号和它在板头上的引脚11。你不需要电路板引脚17,因为它不是可控输出;这是3.3V电源。

GPIO.setmode(GPIO.BOARD)
# or
GPIO.setmode(GPIO.BCM)

答案 1 :(得分:0)

为什么不使用2(5.0v)而不是17,并在面包板上使用带有Pi-T分线板的LM1117T 3.3v稳压器。通过连接正极和负极,以及两个10uF电容,您应该能够通过引脚2接收3.3v输出

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(12,GPIO.IN)
GPIO.setup(2,GPIO.OUT)
GPIO.output(2,GPIO.HIGH)
while True:
    input_state = GPIO.input(12)
    if input_state == False:
    GPIO.output(2,GPIO.LOW)
    time.sleep(3.5)
    GPIO.output(2,GPIO.HIGH)

答案 2 :(得分:0)

在其中一个案例中,可能是其中一个库正在使用中 该模式已设置为BCM或BOARD。

然后我必须找出以前使用的模式并坚持使用该模式。

我也要避免使用: GPIO.cleanup()或重新设置GPIO.setmode()

答案 3 :(得分:0)

您应该尝试将 function onEdit(e) { var activeSheet = e.source.getActiveSheet(); if (activeSheet.getName() == "Sheet1") { // SHEET NAME var aCell = e.source.getActiveCell(), col = aCell.getColumn(); if (col == 1) { // COLUMN WITH CHECKBOX var dateCell = aCell.offset(0,1); // DATE OFFSET ROWS / COLUMNS if (aCell.getValue() === true) { var newDate = new Date(); dateCell.setValue(newDate); } else { dateCell.setValue(""); }}}} 设置为 pull_up_down