2017-05-09 20 views
0

GPIO7ピンのリレーボックスに接続されているRaspbeery Piに問題があります。私はこのコードで成功せずGpio.boardとし、gpio.bcmでテストしている:GPIO7ピンにRaspberry Piを接続中にエラーが発生しました

#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() 

これは一つの方法で、その他の両方のエラーです:

Traceback (most recent call last):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) or GPIO.setmode(GPIO.BCM)

私は何かが足りないのですか?

+0

また、([Raspberriパイのための専用のスタックExchangeサイト]を試すことができますhttps://raspberrypi.stackexchange.com ) – imTachu

+0

寄付いただきありがとうございますLorenaもこのコミュニティで私の質問を伝えます –

答えて

2

ループの前にピン番号付けモードをGPIO.setmode(GPIO.BCM)に設定します。最初のループは正常に動作しますが、GPIO.cleanup()setmodeを元に戻し、2番目のループでエラーが発生します。

最後にクリーンアップを入れてください。

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() 
+0

これはループ内でprintステートメントが使用されているかどうかをはっきりと確認でき、一度正常に実行されます –

+0

あなたの貢献に感謝しかし、それは動作しません、それはすべてのエラーをスキップしませんが、私が望むように5分ごとに出ることはありませんし、それは明確に行きません。 –

+0

@ Meirin.f 'GPIO.output(4、GPIO.LOW)'の後に 'sleep'が必要です。そうでなければ、すぐに次のループでHIGHになり、あなたは決してそれを見ません...私の答えにそれを加えました。 –

0

これは私の質問を解決する:

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 

It works right now, thank you all.

関連する問題