Lichte cyclus: Programmeerbare RGB LED Strips op fietsframe (6 / 7 stap)

Stap 6: programmeren

Dit project maakt gebruik van de snelle spi bibliotheek beschikbaar op: http://code.google.com/p/fastspi/

Een video aan te tonen het volledige scala van mogelijkheden wordt hier weergegeven:


Ik heb niets speciaal met de programmering gedaan. Mijn code bevat een heleboel variabelen waarin de uiteinden van de strips om te corrigeren voor hen wordt gehakt op en buiten de orde. Dit is de code die ik voor de demo op de introductiepagina gebruikte. Er is genoeg ruimte voor verbetering.

#include < FastSPI_LED.h >

#define NUM_LEDS 178
struct CRGB {}
unsigned char b;
unsigned char r;
unsigned char g;
}; Soms chipsets draad een achteruit soort manier
struct CRGB * leds; 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 St 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 op 500
#define af 100

VOID lichtbalk (int s, int e, int del, int af, int r, int g, int b);

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

int currentBar = 0;
int lastBar = 0;
int nextBar = 0;
int keuze = 0;
int klok = 0; linksom

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 {}

Als (currentBar == 0 & & lastBar == 0)
{
lastBar = 4;
currentBar = 5;
klok = 0; linksom
}

switch(currentBar) {}
kast 1: de zaak start //main
if(Clock==0) {}
nextBar = 2;
}
breken;

geval 2: //main zaak start
if(Clock==0) {}
keuze = random(2);
if(Choice==0)
nextBar = 3;
anders
nextBar = 4;
}
else {}
nextBar = 1;
}
breken;

Case 3: //main zaak start
if(lastBar==2|| lastBar == 4) {}
keuze = random(2);
if(Choice==0)
nextBar = 1;
anders
nextBar = 5;
}
else {}
keuze = random(2);
if(Choice==0)
nextBar = 2;
anders
nextBar = 4;
}
breken;

geval 4: //main zaak start
if(Clock==0) {}
keuze = random(3);
if(Choice==0)
nextBar = 5;
anders if(choice==2)
nextBar = 6;
anders
nextBar = 7;
}
else {}
keuze = random(2);
if(Choice==0)
nextBar = 3;
anders
nextBar = 2;
}
breken;

geval 5: //main zaak start
if(Clock==0) {}
keuze = random(2);
if(Choice==0)
nextBar = 1;
anders
nextBar = 3;
}
else {}
keuze = random(3);
if(Choice==0)
nextBar = 4;
anders if(choice==2)
nextBar = 6;
anders
nextBar = 7;
}
breken;

kast 6: //main zaak start
if(Clock==0) {}
nextBar = 7;
}
else {}
keuze = random(3);
if(Choice==0)
nextBar = 4;
anders if(choice==2)
nextBar = 5;
anders
nextBar = 7;
}
breken;

geval 7: //main zaak start
if(Clock==0) {}
keuze = random(3);
if(Choice==0)
nextBar = 4;
anders if(choice==2)
nextBar = 5;
anders
nextBar = 6;
}
else {}
nextBar = 6;
}
breken;
}

switch(currentBar) {//light currentBar
geval 1: lightBar(SSS,SSE,ON,OFF,50,50,50); breken;
geval 2: lightBar(CSS,CSE,ON,OFF,50,50,50); breken;
Case 3: lightBar(STS,STE,ON,OFF,50,50,50); breken;
geval 4: lightBar(BTS,BTE,ON,OFF,50,50,50); breken;
geval 5: lightBar(TTS,TTE,ON,OFF,50,50,50); breken;
kast 6: lightBar(RFS,RFE,ON,OFF,50,50,50); breken;
geval 7: lightBar(LFS,LFE,ON,OFF,50,50,50); breken;
}
lastBar = currentBar;
currentBar = nextBar;

