Kantelen geactiveerd Cloud licht (9 / 12 stap)

Stap 9: Programmeren-deel 4: montage van het programma

We zijn er bijna!

Het is makkelijker voor mij om uit te leggen wat er gebeurt in het programma door te reageren op delen hieronder.

Begin van de code

#include < Adafruit_NeoPixel.h >

#define PIN 13 //identifies pin 13 aangesloten op de neopixels

Const int wait_T = 40;
Const int ACCEL_PIN = A0;
Const int PixelCount = 29;     / / ik heb 29 neopixels

Const int MAX_AREAD = 370;     / / Deze sectie stelt het maximum, minimum, mediaan en mediaan venster voor het programma.
Const int MIN_AREAD = 280;
Const int MID_AREAD = 325;
Const int MID_WINDOW = 10;
Const int TILT_TIME = 10;  in seconden / / de hoeveelheid tijd die nodig is voor een verblijf in het venster om te kiezen van een nieuwe licht patroon

Const int Pixel_Start_End = 0;     //Settings voor de generator van willekeurige lichtpatroon
Const Boole UsingBar = false;
int random_pick = 0;
Boole pick_new_random = waar;
int accel_read = 0;
unsigned long time_keeper = 0;

Adafruit_NeoPixel strip = Adafruit_NeoPixel (PixelCount, PIN, NEO_GRB + NEO_KHZ800);

VOID Setup {}
Serial.begin(57600);
strip.begin();              / / Opstarten Strip
strip.show();               / / Initialiseren van alle pixels op 'off'
pinMode (ACCEL_PIN, INPUT); / / Configureren versnellingsmeter analoge Lees pin
randomSeed(analogRead(A3));
}

Hier is waar de grafiek van de actie is gecodeerd:

void loop {}

/ / De waarde van de versnellingsmeter Lees
accel_read = analogRead(ACCEL_PIN);

/ / Kies een nieuwe willekeurige als it's time to.
Als (pick_new_random == true) {}
random_pick = random(6);
pick_new_random = false;
}

Wanneer de waarde van de versnellingsmeter binnen het venster is pakt het van de volgende functies
Als ((accel_read > MID_AREAD - MID_WINDOW) & & (accel_read < MID_AREAD + MID_WINDOW)) {}
Als (random_pick == 0) {}
ThunderAccel();
} else if(random_pick == 1) {}
PatternOne();
} else if(random_pick == 2) {}
PatternTwo();
} else if(random_pick == 3) {}
PatternThree();
} else if(random_pick == 4) {}
PatternFour();
} else if(random_pick == 5) {}
PatternFive();
} else if(random_pick == 6) {}
PatternSix();
}
} else {}
time_keeper = millis();

terwijl ((millis() - time_keeper) < TILT_TIME * 1000) {}
color_tilt();
}

pick_new_random = true;

}


}

anders doet de code het volgende kantelbare patroon
VOID setStripColor (int rood, int GREEN, int blauw) {}
for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, rood, groen, blauw);
}
strip.show();
}

ongeldig color_tilt() {}
int accel_value = analogRead(ACCEL_PIN);
accel_value = map(accel_value,MIN_AREAD,MAX_AREAD,0,255);
accel_value = constrain(accel_value,0,255);

for (int i = 0; ik < strip.numPixels(); i ++) {}
strip.setPixelColor (i, 255-accel_value, 0, accel_value);
strip.show();
delay(2);
}
}

Hieronder vindt u alle functies van het lichtpatroon

VOID PatternOne() {}
CylonEyeUp (strip. Color(255,255,255), strip. Color(0,255,255), strip. Color(255,255,255), wait_T, PixelCount, Pixel_Start_End);
delay(wait_T);
Voorbeeld: CylonEyeDown (Center_Dot_Color, Second_Dot_color, Third_Dot_color, wait_T, PixelCount, Pixel_Start_End);
CylonEyeDown (strip. Color(255,255,255), strip. Color(0,255,255), strip. Color(255,255,255), wait_T, PixelCount, Pixel_Start_End);
delay(wait_T);
}

