Moon Rock (3 / 3 steg)
Steg 3: programmering
# Jag prova moon bild färg med photoshop och få RGB-värdet sedan kopiera dem till koden
# fade() funktionen skulle ta en RBG värde sedan bleknar till en annan RGB värde
#include #ifdef __AVR__ #include #endif
#define stift 4
Parametern 1 = antal pixlar i remsa / / Parameter 2 = Arduino pin-kod (de flesta är giltigt) / / Parameter 3 = pixel typ flaggor, Lägg ihop efter behov: / / NEO_KHZ800 800 KHz bitstream (de flesta NeoPixel produkter w/WS2812 lysdioder) / / NEO_KHZ400 400 KHz (classic "v1" (inte v2) FLORA pixlar, WS2811 drivrutiner) / / NEO_GRB pixlar är trådbundet för GRB bitstream (de flesta NeoPixel produkter) / / NEO_RGB pixlar är trådbundet för RGB bitstream (v1 FLORA pixlar inte v2) Adafruit_NeoPixel strip = Adafruit_NeoPixel (94, PIN, NEO_GRB + NEO_KHZ800);
VIKTIGT: För att minska NeoPixel burnout risk, lägga till 1000 uF kondensator över / / pixel power leads, lägga till 300-500 ohms motstånd på första pixelns indata / / och minimera avståndet mellan Arduino och första pixel. Undvika att ansluta / / live strömkrets... om du måste, Anslut GND först.
void setup() {/ / Detta är för prydnadssak 5V 16MHz, kan du ta bort dessa tre rader om du inte använder en prydnadssak #if definieras (__AVR_ATtiny85__) om (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif / / slutet av prydnadssak speciell kod
Strip.BEGIN(); Strip.show(); Initiera alla pixlar till "off"}
void loop() {
Fade (50, 0, 0, 0, 202, 168, 76); Fade (50, 222, 161, 57, 202, 168, 76); Fade (50, 202, 168, 76, 156, 153, 140); Fade (50, 156, 153, 140, 144, 139, 129); Fade (50, 144, 139, 129, 172, 127, 65); Fade (50, 172, 127, 65, 191, 108, 22); Fade (50, 191, 108, 22, 222, 161, 57); Fade (50, 222, 161, 57, 169, 86, 18); Fade (50, 169, 86, 18, 169-18, 86-18, 18-18); Fade (50, 169-18, 86-18, 18-18, 0, 0, 0);
}
void fade (uint16_t varaktighet, int startColorR, int startColorG, int startColorB, int endColorR, int endColorG, int endColorB) {
int16_t redDiff = endColorR - startColorR; int16_t greenDiff = endColorG - startColorG; int16_t blueDiff = endColorB - startColorB;
int16_t delaya = 20; int16_t steg = varaktighet / delaya;
int16_t redValue, greenValue, blueValue;
för (int16_t jag = 0; jag < steg - 1. ++ jag) {redValue = (int16_t) startColorR + (redDiff * jag / steg); greenValue = (int16_t) startColorG + (greenDiff * jag / steg); blueValue = (int16_t) startColorB + (blueDiff * jag / steg);
för (uint16_t jag = 0; jag
Strip.show();
} / * lyser upp halva cirkeln för (uint16_t jag = 0; jag
} för ((uint16_t i=strip.numPixels) / 2; i
Strip.show();
} * / / * för (uint16_t jag = 0; jag
} * / * / / / waitMs(delay); }
LED.Shine(endColor); strip.setPixelColor (i, Wheel((i+j) & 255)); }
Fyll prickar en efter den andra med en färg void colorWipe (uint32_t c, uint8_t vänta) {för (uint16_t jag = 0; jag
void rainbow (uint8_t vänta) {uint16_t i, j.
för (j = 0; j < 256; j ++) {för (jag = 0; jag
Något annorlunda, detta gör regnbågen jämnt fördelat i hela void rainbowCycle (uint8_t vänta) {uint16_t i, j.
för (j = 0; j < 256 * 5; j ++) {/ / 5 cykler av alla färger på hjul för (jag = 0; jag < strip.numPixels(); i ++) {strip.setPixelColor (jag, rullar (((i * 256/strip.numPixels()) + j) & 255));} strip.show(); delay(wait);}} Biosittning krypande lampor. void theaterChasex (uint32_t c, uint8_t vänta) {för (int j = 0; j < 10; j ++) {//do 10 cykler för att jaga för (int q = 0; d < 3; q ++) {för (int jag = 0; jag < strip.numPixels(); i = i + 3) {strip.setPixelColor (jag + q, c), //turn varje tredje pixel på} strip.show();
Delay(Wait);
för (int jag = 0; jag < strip.numPixels(); i = i + 3) {strip.setPixelColor (jag + q, 30), //turn varje tredje pixel off}}}}
Biosittning krypande lampor. void theaterChase (uint32_t c, uint8_t vänta) {för (int j = 0; j < 10; j ++) {//do 10 cykler för att jaga för (int q = 0; d < 3; q ++) {för (int jag = 0; jag < strip.numPixels(); i = i + 3) {strip.setPixelColor (jag + q, c), //turn varje tredje pixel på} strip.show();
Delay(Wait);
för (int jag = 0; jag < strip.numPixels(); i = i + 3) {strip.setPixelColor (jag + q, 0); //turn varje tredje pixel off}}}}
Biosittning kryper lyser med regnbåge effekt void theaterChaseRainbow (uint8_t vänta) {för (int j = 0; j < 256; j ++) {/ / cykla alla 256 färger i hjulet för (int q = 0; d < 3; q ++) {för (int jag = 0; jag < strip.numPixels(); i = i + 3) {strip.setPixelColor (i + q, rullar ((i + j) % 255)); //turn varje tredje pixel på} strip.show();
Delay(Wait);
för (int jag = 0; jag < strip.numPixels(); i = i + 3) {strip.setPixelColor (jag + q, 0); //turn varje tredje pixel off}}}}
Ange ett värde 0 till 255 att få ett färgvärde. Färgerna är en övergång r - g - b - tillbaka till r. uint32_t hjul (byte WheelPos) {WheelPos = 255 - WheelPos; if(WheelPos < 85) {return strip. Färg (255 - WheelPos * 3, 0, WheelPos * 3); } if(WheelPos < 170) {WheelPos-= 85; retur strip. Färg (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos-= 170; returnera strip. Färg (WheelPos * 3, 255 - WheelPos * 3, 0); }