繁体   English   中英

将 Raspberry Pi 连接到 GPIO7 引脚时出错

[英]Error while connecting Raspberry Pi to GPIO7 pin

我的 Raspberry Pi 有问题,它连接在 GPIO7 引脚的继电器盒中。 我已经使用Gpio.boardgpio.bcm进行了测试, Gpio.board没有成功使用以下代码:

#This program connects with gpio7
#setup pins
#GPIO.setmode(GPIO.BOARD)
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
#GPIO.setup(7, GPIO.OUT)#mode Board
while True:
    GPIO.output(4, GPIO.HIGH)
    #GPIO.output(7, GPIO.HIGH)#mode Board
    time.sleep(5)
    GPIO.output(4, GPIO.LOW)
    #GPIO.output(7, GPIO.LOW) #mode Board
    GPIO.cleanup()  #devuelve los pines a su estado inicial

exit() 

这是一种和另一种方式的错误:

回溯(最近一次调用):File"/home/pi/Desktop/RelayPrograms/5_7OnSleepOff.py", line 13, in GPIO.output(4, GPIO.HIGH)RuntimeError: Please set pin numbering mode using GPIO.setmode( GPIO.BOARD) 或 GPIO.setmode(GPIO.BCM)

我错过了什么吗?

在循环之前使用GPIO.setmode(GPIO.BCM)设置引脚编号模式。 第一个循环将按预期工作,但GPIO.cleanup()将撤消您的setmode ,您将在第二个循环中收到错误。

所以,把清理放在最后。

GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
#GPIO.setup(7, GPIO.OUT)#mode Board
while True:
    GPIO.output(4, GPIO.HIGH)
    #GPIO.output(7, GPIO.HIGH)#mode Board
    time.sleep(5)
    GPIO.output(4, GPIO.LOW)
    time.sleep(5) 
    #GPIO.output(7, GPIO.LOW) #mode Board

GPIO.cleanup()  #devuelve los pines a su estado inicial
exit() 

这是我的问题的解决方案:

import os
import subprocess
import sys
import warnings
import time
from threading import Timer
import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False) ##Impido warning en ejecución

def blink4():#pin 7
        print ("Ejecucion iniciada...")
        time.sleep(5) ## Esperamos 1 segundo
        iteracion = 0
        while iteracion < 2: ## Segundos que durara la funcion
                GPIO.setup(4, GPIO.OUT) ## Enciendo
                print ("Encendido")
                time.sleep(5) ## Esperamos 1 segundo
                GPIO.cleanup(4) ## Apago 
                print ("Apagado")
                time.sleep(5) ## Esperamos 1 segundo
                iteracion = iteracion + 2 ## Sumo 2 porque he hecho dos parpade$
        print ("Ejecucion finalizada")

def blink23(): #pin 16
        print ("Ejecucion iniciada...")
        time.sleep(5) ## Esperamos 1 segundo
        iteracion = 0
        while iteracion < 2: ## Segundos que durara la funcion
                GPIO.setup(23, GPIO.OUT) ## Enciendo 
                print ("Encendido")
                time.sleep(5) ## Esperamos 1 segundo
                GPIO.cleanup(23) ## Apago 
                print ("Apagado")
                time.sleep(5) ## Esperamos 1 segundo
                iteracion = iteracion + 2 ## Sumo 2 porque he hecho dos parpade$
        print ("Ejecucion finalizada")

blink4()
blink23()
GPIO.cleanup() ## Hago una limpieza de los GPIO

现在可以使用了,谢谢大家。

我的Raspberry Pi出现问题,它连接在GPIO7引脚的继电器盒中。 我已经使用Gpio.boardgpio.bcm测试了此代码,但未成功:

#This program connects with gpio7
#setup pins
#GPIO.setmode(GPIO.BOARD)
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
#GPIO.setup(7, GPIO.OUT)#mode Board
while True:
    GPIO.output(4, GPIO.HIGH)
    #GPIO.output(7, GPIO.HIGH)#mode Board
    time.sleep(5)
    GPIO.output(4, GPIO.LOW)
    #GPIO.output(7, GPIO.LOW) #mode Board
    GPIO.cleanup()  #devuelve los pines a su estado inicial

exit() 

这既是一种错误,又是另一种错误:

追溯(最近一次通话最近):File“ /home/pi/Desktop/RelayPrograms/5_7OnSleepOff.py”,第13行,在GPIO.output(4,GPIO.HIGH)中运行时错误:请使用GPIO.setmode( GPIO.BOARD)或GPIO.setmode(GPIO.BCM)

我想念什么吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM