¡Aprende a encender un led, controlar el tiempo para obtener iluminación intermitente y regular el brillo, como una verdadera luz de discoteca!
• NIVEL DE DIFICULTAD: Principiante
• DURACIÓN DE LA ACTIVIDAD: 30 min.
El LED monocromático es un módulo que emite luz de un color fijo. Puedes utilizar módulos con el led azul, verde, amarillo, rojo o blanco para este ejercicio.
La placa de circuito 4in1 Build & Code es el cerebro, y tenemos que decirle qué hacer. ¿Cómo? Podemos hacerlo de diferentes maneras, utilizando gráficamente el lenguaje de bloques o escribiendo código en texto. En ambos casos, necesitamos descargar un software gratuito capaz de programar nuestro cerebro:
Si es tu primer proyecto o tienes problemas al cargar tu programa revisa nuestros primeros pasos
La placa 4in1 Build&Code tiene 12 puertos digitales (I/O). Cada puerto se puede definir como entrada o salida
El siguiente paso es conectar los componentes. Usaremos una fuente de alimentación de Corriente Continua (DC) con una tensión máxima de 12V. Un valor bajo y completamente seguro para nostros.
Cada componente tiene 3 pines: voltaje (V) y tierra (G) para alimentarlo, y señal (S) que puede estar con un estado "alto" (5V) o "bajo" (0V).
Para encender un led, como cualquier otro actuador digital, necesitamos definir un puerto de salida y ponerlo en un estado de nivel "alto" o "bajo", configurándolo con un valor "1" o "0", "encendido" o "apagado" respectivamente.

Si no has usado MBlock anteriormente , o Arduino IDE, puede echar un ojo nuestra página de primeros pasos
int LED = 3; // CONNECT LED TO DIGITAL IO 3 void setup() { pinMode(LED, OUTPUT); // DEFINE AS OUTPUT } void loop() { digitalWrite(LED, HIGH); // POWER ON LED }

int LED = 3; // DEFINE LED DIGITAL OUTPUT TO DIO 3 void setup() { pinMode(LED, OUTPUT); // DEFINE DIO PIN AS OUTPUT } void loop() { digitalWrite(LED, HIGH); // POWER ON LED delay(1000); // WAIT ONE SECOND (1000ms = 1s) digitalWrite(LED, LOW); // POWER OFF LED delay(1000); // WAIT ONE SECOND (1000ms = 1s) }
Prueba a variar la velocidad, modifica el tiempo de 1 segundo a 1/4s, 2s y 10 s.
Tal vez quieras cambiar el ritmo o cadencia, prueba definiendo distintos tiempos para los estados "ALTO" y "BAJO".
Al codificar, podemos usar variables, un nombre simbólico asociado con un valor que se puede cambiar fácilmente en la definición o durante la ejecución del programa.
Necesitamos definirlo, asignar un valor inicial y usar ese nombre en lugar de números directamente en nuestras funciones. ¡Intentalo!
int LED = 3; // DEFINE LED TO DIO 3 int time1 = 3000; //DEFINE VARIABLE WITH TIME POWERED ON/OFF IN MILISECONDS void setup() { pinMode(LED, OUTPUT); // DEFINIR PIN COMO SALIDA } void loop() { digitalWrite(LED, HIGH); // POWER ON LED delay(time1); // WAIT MILISECONDS DEFINED IN TIME1 VAR digitalWrite(LED, LOW); // POWER OFF LED delay(time1); // WAIT MILISECONDS DEFINED IN TIME1 VAR }
Si quieres tener un ritmo diferente, necesitarás agregar una segunda variable, por lo que el tiempo "encendido" y el tiempo "apagado" son diferentes. ¡Hazlo!
Los LED son componentes de ENCENDIDO o APAGADO, como salida digital, no se pueden alimentar a medias para obtener menos brillo. La solución es parpadear muy rápido, usando pulsos tan rápidos que nuestros ojos no pueden ver. ¡Del orden de 25000 pulsos por segundo!
Ajustando diferentes tiempos para el estado "BAJO" y "ALTO", podemos percibir diferentes brillos de led. Esto se llama modulación por ancho de pulsos (PWM) . Esto también se usa para controlar otros dispositivos, lo veremos en las próximas actividades.

La placa 4in1 también tiene salidas analógicas, donde los valores numéricos de nuestro código se convierten a un nivel de voltaje variable. En nuestro programa podemos definirlo de 0 a 255, y la salida de voltaje será de 0 a 5 voltios. Internamente, esto se hace usando PWM y algunos dispositivos electrónicos ( filtro paso bajo )

int LED = 3; // DEFINE LED DIGITAL OUTPUT TO DIO 3 int brillo = 0; // VARIABLE TO DEFINE LED BRIGHTNESS void setup() { pinMode(LED, OUTPUT); // DEFINE DIO PIN AS OUTPUT } void loop() { analogWrite(LED, brillo); // ADJUST PWM ACCORDING BRIGHTNESS VARIABLE delay(250); // WAIT 250 MILISECONDS brillo = brillo + 10; // INCREMENT VARIABLE VALUE IN 10 }
¡Ahora puedes agregar todos tus módulos led y hacer que brillen como desees! Descarga las plantillas de cartón para construirlo. A continuación dispones de un código de ejemplo. Prueba a crear diferentes combinaciones, distintos tiempos para cada led... ¡opciones sin límite!
int led_blanco = 2; int led_rojo = 3; int led_verde = 4; int led_amarillo = 5; int led_azul = 6; int velocidad = 500; void setup() { pinMode(led_blanco, OUTPUT); pinMode(led_rojo, OUTPUT); pinMode(led_verde, OUTPUT); pinMode(led_amarillo, OUTPUT); pinMode(led_azul, OUTPUT); } void loop() { for (int i = 0; i < 10; i++) { delay(200); digitalWrite(led_blanco, LOW); delay(200); digitalWrite(led_blanco, HIGH); } delay(velocidad); int brillo = 0; while (brillo > 255) { brillo = brillo + 5; analogWrite(led_rojo, brillo); delay(100); } delay(velocidad); digitalWrite(led_verde, HIGH); delay(velocidad); digitalWrite(led_amarillo, HIGH); delay(velocidad); digitalWrite(led_azul, HIGH); delay(velocidad); digitalWrite(led_azul, LOW); delay(velocidad); digitalWrite(led_amarillo, LOW); delay(velocidad); digitalWrite(led_verde, LOW); brillo = 255; while (brillo < 0) { brillo = brillo - 5; analogWrite(led_rojo, brillo); delay(100); } }
El Mega Maker Kit te ofrece el todo el material que necesitas para completar el itinerario, pero si dispones de otro kit, también puedes realizar algunos proyectos. Te animamos a que los revises todos, o que compres los componentes que necesites. Puedes verificar que actividades puedes realizar en nuestra página del Itinerario de aprendizaje.