/*
switch(lastBar) {}

geval 2: //Subcase-start
keuze = random(2);
if(Choice==0) {}
nextBar = 3;
}
anders
nextBar = 5;
breken; Subcase einde

Case 3: //Subcase-start
nextBar = 2;
breken; Subcase einde

geval 5: //Subcase start
nextBar = 2;
breken; Subcase einde
}
breken; belangrijkste geval einde

geval 5: //main zaak start
switch(lastBar) {}

geval 1: //Subcase-start
keuze = random(3);
if(Choice==0) {}
nextBar = 4;
}
anders if(choice==1) {}
nextBar = 6;
}
anders
nextBar = 7;
breken; Subcase einde


Case 3: //Subcase-start
keuze = random(3);
if(Choice==0) {}
nextBar = 4;
}
anders if(choice==1) {}
nextBar = 6;
}
anders
nextBar = 7;
breken; Subcase einde

geval 4: //Subcase-start
keuze = random(2);
if(Choice==0) {}
nextBar = 1;
}
anders
nextBar = 3;
breken; Subcase einde

kast 6: //Subcase-start
keuze = random(2);
if(Choice==0) {}
nextBar = 1;
}
anders
nextBar = 3;
breken; Subcase einde

geval 7: //Subcase-start
keuze = random(2);
if(Choice==0) {}
nextBar = 1;
}
anders
nextBar = 3;
breken; Subcase einde

VOID lichtbalk (int s, int e, int del, int af, int r, int g, int b) {}
for (int i = s; ik < = e; i ++) {}
LEDs [i] .r = r;
LEDs [i] .g = g;
LEDs [i] .b = b;
}
FastSPI_LED.show();

delay(del);
clearDisplay();
delay(off);
}

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

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

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

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

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

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

ongeldig clearDisplay() {}
{
for (int i = 0; ik < = 177; i ++) {}
LEDs [i] .r = 0;
LEDs [i] .g = 0;
LEDs [i] .b = 0;
}
FastSPI_LED.show();
}
}

Niet-essentiële informatie over de code
Het programma dat ik heb hier net een volledige bar in één keer draait en omzetten in een aangrenzende bar in de rijrichting. Bijvoorbeeld kan de eerste staaf het verblijf van de zetel, de tweede kan dan worden beide de bovenbuis, zitbuis of keten blijven als een richting is nog niet vastgesteld. Zeggen dat de bovenbuis was de tweede balk. Een rijrichting is opgezet en de derde bar kan de onderste buis of een van de vorken. De verlichte bar vervolgt vooruit nooit verdubbeling op zichzelf.

Gerelateerde Artikelen

Arduino controlled RGB LED-strip in de woonkamer

Arduino controlled RGB LED-strip in de woonkamer

Het idee achter dit kleine project was dat sommige vrij indirecte stemming licht in de woonkamer. Het wordt beheerd door de server openHAB (dat project is nog steeds op de lijst moet worden toegevoegd aan deze site) geïnstalleerd op een Raspberry Pi.
RGB LED Strip Controller

RGB LED Strip Controller

Dit is een afstand bestuurbare meerkleurige LED-Strip controller doos die ik heb voor een vriend gemaakt. We gepland om het installeren van subtiele verlichting binnen zijn auto waarvoor we een kleine controller box + afstandsbediening met de meerkle
WiFi Controlled RGB LED-Strip

WiFi Controlled RGB LED-Strip

Soms kunnen die IR-afstandsbedieningen gebruikt om te bepalen van de RGB LED strips worden irriterend als gevolg van hun beperkt bereik en jacht voor de afstandsbediening wanneer u kan niet het vinden. Dit eenvoudige, maar effectieve project kan een
RC gecontroleerde rgb led strip

RC gecontroleerde rgb led strip

Maak uw eigen rc gecontroleerde led-strip voor individuele kamer verlichting!Meeste rgb-led-strips worden gecontroleerd door een infrarood afstandsbediening. Om te schakelen of uitschakelen of wijzigen van de kleur, die je moet blijven voor de ontvan
Raspberry Pi Spectrum-Analyzer met RGB LED-Strip en Python

Raspberry Pi Spectrum-Analyzer met RGB LED-Strip en Python

op zoek naar een eerste project om uit te proberen op een Raspberry Pi, ik wel wat beter dan een Spectrum Analyzer? (Soms dit display is ten onrechte bedoeld als een grafische equalizer--dat laten we u het geluid, niet weer te geven)Ik was in staat o
PEX Pipe zeshoeken met RGB LED-Strip

PEX Pipe zeshoeken met RGB LED-Strip

Dit project beschikt gebouwd voor een fase terug druppel over sommige shapes van de zeshoek gemaakt van 3/4" PEX pijp, vergelijkbaar met een LED-hoelahoep, sommige 12 Volt RGB LED-strip en een NLED 30 kanaal hoge huidige LED Controller. De zeshoeken
RGB LED Strip Circuit met Arduino

RGB LED Strip Circuit met Arduino

Dit Instructable heeft betrekking op de vergadering van een circuit PWM-ing (pulse breedte modulerende) staat een 9-12v RGB LED-strip en programmeren van een Arduino aan cyclus door een scala aan kleuren. Ik zal bespreken hoe te monteren een transist
Rijden van RGB LED strips uit een Arduino

Rijden van RGB LED strips uit een Arduino

Kerstmis komt eraan en je kunt je afvragen hoe het kleurrijke en helder met een Arduino en een RGB LED strip te maken. Tenminste, was dat precies wat ik deed een jaar geleden en was niet kundig voor vondst geen duidelijke en eenvoudige instructies ov
RGB LED Strip Disco bal

RGB LED Strip Disco bal

Hoi, dit is Brandon Neustadter één van de commerciële accountmanagers Elemental LED's.  Mij wilden voor wekken een LED lichtshow die zou synchroniseren met mijn muziek.  Over het algemeen duurt dit uur zo niet dagen of weken, maar met de Apollo Jamme
Arduino RGB LED Strip Controller

Arduino RGB LED Strip Controller

Ik was nieuwsgierig over het gebruik van RGB LED-Strip, dus ik heb er een en besloot te doen een beetje controller om te zien wat ik kan doen met hetâ €¦ zo hier het is.Hebt u vragen, opmerkingen, opbouwende kritiek... Aarzel niet om te schrijven :)A
Slimme telefoon kerstboom gecontroleerd met RGB LED-Strip

Slimme telefoon kerstboom gecontroleerd met RGB LED-Strip

sinds Kerstmis is hier, we deze kerstboom met RGB LED-Strip ingericht voor onze kerstfeest, en maakte het een slimme telefoon gecontroleerd boom. XD. It zal zeker een "last-minute" magie voor de show Xmas presenteren. Kerstmis komt eraan maar va
De manier om te verbinden RGB Led Strip verlichting

De manier om te verbinden RGB Led Strip verlichting

De manier om te verbinden RGB Led Strip verlichtingStap 1: Sluit 4pin Male naar 4pin vrouwelijke connectorkabel direct Geschikt voor: RGB Led Strip licht met mannelijke en vrouwelijke connectorkabelStap 2: Verbind met 4pin gemakkelijk Clips Geschikt
ArduDroid: Een eenvoudige 2 Way Bluetooth-gebaseerde Android Controller voor Arduino RGB led strip

ArduDroid: Een eenvoudige 2 Way Bluetooth-gebaseerde Android Controller voor Arduino RGB led strip

INTRODUCTIEGET IT ON google PLAY "ardudroid" appARDUDROID (voorheen Andruino) is een eenvoudige Android app om u te helpen bepalen de pinnen van uw Arduino Uno (of klonen) van uw Android telefoon draadloos. Het is zowel een Android app en een Ar
Rgb Led Strip op een twee Cup Coaster fading

Rgb Led Strip op een twee Cup Coaster fading

deze twee cup coaster is 10 "x 3" x 2 5/16". Het heeft een Rgb led strip die verandert van vorm blauw in groen.Stap 1:Stap 2: Bouw van de behuizing The drill bit is about 3".Stap 3: Schilderen en lichten te zetten van de behuizing Behu