ESP32 blink

Compartir:

El primer ejercicio que vamos a hacer para familiarizarnos con el Microcontrolador ESP32 es el clásico blink.

Para ello vamos a conectar una bombilla LED roja a la placa, dado que la ESP32 no dispone de luz LED interior programable. Las dos luces que tiene son indicadores de on/off y de actividad en la placa. Ninguno de ellos está pensado para manipulación por parte del usuario humilde (yo).

La luz LED la conectaremos al pin GND (posición 6 del lado izdo. de la placa, contando desde el lado de la conexión microUSB) y al pin G32 (posición 13 del mismo lado izdo.). Entre medias pondremos una resistencia de 220 Ohms para reducir la corriente y no quemar la LED. No se ve en la foto pero el cable rojo solo conecta el pin GND al rail ground de la mini-breadboard. El cátodo de la LED sale del rail ground, pasa por la resistencia y el cable verde lo conecta con el pin G32.

Una vez preparado el hardware, pasamos al software.

Abrimos el ejemplo Blink de Arduino:

Esto es lo que vemos en el IDE de Arduino:

/*
// the setup function runs once when you press reset or power the board

void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever

void loop() {
digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(1000);                       // wait for a second
digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
delay(1000);                       // wait for a second
}

Tenemos un problemita con el LED_BUILTIN que, como hemos dicho, está disponible en las placas de Arduino (creo que en casi todas) pero no en la ESP32. Así que vamos a inicializar led_gpio por pin 32:

const byte led_gpio = 32;

Y vamos a modificar el LED_BUILTIN por led_gpio. 

Quedaría así:

const byte led_gpio = 32;
// the setup function runs once when you press reset or power the board

void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(led_gpio, OUTPUT);
}

// the loop function runs over and over again forever

void loop() {
digitalWrite(led_gpio, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(100);                       // wait for a second
digitalWrite(led_gpio, LOW);    // turn the LED off by making the voltage LOW
delay(100);                       // wait for a second
}

Ahora solo queda compilar el programa y subirlo a la placa...

- "Oooooh!!" No funciona.

Nos da el siguiente error:

Acordémonos de apretar el botón BOOT de la placa durante el proceso de subida del programa a la misma.

Veamos el proceso final en el siguiente video:

Contributors:

Compartir: