Paso 4: El código final
#Settings
IN_RC = 18 pin #Input
OUT_LOW = salida 24 #Low-light
OUT_HIGH = salida de luz High # 25
OUT_STATE = 22 salida de estado #Program
Con éstos, usted puede cambiar los pines GPIO que el programa está enviando y entrada de salida a.
Aquí está el código completo:
#! / usr/bin/env python
# FOTOCÉLULA entrada y análisis Ras Pi
# Debe ser usado con GPIO 0.3.1a o posterior - versiones anteriores
# no son lo suficientemente rápido!
# Establecer de entrada fotocélula en pin 18 por defecto
importar RPi.GPIO como GPIO, tiempo, os, sys
#Settings
IN_RC = 18 pin #Input
OUT_LOW = salida 24 #Low-light
OUT_HIGH = salida de luz High # 25
OUT_STATE = 22 salida de estado #Program
DEBUG = 1
GPIO.setmode (GPIO. BCM)
GPIO.setup (OUT_LOW, GPIO. HACIA FUERA)
GPIO.setup (OUT_HIGH, GPIO. HACIA FUERA)
GPIO.setup (OUT_STATE, GPIO. HACIA FUERA)
DEF RCtime (RCpin):
lectura = 0
GPIO.setup (RCpin, GPIO. HACIA FUERA)
GPIO.output (RCpin, GPIO. BAJO)
Time.Sleep(0.1)
GPIO.setup (RCpin, GPIO. EN)
# Esto toma cerca de 1 milisegundo por ciclo de lazo
mientras que (GPIO.input(RCpin) == GPIO. BAJO):
lectura += 1
volver a leer
DEF ledOut(state):
Si estado == 0:
GPIO.output (OUT_LOW, True)
GPIO.output (OUT_HIGH, True)
return 0
Si estado == 1:
GPIO.output (OUT_LOW, False)
GPIO.output (OUT_HIGH, True)
return 0
Si estado == 2:
GPIO.output (OUT_LOW, True)
GPIO.output (OUT_HIGH, False)
return 0
Si estado == 3:
GPIO.output (OUT_LOW, False)
GPIO.output (OUT_HIGH, False)
return 0
retorno 1
DEF photocellParse(reading):
a = ""
Si leyendo < = 65:
a = "0"
ledOut(0)
volver a
Si leyendo < = 150:
a = "o"
ledOut(1)
volver a
Si leyendo < = 350:
a = "."
ledOut(2)
volver a
a = ""
ledOut(3)
volver a
Aunque la verdad:
GPIO.output (OUT_STATE, True)
Sys.stdout.Write(photocellParse(RCtime(IN_RC))) # leer RC tiempo utilizando RC_IN pin, analizarlo y escupir en stdout
#print photocellParse(RCtime(IN_RC)),
Sys.stdout.Flush()
GPIO.output (OUT_STATE, False)