Semáforos [proyecto de Arduino para principiantes] (6 / 7 paso)

Paso 6: Hacer que el programa

Puedes descargar el archivo adjunto o copia y pega este código en el software de arduino.

Luces de tráfico
Por Ben Hovinga http://ben.hovinga.me/

Luces {verde, amarillo, rojo, PEDGREEN, PEDRED}
int luz [2] [5] = {{2,3,4,6,7}, {8,9,10,12,13}};

Botones {luz [0], [1]}
int btn [] = {5,11};

Contadores de tiempo
tgreen int = 30000; 30s
int tyellow = 3000; 3S
int tred = 3000; 3S
int tpedwarn = 5000; 5S (debe ser menor que tgreen)

int tpedwarnint = 500; 0.5s (debe ser menor que tpedwarn)

Otro Vals. No cambie
int btnval = 0;
Boolean pedwait [] = {false, false};
Boolean pedactive [] = {false, false};
directa de int = 0;
int stp = 1;
Boolean stpset = false;
sin firmar largo ahora = 0;
changeat largo sin signo = -1;
changeatped largo sin signo = -1;
Boolean pedredon = true;

PROGRAMA DE INSTALACIÓN
void setup() {}
Asignar todos los pines
para (int x = 0; x < 2; x ++) {}
para (int y = 0 y < 5; y ++) {}
pinMode (luz [x] [y], salida);
}
Empezar todo parado (rojo)
digitalWrite (luz [x] [2], HIGH);
digitalWrite (luz [x] [4], HIGH);
}

Asignar botones
para (int x = 0; x < 2; x ++) {}
pinMode (btn [x], entrada);
}
}

EJECUTAR
void loop() {}
Tiempo de actualización
ahora = millis();

Verifica si presiona el botón
para (int x = 0; x < 2; x ++) {}
btnval = digitalRead(btn[x]);
Si (btnval == HIGH) {}
pedwait [x] = true; Tenemos a alguien esperando para cruzar
}
}

Entrar en ella
interruptor (stp) {}
Verde
caso 1:
Programa de instalación
Si (stpset == false) {}
changeat = ahora + tgreen - tpedwarn; Sistema temporizador
Encender Ped
Si (pedwait [directo a] == true) {}
Cambian de luces para ped
digitalWrite (luz [directo] [3], HIGH);
digitalWrite (luz [directo] [4], LOW);
Establecer algunos vars
pedwait [directo a] = false;
pedactive [directo a] = true;
pedredon = false;
}
Abra verde
digitalWrite (luz [directo] [0], HIGH);
Apagar Red
digitalWrite (luz [directo] [2], LOW);

stpset = true; Somos configuración
}
Ejecutar
Else {}
Si (ahora > changeat) {/ / horas hasta
Si (pedactive [directo a] == true) {}
Apague el Ped
digitalWrite (luz [directo] [3], LOW);
digitalWrite (luz [directo] [4], HIGH);
pedredon = true;
}
Siguiente paso
STP ++;
stpset = false;
}
}
rotura;
Advierten ped (si es posible)
caso 2:
Programa de instalación
Si (stpset == false) {}
changeat = ahora + tpedwarn;
changeatped = ahora + tpedwarnint;
stpset = true;
}
Ejecutar
Else {}
Flash rojo Ped
Si (pedactive [directo a] == true) {}
Si (pedredon == true & & changeatped < ahora) {}
digitalWrite (luz [directo] [4], LOW);
pedredon = false;
changeatped = ahora + tpedwarnint;
}
Si (pedredon == false & & changeatped < ahora) {}
digitalWrite (luz [directo] [4], HIGH);
pedredon = true;
changeatped = ahora + tpedwarnint;
}
}
Si (ahora > changeat) {/ / horas hasta
Apaga
digitalWrite (luz [directo] [0], LOW);
digitalWrite (luz [directo] [4], HIGH);
pedredon = true;
pedactive [directo a] = false;
Siguiente paso
STP ++;
stpset = false;
}
}
rotura;
Amarillo
caso 3:
Programa de instalación
Si (stpset == false) {}
changeat = ahora + tyellow;
digitalWrite (luz [directo] [1], HIGH);
stpset = true;
}
Ejecutar
Else {}
Si (ahora > changeat) {/ / horas hasta
Apaga
digitalWrite (luz [directo] [1], LOW);
Siguiente paso
STP ++;
stpset = false;

}
}
rotura;
Rojo
caso 4:
Programa de instalación
Si (stpset == false) {}
changeat = ahora + tred;
digitalWrite (luz [directo] [2], HIGH);
stpset = true;
}
Ejecutar
Else {}
Si (ahora > changeat) {/ / horas hasta
Volver a empezar
STP = 1;
stpset = false;

Cambio de sentido
Si (directo == 1) {}
directa = 0;
}
Else {}
directo = 1;
}
}
}
rotura;
}
}

Artículos Relacionados

Blockhead Blinky (proyecto de Arduino para principiantes)

Blockhead Blinky (proyecto de Arduino para principiantes)

Esto es sólo una diversión poco a su escritorio.Gracias a mi hermana para hacer el cubo de papel y pelo!Paso 1: Reúna los suministros.Paso 2: Dibujar un rectángulo que es 2 1/2 X 10 "Paso 3: Dibujar líneas que son 2 1/2 aparte.Paso 4: Dibujar 2 plaza
Un proyecto de Arduino para principiantes: Tri color por un LED de color Bi

Un proyecto de Arduino para principiantes: Tri color por un LED de color Bi

Hola y Bienvenidos a mi instructable 7. Esta vez estoy jugando con mi nuevo duemilanove TRduino. En realidad es un clon de Arduino por Thinnkware y con ATMega 328.Arduino es un programador muy bueno y es también abrir fuente (la cosa que me encanta d
Arduino para principiantes y básicos electrónica Kit cartilla

Arduino para principiantes y básicos electrónica Kit cartilla

aprendí que una de mis sobrinas tuvo un interés en la programación.  Ella estaba trabajando con la robótica en el colegio y tiene una pasantía de verano donde tuvieron Arduinos.  Creo que ella fue capaz de pedir prestado un Arduino para experimentar
Solo clic encendido/apagado de tu móvil Android usando Arduino y pfodApp. Arduino para principiantes

Solo clic encendido/apagado de tu móvil Android usando Arduino y pfodApp. Arduino para principiantes

IntroducciónEste instructable muestra cómo puede cambiar un Arduino y la salida de tu móvil Android con tan solo un clic en el icono de pfodApp . Añadir un relé impulsado por esta salida para cambiar el hardware real. No hay codificación Android se r
Generador de código para menús personalizados de Android/Arduino activar salidas de Arduino y apagado. Andriod/Arduino para principiantes. Absolutamente ninguna programación requerida

Generador de código para menús personalizados de Android/Arduino activar salidas de Arduino y apagado. Andriod/Arduino para principiantes. Absolutamente ninguna programación requerida

Actualización: un usuario pidió menú apoyo. pfodApp siempre admite submenús pero he agregado submenús al pfodDesigner. El instructable diseño un sistema de menú Custom muestra cómo utilizar pfodDesigner para crear un menú con submenús que mostrará en
Diseñar un menú personalizado menú sistema--Android/Arduino para principiantes--absolutamente ninguna programación requerida

Diseñar un menú personalizado menú sistema--Android/Arduino para principiantes--absolutamente ninguna programación requerida

IntroducciónEste instructable muestra cómo utilizar el libre pfodDesigner disponible en GooglePlay para diseñar un sistema Android menú con submenús para dispositivos compatibles con Arduino.El tutorial es adecuado para principiantes. No se requiere
Cómo cambiar un Arduino salida de encendido y apagado de tu móvil Android.  Arduino para principiantes

Cómo cambiar un Arduino salida de encendido y apagado de tu móvil Android. Arduino para principiantes

Actualización: Ver Andriod/Arduino para principiantes - diseño personalizado Andriod menús para activar salidas de Arduino y apagado. Absolutamente ninguna programación requerida para una alternativa que no requiere ninguna programación en todos.Cómo
Semáforo de Arduino para principiantes

Semáforo de Arduino para principiantes

este es mi primer instructables, así va a ser bastante simple. Compré un Arduino y decidí hacerla en un semáforo, pero sólo tenía LEDs verde, no amarillo o azul y rojo. Así que esto es lo que hice: un semáforo que parpadea 3 veces antes de cambiar de
¿Semáforo simple de Arduino

¿Semáforo simple de Arduino

han hecho una ciudad fuera de Legos? Sé que he construido muchos de ellos pero todos ellos perdieron algo... Luces de tráfico!Así que decidí hacer mi propio semáforo setup de mi placa de arduino.Paso 1: Se necesita: Se necesita:Una placa arduinoLED r
10 proyectos de breadboard para principiantes

10 proyectos de breadboard para principiantes

Protoboard es una gran manera para construir proyectos electrónicos fácilmente y en menos tiempo sin necesidad de soldadura. Un problema que es enfrentado por los principiantes en el campo de la electrónica es que no se puede soldar los componentes c
Arduino para principiantes, ahora con datos de trazado, controlado por Android, No codificación requerida, No requiere de soldadura.

Arduino para principiantes, ahora con datos de trazado, controlado por Android, No codificación requerida, No requiere de soldadura.

IntroductionEste instructable muestra que cómo puede leer y escribir los pines digitales de tu Arduino Uno y leer los valores de los pines analógicos todo controlado desde tu móvil Android sin hacer cualquier codificación. Este proyecto es plug and p
Arduino para principiantes

Arduino para principiantes

Arduino es un ordenador de bolsillo (también llamado un "microcontrolador") que se puede programar para controlar circuitos. Interactúa con la palabra exterior a través de sensores, leds, motores, altavoces... incluso el internet; Esto es una pl
Arduinos para principiantes taller

Arduinos para principiantes taller

Esta es una guía a la ejecución de un taller en los aspectos básicos de Arduinos, adecuado para grupos pequeños a las aulas. Funcionó originalmente como taller para los estudiantes de 6 a 9 primer año Universidad, pero podría funcionar para los estud
Segundo proyecto de Crochet para principiantes: Doble Crochet cuadrado

Segundo proyecto de Crochet para principiantes: Doble Crochet cuadrado

este es mi siguiente Plaza de ganchillo para principiantes, siguiendo el punto bajo uno. Le sugiero que punto bajo principal antes de continuar con el doble. La principal diferencia es el tamaño porque doble ganchillo está sobre dos veces tanto como