Nota
¡Hola, bienvenido a la Comunidad de Entusiastas de Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirte?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Preestrenos exclusivos: Accede anticipadamente a anuncios de nuevos productos y adelantos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo!
Lección 22: Módulo de Sensor Táctil
En esta lección, aprenderás cómo conectar y programar un sensor táctil con el Raspberry Pi utilizando Python. El enfoque se centrará en configurar el sensor en el pin GPIO 17 y escribir un script simple para detectar y responder a eventos de toque y liberación. Esta sesión práctica tiene como objetivo enseñar los fundamentos de la integración de sensores y el manejo de eventos en Python, brindándote las habilidades necesarias para proyectos más avanzados basados en sensores. Es un punto de partida ideal para aquellos nuevos en el trabajo con electrónica y Raspberry Pi.
Componentes Requeridos
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ARTÍCULOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Universal Maker Sensor |
94 |
También puedes comprarlos por separado desde los enlaces a continuación.
Introducción del Componente |
Enlace de compra |
|---|---|
Raspberry Pi 5 |
|
Cableado
Código
from gpiozero import Button
from signal import pause
# Función llamada cuando el sensor es tocado
def touched():
# Imprimir un mensaje indicando que el sensor ha sido tocado
print("Touched!")
# Función llamada cuando el sensor no es tocado
def not_touched():
# Imprimir un mensaje indicando que el sensor no está tocado
print("Not touched!")
# Inicializar un objeto Button para el sensor táctil
# GPIO 17: pin conectado al sensor
# pull_up=None: desactivar los resistores internos de pull-up/pull-down
# active_state=True: se considera el estado activo cuando hay voltaje alto
touch_sensor = Button(17, pull_up=None, active_state=True)
# Asignar funciones a los eventos del sensor
touch_sensor.when_pressed = touched
touch_sensor.when_released = not_touched
pause() # Mantener el programa en ejecución para detectar eventos de toque
Análisis del Código
Importación de Bibliotecas
El script comienza importando la clase
Buttonde gpiozero para interactuar con el sensor táctil, ypausedel módulo signal para mantener el programa en ejecución y responder a los eventos.from gpiozero import Button from signal import pause
Definición de las Funciones de Callback
Se definen dos funciones,
touchedynot_touched, para manejar los eventos de toque y liberación del sensor. Cada función imprime un mensaje indicando el estado del sensor.def touched(): print("Touched!") def not_touched(): print("Not touched!")
Inicialización del Sensor Táctil
Se crea un objeto
Buttonllamadotouch_sensorpara el sensor táctil en el pin GPIO 17. El parámetropull_upse establece enNonepara desactivar los resistores internos de pull-up/pull-down, yactive_statese establece enTruepara considerar el voltaje alto como el estado activo.touch_sensor = Button(17, pull_up=None, active_state=True)
Asignación de Funciones a los Eventos del Sensor
El evento
when_presseddeltouch_sensorse vincula a la funcióntouched, y el eventowhen_releasedse vincula a la funciónnot_touched. Esta configuración permite que el script reaccione a los eventos de toque y liberación del sensor.touch_sensor.when_pressed = touched touch_sensor.when_released = not_touched
Mantener el Programa en Ejecución
Se llama a la función
pause()para mantener el programa en ejecución indefinidamente. Esto es necesario para monitorear y responder continuamente a los eventos del sensor táctil.pause()