我正在尝试学习如何使用我的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上发送的通道无效
答案 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
。