He estado jugando mucho con la Raspberry Pi últimamente. Pero tengo un problema.
Cuando configuro un pin de entrada para verificar si se le envía electricidad o no, me da respuestas bastante inestables.
Algunas observaciones que hice para aclarar mi problema:
Cuando conecto el circuito y la electricidad fluye al pin de entrada, el valor que me da es consistentemente VERDADERO o 1.
Cuando rompo el circuito quitando un LED que es parte de él (cuando el valor de entrada debe ser 0) me da valores aleatorios, cambiando entre 0 y 1.
Cuando quito todos los cables de mi Pi, me da el valor constante de 0
Si me quitan todos los cables GPIO, me da el valor de 0, pero si simplemente toco el pin de entrada con un trozo de metal conductor de electricidad (que no conduce a nada en el otro extremo), comienza de nuevo con los valores aleatorios. No me da valores aleatorios a menos que también tenga algo conectado al pin de salida. No tiene que conducir a ningún lado, solo tiene que tocar el pin de salida. Y alguna otra pieza de metal tiene que tocar el pin de entrada. No hay ninguna conexión entre ellos.
Me pregunto por qué comienza a darme valores aleatorios cuando el pin GPIO de entrada toca cualquier metal.
Y aún más interesante, ¿por qué me da 1s o VERDADERAS consistentes cuando realmente le envío electricidad?
Respuestas:
El problema
Es cierto, pero ¿qué sucede cuando la tierra está conectada al pin de entrada GPIO? El valor que daría siempre sería falso .
Cuando no hay nada conectado, el pin está en un estado "flotante", y la salida no es predecible. está en un estado indefinido, no es ni 0 ni 1, y el valor detectado puede cambiar de forma extraña, de ahí sus resultados aleatorios. En electrónica, esto se conoce como el tercer estado .
Algunos detalles más de un artículo de Wikipedia :
La solución general
La solución es una resistencia desplegable . Piense en esto como un componente adicional que no hace nada cuando la línea obtiene un 0 o 1. Pero cuando la línea está inactiva, de repente entra en acción y da un 0.
La solución Raspberry Pi
Afortunadamente para ti, el Rpi tiene un menú desplegable incorporado, debes activarlo mediante programación. Aquí hay un script de Python para eso:
Nota al margen
¡No conecte la alimentación directamente al pin ya que sería peligroso! Asegúrese de que haya suficiente resistencia en el circuito. Además, nunca conecte la alimentación de 5V directamente al GPIO, ya que solo acepta 3.3V.
fuente