Lightstik luz bar controlador (3 / 4 paso)

Paso 3: codificación

Pop Quiz: en el video, qué sección del código se ejecuta como se activa el interruptor. Pista, comienza con el interruptor en la posición uno y mueva el interruptor secuencialmente de 1 a 5 y luego recto detrás a 1 en el final. Sin embargo, las secciones de código no son secuenciales; IE: posición 1 no ejecuta el código en la sección etiquetado 1 en el bosquejo. Te voy a dar este uno - posición 1 = CA: en el bosquejo y CA: es la última sección en el bosquejo, no el primero como uno podría sospechar.

La forma tiene este trabajo es verificar los pines analógicos (2-6) para el voltaje del interruptor rotatorio. Yo no se molestó con cualquier suposición matemática o cualquier otra cosa aquí. Después de monitorear las clavijas de que vi que siempre registrados un número alrededor 20-30 excepto el pasador que del interruptor era actualmente voltaje a. Que la clavija sería alrededor de unos 500-600 (lo sentimos, no recuerdo el número exacto). Así que solo tengo la apariencia de código para un perno que > 200 y vuelva a ejecutar la correspondiente sección de código que quiero para esa posición.

Bosquejo de cuadro control para control de tráfico ARROWSTIK luz bar, escrito por Bradley S. Worthington-White

DEFINICIÓN DE CONSTANTES

Los relés de uso son normalmente cerrados, R_ON & R_OFF a continuación realizar el boceto un poco más fácil, escritura inversa R_ON R_OFF para relés normalmente abiertos

const int R_ON = bajo; Relé de encendido

const int R_OFF = alto; Relé apagado

definir números de pines para las luces en la barra de luces

const int rápido = 2; Flecha izquierda (una luz)

const int LCARGO = 3; Izquierda dos luces exteriores

const int centro = 4; Centro dos luces

const int RTwo = 5; Derecha dos luces exteriores

const int RArrow = 6; Flecha (una luz) derecha

DEFINICIÓN DE VARIABLES

la waittime(s) a continuación se cambia dentro de las secciones individuales del bosquejo según corresponda

waittime int; waittime

int waittime2; segundo waittime

int waittime3; y un tercer waittime

void setup()

{

asegurar que todas las luces están apagados en el inicio o reinicio

digitalWrite (RArrow, R_OFF);

digitalWrite (RTwo, R_OFF);

digitalWrite (centro, R_OFF);

digitalWrite (LCARGO, R_OFF);

digitalWrite (rápido, R_OFF);

configurar pin digital modos para la conmutación de los relés

pinMode (RArrow, salida);

pinMode (RTwo, salida);

pinMode (centro, salida);

pinMode (LCARGO, salida);

pinMode (rápido, salida);

configurar modos pin analógico de entrada desde el selector de 5 posiciones

pinMode (A1, entrada);

pinMode (A2, entrada);

pinMode (A3, entrada);

pinMode (A4, entrada);

pinMode (A5, entrada);

}

void loop()

