Skip to main content

Parpadeo LED ESP32

Objetivo

Vamos a hacer que parpadee el RGB integrado que tiene el ESP32 concretamente el color verde. 

Mapa de los pines en el Arduino Nano ESP32 

2024-07-07 20_10_30-Exploring the Arduino Nano ESP32 _ MicroPython & IoT Cloud - YouTube.png
Extraído de Youtube Exploring the Arduino Nano ESP32

Como podemos observar, nuestro objetivo pues es el GPIO0

¿Dónde está físicamente los GPIO ?

Pues como podemos ver en este esquema el GPIO0 está en el pin BOOT1

2024-07-07 20_14_06-Alvik User Manual _ Arduino Documentation.png
Fuente CC-BY-SA https://docs.arduino.cc/tutorials/alvik/user-manual/

    SI USAMOS MICROPYTHON TENEMOS QUE USAR LAS VERDES

    SI USAMOS CÓDIGO ARDUINO IDE TENEMOS QUE USAR LAS ROJAS

    Por eso, tal y como vimos en Poner la placa en modo Bootloader, el método alternativo enciende el led D1 de forma "hardware" al poner BOOT1 a GND para ponerlo en modo Bootloader, provoca el encendido del RGB en color verde.

    Programa
    #extraido de https://youtu.be/R51tf66es9w?t=1540
    
    from machine import Pin
    import time
    
    myLED = Pin(0,Pin.OUT)
    
    while True:
      myLED.value(0)
      time.sleep(0.5)
      myLED.value(1)
      time.sleep(0.5)
    Aclaraciones
    • Al hacer from machine import Pin estamos importanto las definiciones input output de los pines del ESP32 nano arduino
    • Ya hemos visto que lo que nos interesa el el 0 y lo ponemos como OUT
    ¿Y si queremos que parpadee el RGB en color ROJO qué cambiamos?

    Easy peasy, cambiamos myLED = Pin (0, Pin.OUT) por myLED = Pin (46, Pin.OUT)

    Que como puedes ver coincide también con un pin de poner en modo Bootloader: el BOOT0

    Curiosidad: Por eso si se resetea Arduino Alvik (al encender, o al hacer dos clicks en el botón) se encienden y se apagan varias veces el led RGB en colores rojo y verde, pues se están activando los BOOTs

    ¿Y si queremos que parpadee el led color VERDE que hay al lado del USB (LED BUILTIN) ? ¿Qué cambiamos?

    Easy peasy, cambiamos myLED = Pin (0, Pin.OUT) por myLED = Pin (48, Pin.OUT)

    Resultado: