Ciclo de luz: Tiras de LED RGB programable en el marco de la bici (6 / 7 paso)

Paso 6: programación

Este proyecto utiliza la biblioteca rápido spi disponible en: http://code.google.com/p/fastspi/

A continuación se muestra un video que demuestra la gama completa de capacidades:

No he hecho nada especial con la programación. Mi código incluye un montón de variables que definen los extremos de las tiras para corregir para ellos ser picado hacia arriba y fuera de orden. Este es el código que utiliza para la demostración en la página de introducción. Hay mucho margen de mejora.

#include < FastSPI_LED.h >

#define NUM_LEDS 178
struct CRGB {}
unsigned char b;
unsigned char r;
unsigned char g;
}; A veces los chipsets de alambre una clase hacia atrás de manera
struct CRGB * LED; struct CRGB {unsigned char r; unsigned char g; unsigned char b;};

#define PIN 3

#define SSS 1
#define SSE 25

#define CSS 26
#define CSE 46

#define STS 47
#define STE 73

#define BTS 74
#define BTE 107

#define TTS 108
#define TTE 137

#define LFS 138
#define LFE 157

#define RFS 158
#define RFE 177

#define en 500
#define apagado 100

barra de iluminación nula (int s, int e, int del int off, int r, int g, int b);

void bottomTube();
void topTube();
void seatTube();
void chainStay();
void seatStay();
void leftFork();
void rightFork();
void clearDisplay();

int currentBar = 0;
int lastBar = 0;
HFI int = 0;
elección de int = 0;
int reloj = 0; en sentido antihorario

void setup()
{
FastSPI_LED.setLeds(NUM_LEDS);
FastSPI_LED.setChipset(CFastSPI_LED::SPI_TM1809);
FastSPI_LED.setPin(PIN);
FastSPI_LED.init();
FastSPI_LED.start();
LEDs = (struct CRGB*)FastSPI_LED.getRGBData();
}

void loop() {}

Si (currentBar == 0 & & lastBar == 0)
{
lastBar = 4;
currentBar = 5;
reloj = 0; en sentido antihorario
}

{Switch(currentBar)}
caso 1: caso inicio de //main
{if(Clock==0)}
HFI = 2;
}
rotura;

caso 2: caso inicio de //main
{if(Clock==0)}
opción = random(2);
if(Choice==0)
HFI = 3;
otra cosa
HFI = 4;
}
Else {}
HFI = 1;
}
rotura;

caso 3: caso inicio de //main
if(lastBar==2|| lastBar == 4) {}
opción = random(2);
if(Choice==0)
HFI = 1;
otra cosa
HFI = 5;
}
Else {}
opción = random(2);
if(Choice==0)
HFI = 2;
otra cosa
HFI = 4;
}
rotura;

caso 4: caso inicio de //main
{if(Clock==0)}
opción = random(3);
if(Choice==0)
HFI = 5;
if(choice==2) más
HFI = 6;
otra cosa
HFI = 7;
}
Else {}
opción = random(2);
if(Choice==0)
HFI = 3;
otra cosa
HFI = 2;
}
rotura;

caso 5: Inicio caso //main
{if(Clock==0)}
opción = random(2);
if(Choice==0)
HFI = 1;
otra cosa
HFI = 3;
}
Else {}
opción = random(3);
if(Choice==0)
HFI = 4;
if(choice==2) más
HFI = 6;
otra cosa
HFI = 7;
}
rotura;

caso 6: Inicio caso //main
{if(Clock==0)}
HFI = 7;
}
Else {}
opción = random(3);
if(Choice==0)
HFI = 4;
if(choice==2) más
HFI = 5;
otra cosa
HFI = 7;
}
rotura;

caso 7: Inicio caso //main
{if(Clock==0)}
opción = random(3);
if(Choice==0)
HFI = 4;
if(choice==2) más
HFI = 5;
otra cosa
HFI = 6;
}
Else {}
HFI = 6;
}
rotura;
}

Switch(currentBar) {//light currentBar
caso 1: lightBar(SSS,SSE,ON,OFF,50,50,50); rotura;
caso 2: lightBar(CSS,CSE,ON,OFF,50,50,50); rotura;
caso 3: lightBar(STS,STE,ON,OFF,50,50,50); rotura;
caso 4: lightBar(BTS,BTE,ON,OFF,50,50,50); rotura;
caso 5: lightBar(TTS,TTE,ON,OFF,50,50,50); rotura;
caso 6: lightBar(RFS,RFE,ON,OFF,50,50,50); rotura;
caso 7: lightBar(LFS,LFE,ON,OFF,50,50,50); rotura;
}
lastBar = currentBar;
currentBar = HFI;

