
Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39

Hola, voy a mostrarte cómo programar un semáforo para peatones para Arduino en C ++ con una máquina de estado finito usando YAKINDU Statechart Tools. Esto demostrará el poder de las máquinas de estado y se puede utilizar como modelo para otros proyectos.
Suministros
Solo necesitas un Arduino, algunos pulsadores, LEDs, Jumper y resistencias.
Hardware
- 2x pulsador
- 2x semáforos o puede utilizar LED con resistencias de 220 ohmios
- 2x resistencias de 10k Ohm
- Tablero de circuitos
- Saltador
- Arduino Uno / Mega (o cualquier otro, que tenga al menos 8 GPIO)
Software
- Herramientas de gráficos de estado de YAKINDU
- Eclipse C ++ IDE para Arduino
Paso 1: defina cómo funciona: semáforo para peatones
En primer lugar, debemos especificar cómo debe funcionar el semáforo para peatones. Intenté resumir las viñetas:
- Se utilizan dos semáforos, uno para los coches y otro para los peatones.
- El semáforo se puede encender con un botón
- El peatón puede solicitar cruzar la calle presionando un botón
- El semáforo apagado se indica mediante el parpadeo de ambos LED amarillos
- Después de encenderse, el semáforo espera 10 segundos en modo seguro.
- Después del modo seguro, los automóviles siempre tienen una fase verde hasta que un peatón inicia una solicitud
- La solicitud de un peatón para cruzar se indica al alternar el LED amarillo
Además, hay algunos eventos de tiempo dependiendo de la forma en que funciona un semáforo.
Paso 2: construye el circuito

Comencemos a configurar el circuito. En mi ejemplo, como puede ver en la imagen de vista previa, he usado un Arduino Mega 2560, pero cualquier otro Arduino con al menos ocho GPIO debería estar bien. Además, compré algunos semáforos de 5V en Amazon. Simplemente busque Traffic Light Arduino. De lo contrario, simplemente puede usar seis LED diferentes. Además, necesita dos pulsadores y dos resistencias de 10k Ohm.
Los tres LED de la izquierda se utilizan para el tráfico de automóviles y los tres LED de la derecha para los peatones, donde el amarillo puede indicar una solicitud.
Paso 3: crear la máquina de estado

Entonces, como puede ver, hay dos estados principales con miembros compuestos: estado activado y estado desactivado. Puede cambiar entre ambos estados utilizando el evento onOff, que está conectado al botón ON / OFF. En el estado inicial, el estado apagado, ambos LED amarillos comienzan a parpadear cada segundo. Una vez encendido el semáforo, comienza en Safestate. Pasados 10 segundos se manejará el comportamiento típico de los semáforos. El LED rojo y amarillo se encenderá en el estado StreetPrepare y el semáforo se pondrá verde después de 2 segundos más. A partir de ahora, la máquina de estado está esperando el evento pedestrianRequest, que está conectado al segundo botón. Después de enviar el evento, la solicitud se indicará alternando el LED amarillo cada segundo en el estado PedWating. 7 segundos después, el semáforo cambiará a amarillo primero y luego a rojo hasta que los peatones reciban la señal para entrar en el estado PedestrianGreen. Después de esto, el PedestrianRed se activa y el ciclo se repite. Esto solo se puede interrumpir apagando el semáforo nuevamente.
Paso 4: ejecutar el ejemplo

Paso 5: Código C ++ generado
El código C ++ generado es un caso de conmutación clásico para manejar la lógica de la máquina de estado. Esto es solo un fragmento de código de cómo se ve:
void TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {caso main_region_on_r1_StreetGreen: {main_region_on_r1_StreetGreen_react (verdadero); rotura; } caso main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (verdadero); rotura; } predeterminado: romper; } clearInEvents (); }
Paso 6: Obtenga el ejemplo
Todo el ejemplo está listo para compilar y ejecutar. Viene con YAKINDU Statechart Tools, que es gratuito para uso no comercial. Después de la descarga, puede importar el ejemplo directamente en la herramienta:
Archivo -> Nuevo -> Ejemplo -> Ejemplos de gráficos de estado de YAKINDU -> Siguiente -> Semáforo (C ++) para Arduino
> AQUÍ puedes descargar YAKINDU Statechart Tools <<
Puede comenzar con una prueba de 30 días. Luego, debe obtener una licencia, que es gratuita para uso no comercial.
Recomendado:
Proyecto de semáforo Arduino [con paso de peatones]: 3 pasos
![Proyecto de semáforo Arduino [con paso de peatones]: 3 pasos Proyecto de semáforo Arduino [con paso de peatones]: 3 pasos](https://i.howwhatproduce.com/images/003/image-6999-j.webp)
Proyecto de semáforo de Arduino [con paso de peatones]: si está buscando algo fácil, simple y al mismo tiempo desea impresionar a todos con su Arduino, entonces el proyecto de semáforo es probablemente la mejor opción, especialmente cuando es un principiante en el mundo de Arduino. Primero veremos ho
State Machine y multitarea en Arduino con expansores SPI: 3 pasos

State Machine y multitarea en Arduino con expansores SPI: La semana pasada, estaba pidiendo crear un sistema para probar fuegos artificiales con un arduino. Necesitaba alrededor de 64 salidas para controlar los incendios. Una forma de hacerlo es utilizar expansores IC. Por lo tanto, hay 2 soluciones disponibles: - un expansor I2C pero necesita inversor cuando po
Simulación inteligente de semáforo con DragonBoard 410c: 7 pasos (con imágenes)

Simulación Inteligente de Semáforo con DragonBoard 410c: | MATERIALES: MDF 1.20 Mts. x 1.20 Mts. 8 LEDs: · 2 verdes y middot; 2 Amarillo y middot; 2 rojos y middot; 2 BlancosUna pieza de cartón. Tablero de Dragón 410c Cuchilla Alambres Pistola de Silicona de Silicona Coche de JugueteProtoboardPulse el botón Infrarrojos
Sistema de semáforo de 4 vías con 5 Arduinos y 5 módulos inalámbricos NRF24L01: 7 pasos (con imágenes)

Sistema de semáforo de 4 vías con 5 Arduinos y 5 módulos inalámbricos NRF24L01: Hace poco creé un Instructable que detallaba un solo par de semáforos en una placa de pruebas. También creé otro Instructable que muestra el marco básico para usar un módulo inalámbrico NRF24L01. me hizo pensar! Hay bastantes
Programación de un PLC para controlar un semáforo: 7 pasos (con imágenes)

Programación de un PLC para controlar un semáforo: Los PLC se utilizan en todo lo que encontramos a diario. Desde las máquinas que enlatan o embotellan artículos como cerveza, refrescos, sopas y muchos otros productos empaquetados hasta las cintas transportadoras en Walmart y los semáforos en algunas intersecciones, los PLC tocan un