Nota

¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.

¿Por qué unirse?

  • 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.

  • Avances Exclusivos: Accede anticipadamente a anuncios de nuevos productos y adelantos exclusivos.

  • Descuentos Especiales: Aprovecha descuentos exclusivos en nuestros productos más recientes.

  • Promociones Festivas y Sorteos: Participa en sorteos y promociones especiales.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.

1.1.1 LED Intermitente

Introducción

En este proyecto, aprenderemos a hacer que un LED parpadee mediante programación. Con tu configuración, el LED puede producir una serie de fenómenos interesantes. ¡Adelante, inténtalo!

Componentes Necesarios

Para este proyecto, necesitamos los siguientes componentes.

../_images/1.1.1_blinking_led_list.png

Diagrama de Conexiones

En este experimento, conectamos el pin GPIO 17 de la Raspberry Pi al ánodo (pin largo) del LED, luego el cátodo (pin corto) del LED a una resistencia, y conectamos el otro extremo de la resistencia al pin GND en la Raspberry Pi. Para encender el LED necesitamos configurar GPIO17 en alto (3.3V), y podemos lograr esto mediante programación.

Nota

Pin11 se refiere al pin 11 de la Raspberry Pi de izquierda a derecha, y su número de pin BCM correspondiente se muestra en la siguiente tabla.

En el contenido relacionado con el lenguaje Python, BCM 17 corresponde a 17 en la columna BCM de la siguiente tabla. A su vez, es el mismo que el pin 11 de la Raspberry Pi, Pin 11.

T-Board Name

physical

BCM

GPIO17

Pin 11

17

../_images/1.1.1_blinking_led_schematic.png

Procedimientos del Experimento

Paso 1: Construye el circuito.

../_images/1.1.1_blinking_led_circuit.png

Paso 2: Ve a la carpeta del código y ejecútalo.

  1. Si usas una pantalla, se recomienda seguir estos pasos.

Encuentra 1.1.1_BlinkingLed.py y haz doble clic para abrirlo.

Haz clic en Run ->Run Module en la ventana, y aparecerá el siguiente contenido.

Para detener la ejecución, simplemente haz clic en el botón X en la esquina superior derecha para cerrar la ventana, volviendo así al código. Si modificas el código, antes de hacer clic en Run Module (F5), debes guardarlo primero para ver los resultados.

  1. Si inicias sesión en la Raspberry Pi de forma remota, ingresa el siguiente comando:

cd ~/davinci-kit-for-raspberry-pi/python-pi5

Nota

Cambia al directorio de la ruta del código en este experimento con el comando cd.

Paso 3: Ejecuta el código

sudo python3 1.1.1_BlinkingLed.py

Nota

Aquí, sudo es superuser do, y python indica que el archivo se ejecutará con Python.

Al ejecutar el código, verás que el LED parpadea.

Paso 4: Si deseas editar el archivo de código 1.1.1_BlinkingLed.py, presiona Ctrl + C para detener la ejecución del código. Luego, escribe el siguiente comando para abrir 1.1.1_BlinkingLed.py:

nano 1.1.1_BlinkingLed.py

Nota

nano es una herramienta de edición de texto. Este comando se usa para abrir el archivo de código 1.1.1_BlinkingLed.py con esta herramienta.

Presiona Ctrl+X para salir. Si has modificado el código, aparecerá una pregunta sobre si deseas guardar los cambios. Escribe Y (guardar) o N (no guardar).

Luego, presiona Enter para salir. Escribe de nuevo nano 1.1.1_BlinkingLed.py para ver el efecto después de los cambios.

Advertencia

Si aparece un mensaje de error RuntimeError: Cannot determine SOC peripheral base address, consulta Si gpiozero no funciona.

Código

A continuación se muestra el código del programa:

Nota

Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes, debes acceder a la ruta del código fuente como davinci-kit-for-raspberry-pi/python-pi5. Tras modificar el código, puedes ejecutarlo directamente para ver el efecto.

#!/usr/bin/env python3
from gpiozero import LED
from time import sleep

# Inicializa un LED conectado al pin GPIO 17 usando la biblioteca GPIO Zero.
led = LED(17)

try:
   # Inicia un bucle infinito para alternar el estado del LED.
   while True:
      # Enciende el LED e imprime un mensaje en la consola.
      led.on()
      print('...LED ON')

      # Espera 0.5 segundos con el LED encendido.
      sleep(0.5)

      # Apaga el LED e imprime un mensaje en la consola.
      led.off()
      print('LED OFF...')

      # Espera 0.5 segundos con el LED apagado.
      sleep(0.5)

except KeyboardInterrupt:
   # Maneja de forma segura una interrupción de teclado (Ctrl+C) saliendo del bucle.
   # GPIO Zero gestiona automáticamente la limpieza de configuraciones de GPIO al salir.
   pass

Explicación del Código

  1. Al ejecutar el sistema, buscará la ruta de instalación de Python en la configuración env, luego llamará al intérprete correspondiente para completar la operación. Esto es para evitar que el usuario no instale Python en la ruta predeterminada /usr/bin.

    #!/usr/bin/env python3
    
  2. Estas líneas importan las clases y funciones necesarias: LED de gpiozero para el control del LED y sleep de time para demoras.

    from gpiozero import LED
    from time import sleep
    
  3. Esta línea crea un objeto LED conectado al pin GPIO 17.

    # Inicializa un LED conectado al pin GPIO 17 usando la biblioteca GPIO Zero.
    led = LED(17)
    
  4. Un bucle infinito se inicia con while True:. Dentro del bucle, el LED se enciende (led.on()) y se imprime un mensaje. Luego, el programa se detiene por 0.5 segundos (sleep(0.5)). Después, el LED se apaga (led.off()), se imprime otro mensaje, y el programa se pausa nuevamente por 0.5 segundos.

    try:
        # Inicia un bucle infinito para alternar el estado del LED.
        while True:
            # Enciende el LED e imprime un mensaje en la consola.
            led.on()
            print('...LED ON')
    
            # Espera 0.5 segundos con el LED encendido.
            sleep(0.5)
    
            # Apaga el LED e imprime un mensaje en la consola.
            led.off()
            print('LED OFF...')
    
            # Espera 0.5 segundos con el LED apagado.
            sleep(0.5)
    
  5. El bloque except captura una KeyboardInterrupt (como presionar Ctrl+C) y sale del bucle de manera segura. La declaración pass se usa aquí como un marcador de posición para indicar que no se toma ninguna acción específica tras la interrupción.

    except KeyboardInterrupt:
        # Maneja de forma segura una interrupción de teclado (Ctrl+C) saliendo del bucle.
        # GPIO Zero gestiona automáticamente la limpieza de configuraciones de GPIO al salir.
        pass