{

Asegúrese de que el valor de todos los pines analógicos es cero (0) en el inicio o reinicio

analogWrite(A1,0);

analogWrite(A2,0);

analogWrite(A3,0);

analogWrite(A4,0);

analogWrite(A5,0);

Interruptor: / / Lee la posición del interruptor y va a la sección marcada en el dibujo que se aplica

Si (analogRead(A1) > 200) goto CA1;

else if (analogRead(A2) > 200) goto LA1;

else if (analogRead(A3) > 200) goto RA1;

else if (analogRead(A4) > 200) goto AL1;

else if (analogRead(A5) > 200) goto KR1;

KR1: //Knight Rider

definición de waittime(s) de esta secuencia

waittime = 75;

waittime2 = 25;

digitalWrite(LArrow,R_ON);

Delay(waittime);

digitalWrite(LTwo,R_ON);

Delay(waittime2);

digitalWrite(LArrow,R_OFF);

Delay(waittime);

digitalWrite(Center,R_ON);

Delay(waittime2);

digitalWrite(LTwo,R_OFF);

Delay(waittime);

digitalWrite(RTwo,R_ON);

Delay(waittime2);

digitalWrite(Center,R_OFF);

Delay(waittime);

digitalWrite(RArrow,R_ON);

Delay(waittime2);

digitalWrite(RTwo,R_OFF);

Delay(waittime);

digitalWrite(RTwo,R_ON);

Delay(waittime2);

digitalWrite(RArrow,R_OFF);

Delay(waittime);

digitalWrite(Center,R_ON);

Delay(waittime2);

digitalWrite(RTwo,R_OFF);

Delay(waittime);

digitalWrite(LTwo,R_ON);

Delay(waittime2);

digitalWrite(Center,R_OFF);

Delay(waittime);

digitalWrite(LArrow,R_ON);

Delay(waittime2);

digitalWrite(LTwo,R_OFF);

Delay(waittime);

digitalWrite(LArrow,R_OFF);

Goto interruptor; cada sección siempre vuelve a cambiar para comprobar si ha cambiado la posición del interruptor

LA1: secuencia de dirección de //LEFT

waittime = (125); definición de waittime(s) de esta secuencia

waittime2 = (200);

waittime3 = (50);

digitalWrite (RTwo, R_ON); comienza encendiendo luces en secuencia de izquierda a derecha

Delay(waittime);

digitalWrite (centro, R_ON);

Delay(waittime);

digitalWrite (LCARGO, R_ON);

Delay(waittime);

digitalWrite (rápido, R_ON);

Delay(waittime);

digitalWrite (rápido, R_OFF); Después de todo, flecha izquierda parpadea luces en

Delay(waittime2);

digitalWrite (rápido, R_ON);

Delay(waittime2);

digitalWrite (rápido, R_OFF);

Delay(waittime2);

digitalWrite (rápido, R_ON);

Delay(waittime2);

digitalWrite (rápido, R_OFF);

luces de giro, de derecha a izquierda - rápidamente

digitalWrite (RTwo, R_OFF);

Delay(waittime3);

digitalWrite (centro, R_OFF);

Delay(waittime3);

digitalWrite (LCARGO, R_OFF);

Delay(waittime3);

Goto interruptor; Vuelva a verificar la posición del interruptor

RA1: / secuencia de la dirección a la derecha

waittime = (125); definición de waittime(s) de esta secuencia

waittime2 = (200);

waittime3 = (50);

comienza encendiendo luces en secuencia de izquierda a derecha

digitalWrite (LCARGO, R_ON);

Delay(waittime);

digitalWrite (centro, R_ON);

Delay(waittime);

digitalWrite (RTwo, R_ON);

Delay(waittime);

digitalWrite (RArrow, R_ON);

Delay(waittime);

Después de todo, flecha derecha parpadea luces en

digitalWrite (RArrow, R_OFF);

Delay(waittime2);

digitalWrite (RArrow, R_ON);

Delay(waittime2);

digitalWrite (RArrow, R_OFF);

Delay(waittime2);

digitalWrite (RArrow, R_ON);

Delay(waittime2);

digitalWrite (RArrow, R_OFF);

luces de giro, de izquierda a derecha - rápidamente

digitalWrite (LCARGO, R_OFF);

Delay(waittime3);

digitalWrite (centro, R_OFF);

Delay(waittime3);

digitalWrite (RTwo, R_OFF);

Delay(waittime3);

Goto interruptor; Vuelva a verificar la posición del interruptor

AL1: / / intermitente secuencia con luz de centro en constante y LCARGO y RTwo intermitente en ambos lados del centro de

waittime = (125); definición de waittime(s) de esta secuencia

waittime2 = (50);

Si (centro == LOW) goto cont; evita jugar con la luz de centro después de que sea

digitalWrite(Center,R_ON);

Cont:

digitalWrite (LCARGO, R_ON);

Delay(waittime);

digitalWrite (LCARGO, R_OFF);

Delay(waittime2);

digitalWrite(LTwo,R_ON);

Delay(waittime);

digitalWrite(LTwo,R_OFF);

Delay(waittime2);

digitalWrite (RTwo, R_ON);

Delay(waittime);

digitalWrite (RTwo, R_OFF);

Delay(waittime2);

digitalWrite (RTwo, R_ON);

Delay(waittime);

digitalWrite (RTwo, R_OFF);

Delay(waittime2);

Goto interruptor; Vuelva a verificar la posición del interruptor

CA1: / / luces en constante (no intermitente), la flecha se enciende en cada estancia de fin de

waittime = (10); definición de waittime(s) de esta secuencia, inmediatamente para la estabilidad

digitalWrite (centro, R_ON);

Delay(waittime);

digitalWrite (LCARGO, R_ON);

Delay(waittime);

digitalWrite (RTwo, R_ON);

Delay(waittime);

Delay(1000); espera un segundo antes de verificar nuevamente la posición del interruptor

Goto interruptor; control de posición, pero usted sabía que por saber

} / / Final

Artículos Relacionados

40 x RGB LED controlador con PWM de 8 bits y patrones seleccionables

40 x RGB LED controlador con PWM de 8 bits y patrones seleccionables

Actualización: Este controlador ha sido sustituida por la muy superior 48 canales Mono / 16 canal RGB LED controlador, con conexión USB y compatibilidad ColorMotion . Visite http://www.chromationsystems.com/48channled.html para obtener más informació
Modificar la luz de la noche #AUTOMATIC

Modificar la luz de la noche #AUTOMATIC

Hola chicos...!Estoy con algunos proyectos DIY más interesantes después de algunas veces.En este instructable que estoy compartiendo con usted sobre mi nuevo modificado# Procedimientos de construcción de circuito luz nocturno automático.Este es uno d
Luz de Navidad de Arduino con sincronización de música

Luz de Navidad de Arduino con sincronización de música

encontré con dos grandes instructables y decidió combinarlos.    tiene ocho líneas de luces y utiliza el código de Arduino para "jugar" "Joy To The World".  He probado con LEDs, y es muy precisa.  Yo quería hacer este proyecto, pero qu
Cómo instalar una barra de luz led en el Tacoma

Cómo instalar una barra de luz led en el Tacoma

Como más y másprefieren hacer algunas modificaciones a sus vehículos, los lugares que elijan convertirse en difíciles de considerar. Gente le gusta hacer un montón de modificaciones en el parachoques, la rejilla o el techo o el vehículo, sin embargo,
Medidor de VU LM3914N DIY

Medidor de VU LM3914N DIY

parte del aprendizaje sobre electrónica sólo está molestando con blinkies LED - luces de hacen todo lo mejor!  Bueno, el LM3914N es un led bar controlador, es decir, puede, con cierta energía, enciende para arriba un montón de LEDs a la vez en respue
VU Meter altavoces

VU Meter altavoces

Un medidor VU es un estándar de medición instrumento que mide el volumen en equipos de audio. Si usted abre los dispositivos de grabación en Windows, puede ver un medidor digital de la unidad de volumen (VU) que muestra el nivel de audio. Tienes pant
Construir tu propia pistola de portales de ciencia de apertura

Construir tu propia pistola de portales de ciencia de apertura

hace cinco meses, dos estudiantes universitarios lo metió en la cabeza para comenzar a construir un apoyo de traje. No cualquier apoyo de vestuario, cuenta que – un traje prop para descartar todos los demás apoyos de traje y, de hecho, el mundo! No r
Cómo hacer mini figura de Star Wars Shakal Shallest Costom

Cómo hacer mini figura de Star Wars Shakal Shallest Costom

Shakal Shallest es un maestro de Jedi de la antigua y un sable de luz impresionante controladorPaso 1: Obtén patas negras y Falda escocesa de soldado de nieve blanca Paso 2: Añadir camisa negra Mandolorian Paso 3: Añadir la cabeza de Marvel blanco y
LA picota (existencias)

LA picota (existencias)

la acción o picota, que prefiere.  Una fácil formación de domingo por la tarde.  Costo varía según el tipo de madera que utilizas. (Me gusta gratis mejor)Materiales necesarios:1. Qty 2 – 2 x 12 x 36 tableros. Obras tratados multa pero si usted puede
Iluminación solar de huracán (y más)

Iluminación solar de huracán (y más)

Me he pasado toda mi vida viviendo en o cerca de la costa del Golfo. Y aunque hemos tenido un par de temporadas con no huracanes, no puedo evitar pensar en ellos esta época del año. Por supuesto, las grandes tormentas son muy peligrosas y mayoría de
Escaparate de servicio militar

Escaparate de servicio militar

Cuando vi este concurso que mi primer pensamiento fue que si gané la unidad laser podría construir una pantalla de regalo/veterano muy singular he estado queriendo construir un rato. Su compuesto de vidrio o acrílico con tapa de madera y fondo y luce
Girar un pedazo de caña en soporte de bici DIY más grande del mundo (con usos ilimitados)

Girar un pedazo de caña en soporte de bici DIY más grande del mundo (con usos ilimitados)

bien, que se convierten en línea más grande del mundo tal vez es demasiado. Pero no es. Es absolutamente cierto! ¿Por qué? Porque esta posición es totalmente gratuita, muy fácil de hacer, puede trabajar perfectamente en las motos touring cargado más
Arduino y Visual Basic 6.0 (Motor de Servo continuo)

Arduino y Visual Basic 6.0 (Motor de Servo continuo)

este Instructable es casi similar a la luz del controlador publicada previamente. Contiene la misma estructura y el patrón en el control de Servo Motor. Usé algunas estructuras de Control de Motor de Galil de forma ideas para crear mi parser. Es deci
Impresora 3D DIY gabinete

Impresora 3D DIY gabinete

Han sido el orgulloso propietario de una impresora 3D RepRap por algunos años ahora y mientras su estado extremadamente útil para prototipado rápido pensé que ya era hora para algunas mejoras. Lo primero en mi mente era construir un recinto para el m