The Rainbow Bat (2 / 5 steg)
Steg 2: Steg 2: Arduino och Neopixels
Låter som ett rätt band? Ja Nej. För att börja Adafruit har en underbar bibliotek som du kan använda för att komma igång. Vi börjar med att fästa hoppare ledningar till början av din Neopixels. Alla pilar pekar på slutet. I början är det avsnitt som alla hoppare ansluta till och sedan ansluta till Arduino Uno. Använda grundläggande ledningar, röd är makt, svart är marken och vit är data. Röda kommer att gå in på 5V, svart kommer att gå till en av GND stiften, sedan vita är där uppgifterna kommer från som 6.
När du har den kopplad gå vidare och koppla Arduino kretskortet till en dator och starta upp din Arduino programmering programvara. Koden är här:
#include
#define stift 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel (60, PIN, NEO_GRB + NEO_KHZ800);
void setup() {strip.begin(); strip.show(); / / initiera alla pixlar till "off" / / Serial.begin(115200);}
void loop() {
Hämta raw accelerometer data för varje axel int rawX = analogRead(A0); int rawY = analogRead(A1); int rawZ = analogRead(A2);
Skriva ut rå X, Y, Z accelerometer avläsningar / / Serial.print ("X:"); Serial.println(rawX);
om (rawX > = 650|| rawY > = 650 || rawZ > = 650) {theaterChaseRainbow(25);} annat {rainbow(1);}}
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 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 (uint16_t jag = 0; jag < strip.numPixels(); i = i + 3) {strip.setPixelColor (jag + q, c), //turn varje tredje pixel på} strip.show();
Delay(Wait);
för (uint16_t 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 (uint16_t 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 (uint16_t 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);