Type something to search...
Semáforo sencillo

Semáforo sencillo


// C++ code
//

// Pines de los LEDs del semáforo sencillo
const int LED_VERDE = 2;
const int LED_AMARILLO = 3;
const int LED_ROJO = 4;

void setup() {
  // Configuración de los pines OUTPUT
  pinMode(LED_VERDE, OUTPUT);
  pinMode(LED_AMARILLO, OUTPUT);
  pinMode(LED_ROJO, OUTPUT);
}

void loop() {
  // Encender el LED verde por 3 segundos
  digitalWrite(LED_VERDE, HIGH);
  delay(3000);

  // Parpadeo del LED verde usando un ciclo For
  for (int i = 0; i < 5; i++) { // Ajusta el número de parpadeos 
    digitalWrite(LED_VERDE, LOW);
    delay(300);
    digitalWrite(LED_VERDE, HIGH);
    delay(300);
  }

  // Apagar el LED verde y encender el amarillo por 2 segundos
  digitalWrite(LED_VERDE, LOW);
  digitalWrite(LED_AMARILLO, HIGH);
  delay(2000);

  // Apagar el LED amarillo y encender el rojo por 3 segundos
  digitalWrite(LED_AMARILLO, LOW);
  digitalWrite(LED_ROJO, HIGH);
  delay(3000);

  // Apagar el LED rojo para repetir la secuencia
  digitalWrite(LED_ROJO, LOW);
}

Explicación del Código: Control de un Semáforo Sencillo

Este código en C++ simula el funcionamiento de un semáforo sencillo utilizando un microcontrolador Arduino. Controla tres LEDs (verde, amarillo y rojo), que se encienden y apagan en una secuencia típica de semáforo.


1. Definición de Pines

Se asignan constantes a los pines del microcontrolador que estarán conectados a los LEDs:

Esto facilita el control de cada LED mediante nombres descriptivos en lugar de números de pin.

const int LED_VERDE = 2;
const int LED_AMARILLO = 3;
const int LED_ROJO = 4;

2. Funcion Setup

En esta funcion se configuran los pines como salidas (OUTPUT) para controlar los leds.Esto permite enviar señales de encendido o apagado a cada LED.

3. Funcion Loop

Ciclo Principal: loop() La función loop() contiene la lógica que se ejecuta de manera continua:

Encender el LED verde:

digitalWrite(LED_VERDE, HIGH);
delay(3000);
//El LED verde se enciende por 3 segundos.

Parpadeo del LED verde:

for (int i = 0; i < 5; i++) {
  digitalWrite(LED_VERDE, LOW);
  delay(300);
  digitalWrite(LED_VERDE, HIGH);
  delay(300);
}

Aquí, el LED verde parpadea 5 veces (encendido/apagado con un intervalo de 300 ms).

Transición al LED amarillo:

digitalWrite(LED_VERDE, LOW);
digitalWrite(LED_AMARILLO, HIGH);
delay(2000);

El LED amarillo se enciende por 2 segundos mientras el verde se apaga.

Transición al LED rojo:

digitalWrite(LED_AMARILLO, LOW);
digitalWrite(LED_ROJO, HIGH);
delay(3000);

Finalmente, el LED rojo se enciende por 3 segundos mientras el amarillo se apaga.

Reinicio del ciclo:

digitalWrite(LED_ROJO, LOW);

Se apagan todos los LEDs, y el ciclo se repite desde el principio.

Desafíos


Desafío 1: Cambiar Duraciones

Descripción: Modifica el código para ajustar las duraciones de cada LED encendido. Por ejemplo:

  • LED verde: 5 segundos
  • LED amarillo: 1 segundo
  • LED rojo: 4 segundos

Pista: Edita los valores de delay() en las secciones correspondientes del código.


Desafío 2: Parpadeo de LED Rojo

Descripción: Modifica el código para que el LED rojo parpadee rápidamente durante sus 3 segundos encendido.

Pista: Añade un ciclo for similar al usado para el LED verde, pero ajusta el número de parpadeos y la duración de delay().


Preguntas:

Preguntas básicas:

  • Respuesta: Un LED (Light Emitting Diode) es un diodo que emite luz cuando la corriente eléctrica fluye a través de él en la dirección correcta. Se utiliza en circuitos para iluminación y señalización.
  • Respuesta: La resistencia limita la corriente que pasa a través del LED, evitando que se queme debido a un exceso de corriente.
  • Respuesta: El pin GND (Ground) es el punto de referencia de voltaje cero en un circuito y se conecta a la tierra del circuito para completar el flujo de corriente.
  • Respuesta: El ánodo es el lado positivo y normalmente es la pata más larga del LED. El cátodo es el lado negativo, identificado por la pata más corta o una marca plana en el borde del LED.
  • Respuesta: El LED probablemente se quemará porque pasará demasiada corriente a través de él, superando su capacidad.

Preguntas intermedias:

  • Respuesta: La resistencia se calcula usando la fórmula V=IR
  • Respuesta: Un pin digital en Arduino puede tener dos estados, HIGH (5V) o LOW (0V). Se utiliza para controlar dispositivos como LEDs. Por ejemplo, puedes usar el comando digitalWrite(pin, HIGH) para encender un LED conectado a ese pin.
  • Respuesta: Un pin digital solo tiene dos estados (HIGH o LOW), mientras que un pin analógico puede leer o escribir valores continuos, como voltajes entre 0 y 5V.
  • Respuesta: Un LED parpadea cuando se enciende y apaga de forma repetida. Esto se programa alternando el estado del LED con digitalWrite y agregando un retardo con delay().