VOID PatternTwo() {}
for (int i = 0; ik < 102; i ++) {}
setStripColor (i, (204 - i * 2), 204);
vertraging(20);
}
for (int i = 0; ik < 102; i ++) {}
setStripColor (102-i, (i * 2), 204);
vertraging(20);
}
}

VOID PatternThree() {}

for (int i = 0; ik < 255; i ++) {}
setStripColor (255, i, 0);
vertraging(20);
}
for (int i = 255; ik > 0; ik--) {}
setStripColor (255, i, 0);
vertraging(20);
}
delay(1000);
}

VOID PatternFour() {}

for (int i = 0; ik < 127; i ++) {}
setStripColor (255-i * 2, 255-i, 255);
vertraging(20);
}
for (int i = 0; ik < 127; i ++) {}
setStripColor (i * 2, 127 + i, 255);
vertraging(20);
}
delay(2000);

}

VOID PatternFive() {}
strip.setPixelColor (14, 255,255,255);
vertraging(20);
strip.setPixelColor (15, 255,255,255);
vertraging(20);
strip.setPixelColor (13, 255,255,255);
vertraging(20);
strip.setPixelColor (16, 255,255,255);
vertraging(20);
strip.setPixelColor (12, 255,255,255);
vertraging(20);
strip.setPixelColor (17, 204,255,255);
vertraging(20);
strip.setPixelColor (11, 204,255,255);
vertraging(20);
strip.setPixelColor (18, 204,255,255);
vertraging(20);
strip.setPixelColor (10, 204,255,255);
vertraging(20);
strip.setPixelColor (19, 204,255,255);
vertraging(20);
strip.setPixelColor (9, 204,255,255);
vertraging(20);
strip.setPixelColor (20, 0,128,255);
vertraging(20);
strip.setPixelColor (8, 0,128,255);
vertraging(20);
strip.setPixelColor (21, 0,128,255);
vertraging(20);
strip.setPixelColor (7, 0,128,255);
vertraging(20);
strip.setPixelColor (22, 0,128,255);
vertraging(20);
strip.setPixelColor (6, 0,128,255);
vertraging(20);
strip.setPixelColor (23, 0,128,255);
vertraging(20);
strip.setPixelColor (5, 0,128,255);
vertraging(20);
strip.setPixelColor (24, 0,128,255);
vertraging(20);
strip.setPixelColor (4, 0,128,255);
vertraging(20);
strip.setPixelColor (25, 0,128,255);
vertraging(20);
strip.setPixelColor (3, 0,128,255);
vertraging(20);
strip.setPixelColor (26, 0,0,255);
vertraging(20);
strip.setPixelColor (2, 0,0,255);
vertraging(20);
strip.setPixelColor (27, 0,0,255);
vertraging(20);
strip.setPixelColor (1, 0,0,255);
vertraging(20);
strip.setPixelColor (28, 0,0,255);
vertraging(20);
strip.setPixelColor (0, 0,0,255);
vertraging(20);
strip.setPixelColor (29, 0,0,255);
vertraging(20);
strip.show();
}

VOID PatternSix() {}