/*
{Switch(lastBar)}

caso 2: Inicio de //Subcase
opción = random(2);
{if(Choice==0)}
HFI = 3;
}
otra cosa
HFI = 5;
rotura; Subcase final

caso 3: Inicio de //Subcase
HFI = 2;
rotura; Subcase final

caso 5: Inicio de //Subcase
HFI = 2;
rotura; Subcase final
}
rotura; extremo principal del caso

caso 5: Inicio caso //main
{Switch(lastBar)}

caso 1: Inicio de //Subcase
opción = random(3);
{if(Choice==0)}
HFI = 4;
}
else {} if(choice==1)
HFI = 6;
}
otra cosa
HFI = 7;
rotura; Subcase final


caso 3: Inicio de //Subcase
opción = random(3);
{if(Choice==0)}
HFI = 4;
}
else {} if(choice==1)
HFI = 6;
}
otra cosa
HFI = 7;
rotura; Subcase final

caso 4: Inicio de //Subcase
opción = random(2);
{if(Choice==0)}
HFI = 1;
}
otra cosa
HFI = 3;
rotura; Subcase final

caso 6: Inicio de //Subcase
opción = random(2);
{if(Choice==0)}
HFI = 1;
}
otra cosa
HFI = 3;
rotura; Subcase final

caso 7: Inicio de //Subcase
opción = random(2);
{if(Choice==0)}
HFI = 1;
}
otra cosa
HFI = 3;
rotura; Subcase final

barra de iluminación nula (int s, int e, int del int off, int r, int g, int b) {}
para (int i = s; i < = e; i ++) {}
LEDs [i] .r = r;
LEDs [i] .g = g;
LEDs [i] .b = b;
}
FastSPI_LED.show();

Delay(del);
clearDisplay();
Delay(OFF);
}

void bottomTube() {}
{
para (int i = 74; i < = 108; i ++) {}
LEDs [i] .r = 50;
LEDs [i] .g = 50;
LEDs [i] .b = 50;
}
FastSPI_LED.show();
}
}
void topTube() {}
{
para (int i = 108; i < = 140; i ++) {}
LEDs [i] .r = 50;
LEDs [i] .g = 50;
LEDs [i] .b = 50;
}
FastSPI_LED.show();
}
}

void seatTube() {}
para (int i = 48; i < = 74; i ++)
{
LEDs [i] .r = 50;
LEDs [i] .g = 50;
LEDs [i] .b = 50;
}
FastSPI_LED.show();
}

void chainStay() {}
{
para (int i = 22; i < = 47; i ++) {}
LEDs [i] .r = 50;
LEDs [i] .g = 50;
LEDs [i] .b = 50;
}
FastSPI_LED.show();
}
}

void seatStay() {}
{
para (int i = 1; i < = 22; i ++) {}
LEDs [i] .r = 50;
LEDs [i] .g = 50;
LEDs [i] .b = 50;
}
FastSPI_LED.show();
}
}

void leftFork() {}
{
para (int i = 159; i < = 178; i ++) {}
LEDs [i] .r = 50;
LEDs [i] .g = 50;
LEDs [i] .b = 50;
}
FastSPI_LED.show();
}
}

void rightFork() {}
{
para (int i = 140; i < = 159; i ++) {}
LEDs [i] .r = 50;
LEDs [i] .g = 50;
LEDs [i] .b = 50;
}
FastSPI_LED.show();
}
}

void clearDisplay() {}
{
para (int i = 0; i < = 177; i ++) {}
LEDs [i] .r = 0;
.g LED [i] = 0;
.b LED [i] = 0;
}
FastSPI_LED.show();
}
}

No esenciales información acerca del código
El programa que tengo aquí es sólo ejecuta un completo de bar a la vez y cambiar a un bar adyacente en el sentido de la marcha. Por ejemplo el primer bar podría ser la estancia del asiento, la segunda puede entonces ser ya sea el tubo superior, tubo del asiento o cadena de permanecer como una dirección todavía no se ha establecido. Decir que el tubo superior fue la segunda barra. Se ha establecido un sentido de la marcha y la tercera barra puede ser el tubo inferior o uno de los tenedores. La barra iluminada entonces sigue adelante nunca doblar sobre sí mismo.

Artículos Relacionados

Controladora de tira de LED RGB

Controladora de tira de LED RGB

Se trata de una control remoto multicolor LED tira caja regulador que hice para un amigo. Tenemos previsto instalar iluminación sutil dentro de su coche para los que tenemos una caja pequeña del regulador + mando a distancia con las tiras de LED mult
Elegante teléfono controlado árbol de Navidad con tira de LED RGB

Elegante teléfono controlado árbol de Navidad con tira de LED RGB

Navidad ya está aquí, hemos decorado este árbol de Navidad con tira de LED RGB para nuestra fiesta de Navidad y lo hizo un árbol de teléfono inteligente controlado. XD. es que presentará una magia de "última hora" para el espectáculo de Navidad.
WiFi controló tira de LED RGB

WiFi controló tira de LED RGB

Los utiliza para controlar tiras de LED RGB control remoto IR a veces puede llegar a ser irritante debido a su gama limitada y buscando el control remoto cuando no las encuentra. Este proyecto simple, pero eficaz puede resolver un problema mediante e
¿Analizador de espectro de frambuesa Pi con tira de LED RGB y Python

¿Analizador de espectro de frambuesa Pi con tira de LED RGB y Python

en busca de un primer proyecto probar en un Raspberry Pi, aunque qué mejor que un analizador de espectro? (A veces esta pantalla es erróneamente que se refiere para como un ecualizador gráfico, que vamos a cambiar el sonido, no mostrarlo)Pude consegu
Tiras de LED RGB

Tiras de LED RGB

en este instructable, quería mostrarle mis tiras de LED RGB (rojas, verdes, azul). Cada tira tiene 36 LED ' s rojos, 36 LED verde y 36 LEDs azules. En general las tiras son 47 pulgadas de largo excepto el uno en el extremo izquierdo, es un poco más c
Circuito de tira de LED RGB con Arduino

Circuito de tira de LED RGB con Arduino

Este Instructable cubre el montaje de un circuito capaz de ing de PWM (modulación de anchura de pulso) una tira de LED RGB 12v 9 y programación un Arduino para desplazarse a través de una gama de colores. Discutir cómo montar un transistor a un disip
Controladora de tira de LED RGB de Arduino

Controladora de tira de LED RGB de Arduino

Tenía curiosidad sobre el uso de tira de LED RGB, así que compré uno y decidí hacer un pequeño controlador para ver lo que puedo hacer con ello... así que aquí está.Si tienes alguna duda, comentario, crítica constructiva... no dudes en escribirnos :)
Cómo controlar una tira de LED RGB - Tutorial de Arduino

Cómo controlar una tira de LED RGB - Tutorial de Arduino

En este tutorial vamos a utilizar una tira con 8 LED ' s RGB con la placa de Arduino uno. Usaremos la biblioteca de NeoPixel de Adafruit para cambiar el color de cada led.Vamos a empezar!Paso 1: Lo que se necesitaPara este proyecto necesitarás:Arduin
Las infinitas posibilidades de tiras de LED RGB!!

Las infinitas posibilidades de tiras de LED RGB!!

Este es mi primer Inscrutable, y es sobre cómo añadir unas tiras de luz RGB (rojo verde azul) y un controlador a su coche, ni nada. Mina pongo bajo mi guión, sin embargo usted puede poner dondequiera usted tiene gusto, que es la belleza de ella!* ¡ C
Hexágonos de la pipa PEX con tira de LED RGB

Hexágonos de la pipa PEX con tira de LED RGB

Construido para un telón de fondo de etapa este proyecto cuenta con algunas formas hexagonales de 3/4" la pipa de PEX, similar a un aro del LED hula, algunos 12 voltios RGB LED tira y un NLED 30 canal alto LED controlador de corriente. Los hexágonos
Everymans Simple WS2801 controlador de tira de LED RGB

Everymans Simple WS2801 controlador de tira de LED RGB

El propósito de este instructable es hacer ciudadanos capaces de tomar el control de la WS2801 RGB led tiras para la decoración del hogar o tienda con el mínimo esfuerzo. Las tiras Led WS2801 tienen un pequeño chip para cada led y permite fijar cada
¿Cómo tiras de LED RGB puede ofrecer 2 años de garantía?

¿Cómo tiras de LED RGB puede ofrecer 2 años de garantía?

De hecho, cuando china manufactuer ofrecer tiras LED a usted y prometen 2 años de garantía, pero si la tira de LED son epoxi, es un lie.because cuando en la alta temperatura y condiciones de deslumbramiento, el epoxi se convierten muy duro y amarillo
Bola de discoteca de tira de LED RGB

Bola de discoteca de tira de LED RGB

Hola, este es Brandon Neustadter uno de Elemental LED comercial Account Managers.  He querido crear un espectáculo de luz LED que sería sincronizar mi música.  Generalmente esto toma horas e incluso días o semanas, pero con el Jammer Apolo lleva cues
Con un solo LED RGB o una tira de LED para mostrar información: reloj, termómetro y un comunicador raro

Con un solo LED RGB o una tira de LED para mostrar información: reloj, termómetro y un comunicador raro

Uno de los primeros proyectos que hice con un Arduino era una guirnalda de luces de Navidad. De hecho, fue hecho de una tira de LED RGB sencilla cortar en dos, como Arduino tiene sólo 6 salidas PWM de hardware. No quería triviales arcoiris y colores