Skip to content

Instantly share code, notes, and snippets.

@noppelmax
Created March 9, 2018 14:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save noppelmax/0c648628811c5c44de5a288832c59efa to your computer and use it in GitHub Desktop.
Save noppelmax/0c648628811c5c44de5a288832c59efa to your computer and use it in GitHub Desktop.
equinox_schild_v1
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6
#define NUM_LEDS 85
#define BRIGHTNESS 50
#define ORANGE_G 70
#define ORANGE_R 255
#define ORANGE_B 0
#define ORANGE strip.Color(ORANGE_G, ORANGE_R, ORANGE_B, 255 )
#define BLUE_G 10
#define BLUE_R 10
#define BLUE_B 255
#define BLUE strip.Color(BLUE_G, BLUE_R, BLUE_B, 255 )
#define NONE strip.Color(0,0,0, 255 )
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
int letterX[] = {1,3,4,5,6,7,8,9,10,0};
int letterO[] = {11,12,13,14,15,16,17,18,19,20,21,22,0};
int letterN[] = {23,24,25,26,27,28,29,30,31,32,33,34,35,0};
int letterI[] = {36,37,38,39,40,0};
int letterU[] = {41,42,43,44,45,46,47,48,49,50,51,0};
int letterQStrich[] = {52,53,57,66,60,63,65,0};
int letterQR[] = {54,58,61,64,59,62,0};
int letterQL[] = {55,56,68,69,67,70,0};
int letterQ[] = {52,53,58,61,64,66,67,54,55,59,60,62,63,65,56,57,68,69,70,0};
int letterE[] = {72,73,74,75,76,77,78,79,80,81,82,83,84,71,0};
void setup() {
// This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
#if defined (__AVR_ATtiny85__)
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
strip.setBrightness(BRIGHTNESS);
strip.begin();
strip.show();
}
void loop() {
animation1();
animation5();
animation5();
animation5();
animation2();
animation3();
animation4();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation6();
animation2();
animation4();
animation3();
animation1();
}
void fillLetter( int* letter, uint32_t c ) {
for(uint16_t i=0; i<100; i++) {
if(letter[i] == 0){
break;
}
strip.setPixelColor(letter[i]-1, c);
}
strip.show();
}
void fadeLetterOn( int* letter, uint32_t c, uint16_t t ) {
for(uint16_t frame = 0; frame < t/10; frame ++){
fillLetter( letter, strip.Color((green(c)*10/t) * frame, (red(c)*10/t) * frame, (blue(c)*10/t) * frame, 255 ) );
delay(10);
}
fillLetter( letter,c );
}
uint32_t getLetterColor( int* letter ){
return strip.getPixelColor(letter[0]-1);
}
void strobe( int* letter, uint16_t t ) {
uint32_t c = getLetterColor(letter);
for(uint16_t frame = 0; frame < t/10; frame ++){
fillLetter( letter, strip.Color(green(c) - 10 * frame, red(c) - 10 * frame, blue(c) - 10 * frame, 255 ) );
delay(10);
}
}
void fadeLetterOff( int* letter, uint16_t t ) {
uint32_t c = getLetterColor(letter);
for(uint16_t frame = 0; frame < t/10; frame ++){
fillLetter( letter, strip.Color(green(c) - 10 * frame, red(c) - 10 * frame, blue(c) - 10 * frame, 255 ) );
delay(10);
}
}
void animation6(){
fillLetter(letterE, BLUE);
fillLetter(letterQ, ORANGE);
fillLetter(letterU, BLUE);
fillLetter(letterI, ORANGE);
fillLetter(letterN, BLUE);
fillLetter(letterO, ORANGE);
fillLetter(letterX, BLUE);
delay(70);
fillLetter(letterE, ORANGE);
fillLetter(letterQ, BLUE);
fillLetter(letterU, ORANGE);
fillLetter(letterI, BLUE);
fillLetter(letterN, ORANGE);
fillLetter(letterO, BLUE);
fillLetter(letterX, ORANGE);
delay(70);
}
void animation5(){
int t = 100;
strobe(letterE, t);
strobe(letterQ, t);
strobe(letterU, t);
strobe(letterI, t);
strobe(letterN, t);
strobe(letterO, t);
strobe(letterX, t);
}
void animation4(){
int t = 400;
fadeLetterOn(letterE, BLUE,t);
fadeLetterOn(letterQ, ORANGE,t);
fadeLetterOn(letterU, BLUE,t);
fadeLetterOn(letterI, ORANGE,t);
fadeLetterOn(letterN, BLUE,t);
fadeLetterOn(letterO, ORANGE,t);
fadeLetterOn(letterX, BLUE,t);
}
void animation3(){
int t = 300;
fadeLetterOn(letterE, BLUE,t);
fadeLetterOn(letterQ, ORANGE,t);
fadeLetterOn(letterU, BLUE,t);
fadeLetterOn(letterI, ORANGE,t);
fadeLetterOn(letterN, BLUE,t);
fadeLetterOn(letterO, ORANGE,t);
fadeLetterOn(letterX, BLUE,t);
fadeLetterOn(letterE, ORANGE,t);
fadeLetterOn(letterQ, BLUE,t);
fadeLetterOn(letterU, ORANGE,t);
fadeLetterOn(letterI, BLUE,t);
fadeLetterOn(letterN, ORANGE,t);
fadeLetterOn(letterO, BLUE,t);
fadeLetterOn(letterX, ORANGE,t);
}
void animation2(){
int t = 300;
fadeLetterOn(letterE, BLUE, t);
fadeLetterOn(letterQ, ORANGE, t);
fadeLetterOn(letterU, BLUE, t);
fadeLetterOn(letterI, ORANGE, t);
fadeLetterOn(letterN, BLUE, t);
fadeLetterOn(letterO, ORANGE, t);
fadeLetterOn(letterX, BLUE, t);
fadeLetterOn(letterE, ORANGE, t);
fadeLetterOn(letterQ, ORANGE, t);
fadeLetterOn(letterU, ORANGE, t);
fadeLetterOn(letterI, ORANGE, t);
fadeLetterOn(letterN, ORANGE, t);
fadeLetterOn(letterO, ORANGE, t);
fadeLetterOn(letterX, ORANGE, t);
fadeLetterOn(letterE, BLUE, t);
fadeLetterOn(letterQ, ORANGE, t);
fadeLetterOn(letterU, BLUE, t);
fadeLetterOn(letterI, ORANGE, t);
fadeLetterOn(letterN, BLUE, t);
fadeLetterOn(letterO, ORANGE, t);
fadeLetterOn(letterX, BLUE, t);
fadeLetterOn(letterE, BLUE, t);
fadeLetterOn(letterQ, BLUE, t);
fadeLetterOn(letterU, BLUE, t);
fadeLetterOn(letterI, BLUE, t);
fadeLetterOn(letterN, BLUE, t);
fadeLetterOn(letterO, BLUE, t);
fadeLetterOn(letterX, BLUE, t);
}
void animation1(){
fullOrange();
delay(300);
fullBlue();
delay(300);
}
void fullOrange() {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, ORANGE );
}
strip.show();
}
void fullBlue() {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, BLUE );
}
strip.show();
}
uint8_t green(uint32_t c) {
return (c >> 16);
}
uint8_t red(uint32_t c) {
return (c >> 8);
}
uint8_t blue(uint32_t c) {
return (c);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment