Stap 4: De definitieve code
#Settings
IN_RC = 18 #Input pin
OUT_LOW = 24 #Low-light output
OUT_HIGH = 25 #High-licht output
OUT_STATE = 22 #Program staat output
Met behulp van deze, kunt u de GPIO pinnen die het programma de output van de input van en verzenden naar krijgt.
Hier is de volledige code:
#! / usr/bin/env python
# De fotocel input en ontleden voor Ras Pi
# Moet worden gebruikt met GPIO 0.3.1a of hoger - oudere versies
# zijn niet snel genoeg!
# Standaard fotocel invoerfilter op pin 18
importeren van RPi.GPIO als GPIO, tijd, os, sys
#Settings
IN_RC = 18 #Input pin
OUT_LOW = 24 #Low-light output
OUT_HIGH = 25 #High-licht output
OUT_STATE = 22 #Program staat output
DEBUG = 1
GPIO.setmode (GPIO. BCM)
GPIO.setup (OUT_LOW, GPIO. UIT)
GPIO.setup (OUT_HIGH, GPIO. UIT)
GPIO.setup (OUT_STATE, GPIO. UIT)
def RCtime (RCpin):
lezen = 0
GPIO.setup (RCpin, GPIO. UIT)
GPIO.output (RCpin, GPIO. LAAG)
time.Sleep(0.1)
GPIO.setup (RCpin, GPIO. IN)
# Dit duurt ongeveer 1 milliseconde per lus cyclus
terwijl (GPIO.input(RCpin) == GPIO. LAAG):
lezing += 1
lezing terug
def ledOut(state):
als staat == 0:
GPIO.output (OUT_LOW, True)
GPIO.output (OUT_HIGH, True)
retourneren 0
als staat == 1:
GPIO.output (OUT_LOW, False)
GPIO.output (OUT_HIGH, True)
retourneren 0
als staat == 2:
GPIO.output (OUT_LOW, True)
GPIO.output (OUT_HIGH, False)
retourneren 0
als staat == 3:
GPIO.output (OUT_LOW, False)
GPIO.output (OUT_HIGH, False)
retourneren 0
return 1
def photocellParse(reading):
uit = ""
Als het lezen van < = 65:
uit = "0"
ledOut(0)
terug uit
Als het lezen van < = 150:
uit = "o"
ledOut(1)
terug uit
Als het lezen van < = 350:
uit = "."
ledOut(2)
terug uit
uit = ""
ledOut(3)
terug uit
terwijl juist:
GPIO.output (OUT_STATE, True)
sys.StdOut.write(photocellParse(RCtime(IN_RC))) # Lees RC timing met behulp van RC_IN pin, het parseren en spuug het in stdout
#print photocellParse(RCtime(IN_RC)),
sys.StdOut.Flush()
GPIO.output (OUT_STATE, False)