Beruflich Dokumente
Kultur Dokumente
NUEVO LEÓN
Proyecto.
Cruce de dos semáforos con Arduino.
Explicación:
Usare dos botones para simular los sensores de un cruce estos tendrían la función de
cuando un vehículo ocupe cruzar este hará detener el otro semáforo y procederá a dar luz
verde al vehículo, cada juego de luces tendrá LEDs rojos, amarillos y verdes como
normalmente tendría un semáforo. Inicialmente, el sistema permitirá que el tráfico fluya en
una dirección por lo que las luces orientadas a este se pondrán verde y las luces del lado
contrario se pondrán en rojo.
Funcionamiento:
Este es simple, cuando ocupemos dejar fluir el tráfico en la dirección contraria apretamos
el botón, al cabo de aproximadamente 10 segundos estos cambiaran de verde a amarillo
para luego pasar al rojo del semáforo 1, después el semáforo 2 procederá a ponerse verde
para así dejar fluir el tráfico y así sucesivamente se podrá hacer con el semáforo contrario.
Materiales:
Código:
El siguiente código sin más problemas lo introduciremos en el software de Arduino para
que lo pueda compilar y después correr, sin más antes asegurarnos que nuestro Arduino
tenga buena conexión a nuestro pc.
// Semáforo Arduino
// define the pins that the buttons and lights are connected to:
#define westButton 3
#define eastButton 13
#define westRed 2
#define westYellow 1
#define westGreen 0
#define eastRed 12
#define eastYellow 11
#define eastGreen 10
#define yellowBlinkTime 500 // 0.5 seconds for yellow light blink
boolean trafficWest = true; // west = true, east = false
int flowTime = 10000; // amount of time to let traffic flow
int changeDelay = 2000; // amount of time between color changes
void setup()
{
// setup digital I/O pins
pinMode(westButton, INPUT);
pinMode(eastButton, INPUT);
pinMode(westRed, OUTPUT);
pinMode(westYellow, OUTPUT);
pinMode(westGreen, OUTPUT);
pinMode(eastRed, OUTPUT);
pinMode(eastYellow, OUTPUT);
pinMode(eastGreen, OUTPUT);
Usamos #define para asociar los números de pin digital con etiquetas para todos los LEDs
utilizados, así como los dos botones.
Tenemos LEDs rojos, amarillos y verdes y un botón para cada uno de los semáforos. La
variable booleana trafficWest se utiliza para hacer un seguimiento y comprobar que la
forma en que el tráfico es en realidad de oeste a este y falso si es de este a oeste.
La variable flowTime es el periodo mínimo de tiempo que los vehículos tienen para cruzar.
Cuando un vehículo hace que se encienda una luz roja, el sistema retrasa este para dar
tiempo necesario a los del otro semáforo para cruzar la intersección.
La variable entera variableDelay es el período de tiempo entre que hay para que los
semáforos cambien de verde a amarillo y a rojo.
Antes de que el código entre en la sección void loop (), se establece para el tráfico del flujo
de oeste a este en la configuración de void setup()
Una vez que se está ejecutando, el programa no hace nada hasta que uno de los botones
esté presionado. Cuando se presiona el botón del lado este, la línea
if (trafficWest == true)
asegura que las luces cambian sólo si el tráfico se dirige en la dirección opuesta. El resto de
la sección de código se compone de una simple secuencia de espera y luego encender y
apagar varios LED para simular el tráfico.
FACULTAD DE INGENIERÁ
A MECÁNICA Y ELECTRICA
Proyecto.
Explicación:
Un display de 7 segmentos no es mas que un conjunto de LEDs como los que ya conocemos
y hemos estado utilizando en las materias relacionadas, solo que estos están conectados en
un circuito.
En este caso se usara el modelo DC05, el cual es de catodo común, es decir, internamente
todos los LEDs comparten la misma tierra (GND).