voor (int i = 0; ik < 255; i = i + 1) {}
strip.setPixelColor (0, 0, i, 255-i);
strip.setPixelColor (1, 0, i, 255-i);
strip.setPixelColor (2, 0, i, 255-i);
strip.setPixelColor (3, 0, i, 255-i);
strip.setPixelColor (4, 0, i, 255-i);
strip.setPixelColor (5, 0, i, 255-i);
strip.setPixelColor (6, 0, i, 255-i);
strip.setPixelColor (8, 0, i, 255-i);
strip.setPixelColor (9, 0, i, 255-i);
strip.setPixelColor (10, 0, i, 255-i);
strip.setPixelColor (11, 0, i, 255-i);
strip.setPixelColor (12, 0, i, 255-i);
strip.setPixelColor (13, 0, i, 255-i);
strip.setPixelColor (14, 0, i, 255-i);
strip.setPixelColor (15, 0, i, 255-i);
strip.setPixelColor (16, 0, i, 255-i);
strip.setPixelColor (17, 0, i, 255-i);
strip.setPixelColor (18, 0, i, 255-i);
strip.setPixelColor (19, 0, i, 255-i);
strip.setPixelColor (20, 0, i, 255-i);
strip.setPixelColor (21, 0, i, 255-i);
strip.setPixelColor (22, 0, i, 255-i);
strip.setPixelColor (23, 0, i, 255-i);
strip.setPixelColor (24, 0, i, 255-i);
strip.setPixelColor (25, 0, i, 255-i);
strip.setPixelColor (26, 0, i, 255-i);
strip.setPixelColor (27, 0, i, 255-i);
strip.setPixelColor (28, 0, i, 255-i);
strip.setPixelColor (29, 0, i, 255-i);
delay(10);
strip.show();
}

for (int i = 255; ik > 0; ik = i-1) {}
strip.setPixelColor (0, 0, i, 255-i);
strip.setPixelColor (1, 0, i, 255-i);
strip.setPixelColor (2, 0, i, 255-i);
strip.setPixelColor (3, 0, i, 255-i);
strip.setPixelColor (4, 0, i, 255-i);
strip.setPixelColor (5, 0, i, 255-i);
strip.setPixelColor (6, 0, i, 255-i);
strip.setPixelColor (8, 0, i, 255-i);
strip.setPixelColor (9, 0, i, 255-i);
strip.setPixelColor (10, 0, i, 255-i);
strip.setPixelColor (11, 0, i, 255-i);
strip.setPixelColor (12, 0, i, 255-i);
strip.setPixelColor (13, 0, i, 255-i);
strip.setPixelColor (14, 0, i, 255-i);
strip.setPixelColor (15, 0, i, 255-i);
strip.setPixelColor (16, 0, i, 255-i);
strip.setPixelColor (17, 0, i, 255-i);
strip.setPixelColor (18, 0, i, 255-i);
strip.setPixelColor (19, 0, i, 255-i);
strip.setPixelColor (20, 0, i, 255-i);
strip.setPixelColor (21, 0, i, 255-i);
strip.setPixelColor (22, 0, i, 255-i);
strip.setPixelColor (23, 0, i, 255-i);
strip.setPixelColor (24, 0, i, 255-i);
strip.setPixelColor (25, 0, i, 255-i);
strip.setPixelColor (26, 0, i, 255-i);
strip.setPixelColor (27, 0, i, 255-i);
strip.setPixelColor (28, 0, i, 255-i);
strip.setPixelColor (29, 0, i, 255-i);
delay(10);
strip.show();
}

}

VOID ThunderAccel() {}

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 255,255,255);
strip.show();
}
delay(200);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 0,0,0);
strip.show();
}
vertraging (100);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 255,255,0);
strip.show();
}
delay(200);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 0,0,0);
strip.show();
}
delay(50);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 255,255,0);
strip.show();
}
delay(40);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 0,0,0);
strip.show();
}
vertraging(20);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 255,255,255);
strip.show();
}
delay(200);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 0,0,0);
strip.show();
}
delay(1000);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 255,255,255);
strip.show();
}
delay(200);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 0,0,0);
strip.show();
}
vertraging (100);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 255,255,0);
strip.show();
}
delay(100);

for (int i = 0; ik < 29; i ++) {}
strip.setPixelColor (i, 0,0,0);
strip.show();
}
delay(3000);
}

Geleend en aangepast van https://github.com/EternalCore/NeoPixel_Cylon_Scrolling_Eye/blob/master/NeoPixel_Cylon_Eye.ino

VOID CylonEyeUp (uint32_t Co uint32_t Ct, uint32_t Ctt, uint8_t vertraging, int TotalPixels, int pStart) {}
for (int i = pStart; ik < TotalPixels; i ++) {}
if (!. UsingBar) {strip.setPixelColor (i + 2, Ctt);} //Third Dot kleur
strip.setPixelColor (i + 1, Ct);   Tweede kleur van de stip
strip.setPixelColor (i, Co);     Middelste Dot kleur
strip.setPixelColor (i-1, Ct);   Tweede kleur van de stip
if (!. UsingBar) {strip.setPixelColor (i-2, Ctt);} //Third Dot kleur

if (!. UsingBar) {}
strip.setPixelColor (i-3, strip. Color(0,0,0)); Hiermee wist u de puntjes na de 3de kleur
} else {}
strip.setPixelColor (i-2, strip. Color(0,0,0)); Hiermee wist u de puntjes na de 2rd kleur
}
strip.show();
Serial.println(i); Gebruikt voor pixel graaf foutopsporing
delay(delay);
}
}
VOID CylonEyeDown (uint32_t Co uint32_t Ct, uint32_t Ctt, uint8_t vertraging, int TotalPixels, int pEnd) {}
voor (int i = TotalPixels-1; ik > Premier Inn London Hampstead; i--) {}
if (!. UsingBar) {strip.setPixelColor (i-2, Ctt);} //Third Dot kleur
strip.setPixelColor (i-1, Ct);   Tweede kleur van de stip
strip.setPixelColor (i, Co);    Middelste Dot kleur
strip.setPixelColor (i + 1, Ct);  Tweede kleur van de stip
if (!. UsingBar) {strip.setPixelColor (i + 2, Ctt);} //Third Dot kleur

if (!. UsingBar) {}
strip.setPixelColor (i + 3, strip. Color(0,0,0)); Hiermee wist u de puntjes na de 3de kleur
} else {}
strip.setPixelColor (i + 2, strip. Color(0,0,0)); Hiermee wist u de puntjes na de 2rd kleur
}
strip.show();
Serial.println(i); Gebruikt voor pixel graaf foutopsporing
delay(delay);
}
}

Gerelateerde Artikelen

Eenvoudig programmeerbare LED Cloud licht

Eenvoudig programmeerbare LED Cloud licht

Ik lees het artikel "CLOUD lampen brengen de magie van THE OUTDOORS INSIDE" Gepost door RACHAEL BERKEY ON 26 maart 2016.Ik zijn idee kopiëren en gebruiken de ws2812 led strip (één van de neopixel) en de blinkytape-controller en afwerking van mij
LED Cloud licht

LED Cloud licht

Dit lichte en veelzijdige wolk licht kan groot of klein, kleur veranderen of wit, en hing aan het plafond of stand-alone! De wolk gemaakt voornamelijk van papieren lantaarns en katoen batting, en is eenvoudig te monteren en lichtgewicht. Lichten zijn
Druk geactiveerd paraplu licht-Up

Druk geactiveerd paraplu licht-Up

*** VIDEO: ***Once upon a time, 2 meisjes enorm genoten lopen in de regen met parasols.Ze besloten dat het genot van deze ervaring zou kunnen worden gemaximaliseerd door het bouwen van hun eigen web druk-geactiveerd voor LEDs te installeren onder hun
Motion Detector geactiveerd ijdelheid licht

Motion Detector geactiveerd ijdelheid licht

