Me consideré fuera de este tipo de cosas de nivel principiante hace mucho tiempo, pero supongo que no soy tan inteligente como pensaba que era porque ¡parece que tengo un nivel excepcional de problemas con eso!
Así que finalmente terminé los exámenes y puedo jugar con mi nuevo juguete, así que lo primero que hice fue obtener una pantalla LCD de caracteres montada sobre UART. ¡Eso funcionó sin problemas, por lo que me cuesta mucho entender por qué me cuesta tanto trabajo con este botón!
Así que configuré un botón similar al que se haría con un arduino; con una resistencia de 1k conectada a tierra. Utilicé mi multímetro para asegurarme de que el botón funcionaba y de producir la cantidad correcta de energía, que es. Me conecté a SSH en mi shell, conecté el botón al pin 7 de GPIO y entré a Python. Esto es lo que probé:
GPIO.pinout(GPIO.BOARD)
GPIO.setup(7,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
while 1==1:
inputval = GPIO.input(7)
print inputval
Esto me da un bucle interminable, False
independientemente de cómo presione el botón. También lo probé GPIO.PUD_UP
y obtuve un bucle interminable True
. También lo probé GPIO.PUD_OFF
y obtuve más False
.
¿Me estoy perdiendo de algo?
GPIO.PUD_UP
. ¿Qué voltaje ves conGPIO.PUD_UP
encendido y el botón presionado?Respuestas:
Mi GPIO no tiene
pinout
, tuve que cambiarlo asetmode
Como estás usando el
GPIO.BOARD
pin 7, es el que está etiquetadoGPIO 4(GPCLK0)
. Si pretendía usarGPIO 7(CE1)
, debe usarGPIO.setmode(GPIO.BCM)
en su lugarProbé el código tocando una resistencia de 1k de
3V3 Power
aGPIO 4(GPCLK0)
fuente
GPIO.BOARD
era por el pinout del tablero como se muestra en las imágenes, no por el esquema de numeración física del pin. Cuando llegue a casa del trabajo lo probaré y estoy seguro de que funcionará.Nunca uso "pull_up_down = GPIO.PUD_DOWN" en la configuración del pin. Prueba esto:
Como dijo gnibbler, asegúrese de que PinNum sea para el GPIO BCM.
fuente