Preguntas avanzadas:

  • Respuesta: Usando la Ley de Ohm: Por lo tanto, necesitas una resistencia de al menos 150 ohmios.
  • Respuesta: Si usas una resistencia de mayor valor, el LED emitirá menos luz porque pasa menos corriente a través de él.
  • Respuesta: Conectas el potenciómetro a un pin analógico de Arduino para leer su valor. Luego usas ese valor para ajustar el brillo del LED con analogWrite(), que utiliza modulación por ancho de pulso (PWM).

Publicaciones relacionadas

Encender y apagar led usando processing

Encender y apagar led usando processing

Encender y Apagar Luz LED Usando Processing Índice¿Qué es Processing? Temas importantes del proyecto Especificación detallada de las conexiones Especificaciones del proyecto Preg

read more
Multímetro

Multímetro

Introducción En esta clase, aprenderás sobre componentes electrónicos básicos como resistencias, potenciómetros y el uso de un multímetro para medir voltajes. También exploraremos cómo estos concep

read more
Web climatológica con hora

Web climatológica con hora

ÍndiceÍndice ¿Qué es una página web? Ejemplos de páginas web: [¿Cómo se construye una página web?](#cómo-se-construye-u

read more
Reloj digital LCD

Reloj digital LCD

Reloj digital LCD Introducción En este tutorial, vamos a crear un reloj digital utilizando un display LCD y un microcontrolador

read more
Semáforos Coordinados

Semáforos Coordinados

Semáforos coordinados Introducción En este proyecto, vamos a crear un sistema de semáforos coordinados utilizando Arduino.

read more
Markdown Style Guide

Markdown Style Guide

Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro. Headings The following HTML <h1>—<h6> elements represent six levels of section headings

read more
Pantallas LCD

Pantallas LCD

Introducción a las Pantallas LCD Las pantallas LCD (Liquid Crystal Display) son dispositivos electrónicos utilizados para mostrar información de manera clara y eficiente. Estas pantallas son muy co

read more
Personalizar caracteres en LCD

Personalizar caracteres en LCD

ÍndiceExplicación del Código Componentes Clave del Código Librería LiquidCrystal_I2C [In

read more
Semáforo Doble

Semáforo Doble

Descripción del código Este programa controla el funcionamiento de dos semáforos simulados utilizando un Arduino. Cada semáforo cuenta con tres luces LED: verde, amarillo y rojo. El programa altern

read more
Galería Web

Galería Web

Introducción Este proyecto está diseñado para comprender las bases del desarrollo web, comenzando con HTML y CSS básicos y progresando a JavaScript interactivo. Se divide en **cuatro etapas evoluti

read more
Controlador L298N DC Motor para Arduino

Controlador L298N DC Motor para Arduino

Introduccion Si bien eventualmente necesitarás aprender a controlar motores de CC para construir tu propio robot, probablemente necesitarás algo un poco más fácil para comenzar, y ahí es donde entr

read more
Componentes HTML

Componentes HTML

import YouTubeEmbed from '../../layouts/components/YouTubeEmbed.astro'; Componentes HTML y Estilos CSS En este blog explicativo se muestran los componentes principales de HTML y estilos CSS para

read more
Portafolio web

Portafolio web

Proyecto: Página Personal o Portafolio Web Objetivo Crear una página web personal en la que se muestre:Una cabecera con tu nombre y un menú de navegación. Una sección "Sobre Mí" co

read more
Juego de adivinar el número

Juego de adivinar el número

Proyecto: Juego de Adivinar el Número Objetivo Crear un juego interactivo en el que el usuario debe adivinar un número aleatorio entre 1 y 100. El juego brindará retroalimentación indicando si

read more
Introducción a Javascript

Introducción a Javascript

Test Código<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <title>Introducción a JavaScript</title> <style> /* E

read more
Examen Práctico: Mi Página Personal

Examen Práctico: Mi Página Personal

Examen Práctico: Objetivo Crear una página web personal con diseño moderno en la que se muestre:Una cabecera fija con tu nombre y un menú de navegación interactivo. **Una sección "Sob

read more
Proyectos

Proyectos

Planificación de 12 Semanas para Proyectos Los proyectos serán libres y sencillos, pero deberán abordar un problema escolar o de la comunidad, utilizando al menos dos de las tecnologías vistas en c

read more
Hosting y Alojamiento web

Hosting y Alojamiento web

Hosting, Dominios, Almacenamiento y Bases de Datos 🌐 🎯 ObjetivosEntender qué es un dominio y un hosting Conocer el papel del almacenamiento web Descubrir para qué sirven l

read more
Evaluación Parcial

Evaluación Parcial

Evaluación del Avance del ProyectoObjetivo General de la Evaluación:Verificar que los equipos hayan cumplido con al menos el 70% del desarrollo funcional del proyecto, incluyendo inte

read more
Bases para la Elaboración del Reporte Breve del Proyecto

Bases para la Elaboración del Reporte Breve del Proyecto

📝 Bases para la Elaboración del Reporte Breve del ProyectoFormato: Documento Word (máximo 4 páginas)Entrega: En formato digital (PDF), cargar en el apartado de Archivos.

read more
Mascota virtual

Mascota virtual

🐾 Proyecto: Mascota Virtual en Escritorio con Python Este proyecto te guiará paso a paso para crear una mascota virtual que se mueva por tu pantalla de Windows y muestre mensajes motivadores c

read more
Mascota virtual

Mascota virtual

🐾 Proyecto: Mascota Virtual en Escritorio con Python Este proyecto te guiará paso a paso para crear una mascota virtual que se mueva por tu pantalla de Windows y muestre mensajes motivadores c

read more
Instalación IDE Arduino

Instalación IDE Arduino

Instalación del Entorno de Desarrollo para Arduino Introducción En este

read more