L3: El diodo LED (2)
Categorías:
Etiquetas:
El diodo LED (2)
Qué vas a aprender en esta lección
En esta lección trabajaremos:
- Control de un LED externo desde la placa de desarrollo.
- Terminales GPIO. Qué son y para qué podemos usarlos.
Requisitos previos
Para poder seguir esta lección debes haber completado previamente la Lección 1: Mi primer proyecto y la Lección 2: El diodo LED, ya que combinaremos lo estudiado en ambas para aprender a controlar un LED externo conectado a nuestra placa de desarrollo.
Explicación teórica
¡Quiero saber más!
En las lecciones anteriores hemos visto que nuestra placa de desarrollo tiene tiene un chip ESP32 que podemos considerar como un pequeño ordenador completo en un solo chip (SoC). Una de las cosas más interesantes que podemos hacer con este pequeño ordenador es conectarle elementos y dispositivos externos e interactuar con ellos desde nuestros programas.
Tenemos varias opciones a la hora de conectar dispositivos a nuestra placa de desarrollo y en esta lección vamos a conocer la más sencilla: los pines GPIO.
¿Qué es un pin GPIO?
Un pin GPIO (general purpose input/output o entrada/salida de propósito general) es un pin o contacto de un chip cuyo comportamiento y función se puede configurar y controlar desde nuestro programa. Entre los parámetros a configurar, destacan los siguientes:
- Dirección: determina si el pin se utilizará como entrada (obtener información del dispositivo externo) o salida (enviar información o controlar el dispositivo externo). Por ejemplo, un LED externo deberá conectarse a un pin configurado como salida y un botón o interruptor a uno configurado como entrada.
- En el caso de las salidas, el tipo de dato que proporcionan: digital (1 o 0), analógico (un valor de tensión comprendido entre V+ y GND) o PWM (una secuencia de pulsos de anchura y frecuencia configurables).
- En el caso de las entradas, el tipo de dato: digital o analógico.
- En el caso de las entradas digitales, la manera de gestionar el valor cuando el pin está sin conectar a V+ o GND (pull-up o pull-down interno o externo).
El entorno de desarrollo BatSTEM Cloud dispone de bloques de bajo nivel para configurar y controlar todos estos parámetros pero también dispone de otros de más alto nivel que permiten controlar LEDs, botones y otros dispositivos sin tener que preocuparnos por seleccionarlos de manera manual. Durante la lección aprenderemos a usar ambos.
Nuestra placa de desarrollo dispone de un total de 34 pines GPIO aunque no todos pueden configurarse de cualquier combinación de los parámetros descritos.
Parte Práctica
Necesitas los siguientes materiales:
- Placa de desarrollo ESP32.
- Cable de conexion USB.
- Placa de prototipos.
- LED rojo.
- Resistencia de 100 Ohm.
- Cables de conexión.
Esquema electrónico
Diagrama de conexión
Conexión de los componentes en la placa de prototipos
Paso a paso
- Conecta un cable negro entre el conector GND de la placa de desarrollo y la línea azul de la placa de prototipos. La línea azul será nuestra línea de 0 voltios, referencia o GND.
- Conecta un cable rojo entre el conector D4 (pin GPIO4) de la placa de desarrollo y un contacto cualquiera de los bloques centrales de la placa de prototipos.
- Conecta la resistencia del 100 Ohm de manera que uno de sus terminales esté en la misma línea que el cable rojo que acabas de colocar y el otro esté en una línea diferente. De esta manera, el cable rojo y el primer terminal de la resistencia estarán conectados eléctricamente.
- Conecta el LED de manera que el ánodo esté en la misma línea que el segundo terminal de la resistencia y el cátodo en una línea diferente.
- Conecta un cable negro entre un orificio cualquiera de la línea en la que has conectado el cátodo del LED y la línea azul de GND.
- Cuando tengas todo listo, conecta la placa de desarrollo al ordenador con el cable USB. Ya tenemos el circuito listo para comenzar la parte de programación.
Código
Vamos a desarrollar dos sketches que harán que el LED externo parpadee en intervalos de medio segundo, cada uno de ellos usando uno de los dos tipos de bloques disponibles.
¡Quiero saber más!
Como hemos comentado en la parte teórica, tenemos dos tipos de bloques para controlar dispositivos conectados a pines GPIO:
- Bloques de alto nivel que representan dispositivos como LEDs o interruptores.
- Bloques de bajo nivel que nos permiten configurar y controlar el pin GPIO directamente. Mediante estos bloques podremos controlar cualquier tipo de dispositivo aunque no tengamos bloques específicos para él.
Encender y apagar el LED externo. Bloques de alto nivel.
Siguiendo la mecánica que aprendiste en la lección 1, construye y ejecuta el siguiente sketch:
Paso a paso
- Haz clic en Dispositivos y arrastra un bloque “LED con nombre” al bloque configuración del espacio de trabajo.
- Pon un nuevo nombre al LED. Por ejemplo “LED_Externo”.
- Selecciona el pin GPIO al que está conectado el LED. Si has seguido el diagrama de conexión, este pin es el GPIO4.
- Vuelve a hacer clic en Dispositivos y arrastra un bloque “poner LED” al bucle principal. Asegúrate de que el nombre que aparece en el bloque coincide con el que has especificado antes.
- Pon el LED al valor 100 (100% encendido).
- Haz clic en Tiempo y arrastra un bloque de espera bajo el anterior. Especifica 500 milisegundos.
- Ahora debes añadir dos nuevos bloques similares a los anteriores. La única diferencia es el valor en el que pondremos el LED que, en este caso, será 0 (apagado).
Cuando tengamos que añadir bloques similares a los que ya tenemos en el espacio de trabajo podemos hacerlo arrastrando bloques desde la caja de herramientas como hasta ahora o también duplicando los bloques anteriores. Haciendo clic con el botón derecho en un bloque aparece un menú en el que podemos seleccionar Duplicar. Esta opción hace una copia del bloque y la coloca en el espacio de trabajo y solo tendremos que arrastrarla al lugar que queramos.
- Una vez que nuestro programa está terminado pulsa en el botón Ejecutar de la barra de herramientas y espera a que el sketch se compile y se transfiera a la placa de desarrollo. Si todo ha ido bien, verás como el LED externo se enciende y se apaga en intervalos de medio segundo.
Encender y apagar el LED externo. Bloques de bajo nivel.
Construye y ejecuta el siguiente sketch:
Paso a paso
- Haz clic en Dispositivos y arrastra un bloque “configurar pin” al bloque configuración del espacio de trabajo.
- Especifica pin número 4 y ponlo como salida. Recuerda que hemos conectado el LED al pin GPIO 4 y que, para actuar sobre un dispositivo externo, el pin debe configurarse como salida.
- Vuelve a hacer clic en Dispositivos y arrastra un bloque “poner pin” al bucle principal. Asegúrate de especificar el número 4 y ON (encendido).
- Haz clic en Tiempo y arrastra un bloque de espera bajo el anterior. Especifica 500 milisegundos.
- Añade dos nuevos bloques, iguales que los anteriores, pero especificando OFF en el valor del pin.
- Una vez que nuestro programa está terminado pulsa en el botón Ejecutar de la barra de herramientas y espera a que el sketch se compile y se transfiera a la placa de desarrollo. Si todo ha ido bien, verás como el LED externo se enciende y se apaga en intervalos de medio segundo.
Ejercicios adicionales o retos
- Combina lo aprendido en esta lección y en la 1 para desarrollar un sketch que haga parpadear a la vez el LED interno de la placa de desarrollo y el externo.
- Modifica el sketch anterior para que los LEDs parpadeen en contrafase. Esto es, cuando uno se enciende el otro se apaga y viceversa.
- Modifica el sketch para que los dos LEDs sigan esta secuencia con medio segundo de diferencia entre cada cambio:
- Encender azul.
- Encender rojo.
- Apagar azul.
- Apagar rojo.
Resumen de lo aprendido
- Hemos aprendido a controlar un LED externo desde nuestra placa de desarrollo.
- Hemos visto qué son los puertos GPIO y para qué pueden utilizarse.
- Hemos utilizado los dos tipos de bloques que hay disponibles en el entorno BatSTEM Cloud para controlar dispositivos externos: Bloques de alto nivel y bloques de bajo nivel.
Próximos pasos
- Aprende a controlar la intensidad de la luz del LED en la lección 4.