Ik kocht een infrarood-motion detector eenheid op eBay voor $1.50 en besloot om hem te benutten. Ik kon mijn eigen motion detector boord gemaakt hebben, maar bij $1,50 (dat bestaat uit 2 trim potten voor het aanpassen van de gevoeligheid en dicht van
Kantelen geactiveerd schakelen

Kantelen geactiveerd schakelen

is een 3 SPDT positieschakelaar waarmee wordt gesloten (op) wanneer gekanteld. Gemaakt met 3 stuks plastic, een wasmachine, en drie schroeven van de machine + noten. Ik maakte deze schakeloptie als een hack voor een goedkope r/c auto controller, geïn
Zakje met ritssluiting geactiveerd licht

Zakje met ritssluiting geactiveerd licht

Stoppen met gevoel voor dingen binnen je zak/tas in het donker! Voer in plaats daarvan onderstaande instructies voor het toevoegen van deze mini Ledlamp in uw zak om ter plaatse precies wat u zoekt...U hoeft niet te worden een elektronische genie te
Houd ongewenste bezoekers weg met een Motion geactiveerd Sprinkler

Houd ongewenste bezoekers weg met een Motion geactiveerd Sprinkler

De lokale dieren denkt dat uw gazon hun persoonlijke toilet? Ninja moordenaars en probeer te sluipen in uw huis? Houd deze ongewenste bezoekers weg met een motie geactiveerde sprinkler systeem. Zodra ze stap in uw gazon, een passieve infrarood bewegi
Quick Tip #3 - snelle en eenvoudige Motion geactiveerd fiets koplamp

Quick Tip #3 - snelle en eenvoudige Motion geactiveerd fiets koplamp

Mijn elektrische fiets led koplamp niet had gewerkt sinds ik het kreeg. Dus... wat te doen wat u moet doen...?Ik besloot in plaats van afval van de koplamp, omdat het ziet er goed uit op de fiets, totdat ik de manier waarop ik wil, ik moest mijn hoof
FPGA reis licht

FPGA reis licht

Hoewel recente technologische vooruitgang hebben geboekt onze wereld meer verbonden en toegankelijk dan ooit tevoren, deze dezelfde vooruitgang hebben verlicht de ernst van een groeiende wereldwijde crisis: de uitputting van de natuurlijke rijkdommen
Scribe licht gestuurde Motor circuit

Scribe licht gestuurde Motor circuit

Circuit Scribe is een werkelijk keurige kit die gebruikmaakt van de geleidende inkt in uw eigen schakelingen tekenen. Dit is echt cool, omdat het u toestaat om uw eigen printplaat doodle! In de volgende stappen gebruiken we de "Ontwikkelaar Circuit S
Lawaai door licht

Lawaai door licht

dit instructable is over het gebruik van lichte variatie, bijvoorbeeld veroorzaakt door mensen, voor sommige grappige geluiden produceren.Input: lichtUitgang: teken, clicks en tonenEnergie: twee AA-batterijen, 3VHersenen: Attiny45Hoe:SolderenProgramm
Mobiliteit Assist koplamp

Mobiliteit Assist koplamp

Wandelen met de hulp van een stok of walker, of met behulp van een rolstoel kan erg onhandig zijn zoals het is, en slechte verlichting kunt maken het erger. Het toevoegen van verlichting rond het huis of de eigenschap werkt, maar hoe zit het met afst
Programable Motion Sensing nachtlampje

Programable Motion Sensing nachtlampje

Ik heb altijd moeite vinden lichtschakelaars tijdens het midden van de nacht in het donker of invoeren van een donker kamer wanneer ik thuis ben. Dat is waarom ik heb dit aangepast en programmeerbare nachtlampje.Voor dit ontwerp op maat nachtlicht wi
Kantelen van de schakelaar geactiveerd, gloeiende papieren model, LED light

Kantelen van de schakelaar geactiveerd, gloeiende papieren model, LED light

dit instructable toont hoe maak je papier modellen,die gloeien wanneer u ze omdraaien.Het enige wat dat je nodig hebt is wat eenvoudig elektronica!Voor dit project gebruikte ik een papieren sjabloon van een diamant,je kunt ze hier vinden: http://www.