Para un proyecto actual, tengo que leer el estado de un LED en otro circuito con una Raspberry Pi.
Mi esquema actual es este:
Todo lo que se encuentra dentro del cuadro de puntos no es físicamente accesible para mí en la versión final del proyecto, por lo que solo puedo conectar los cables al lado del botón. (El LED sigue siendo visible)
Ahora, cuando comienzo mi código para leer el estado del Pin 12 con la resistencia interna desplegable, solo obtengo 0s como salida.
Código para leer el Pin (con menú desplegable):
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
for i in range (5):
print GPIO.input(12)
time.sleep(.01)
GPIO.clear
Salida (desplegable):
0
0
0
0
0
Mi idea aquí es que la corriente podría atravesar la resistencia y no el pin, pero no estoy seguro de eso.
Entonces, si elimino el menú desplegable y vuelvo a intentar lo mismo, obtendré un patrón alternativo de 1s y 0s.
Código para leer el Pin (sin menú desplegable):
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(12, GPIO.IN)
for i in range (10):
print GPIO.input(12)
time.sleep(0.01)
GPIO.clear
Salida (no desplegable):
0
1
0
1
0
1
0
1
Según tengo entendido, esto se debe a la falta de resistencia desplegable ya que la corriente no tiene a dónde ir, por lo que está creando esta interferencia.
¿Ahora quería preguntar cómo sería posible para mí obtener el estado actual del LED con las circunstancias dadas y de dónde viene este patrón alternativo? (Tal vez sea un malentendido de las resistencias desplegables).
Solución:
Gracias @Transistor
el Pi necesita una ruta de retorno para la corriente de detección.
El esquema final es este:
Ahora la salida es:
- LED apagado: 1
- LED encendido: 0