Färgskiftande box hyllor med LED-strips och Arduino (5 / 5 steg)
Steg 5: Anslut Arduino och kod
Det är mycket tydligt och du bör läsa den:
https://learn.adafruit.com/adafruit-neopixel-uberguide/Overview
https://learn.adafruit.com/adafruit-neopixel-uberguide/Best-Practices
https://learn.adafruit.com/adafruit-neopixel-uberguide/Arduino-Library
-Anslut PIN6 (kod exempel nedan, vi använder stift 6) till den första LED SIGNAL,
-ansluta Arduino marken till den första LED GND
-Driva din LED strip med en 5V strömförsörjning och Anslut din arduino till USB-laddare.
-Varning: Om du makt remsan genom Arduino, Använd inte pin "+ 5V" från arduino. Detta stift innebära vissa känsliga kretsar på Arduino och kan bränna på grund av den nuvarande av LED strip. I stället kan du försöker använda "Vin" PIN-koden. Om du planerar att dra mer det 1A av strömmen (~ 20 till 50 mA per LED), ansluta en 5v strömförsörjning direkt till LED strip (och marken måste delas med Arduino's).
Här är koden jag använde för en slow motion av färger genom kuber. Det är direkt tagna och anpassad från Neo_Pixel bibliotek exemplen:
#include < Adafruit_NeoPixel.h >
#define stift 6
Parametern 1 = antal pixlar i remsa
Parameter 2 = Arduino pin-kod (de flesta är giltig)
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 kopplat för GRB bitstream (de flesta NeoPixel produkter)
NEO_RGB pixlar är kopplat för RGB bitstream (v1 FLORA pixlar, inte v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel (8 * 14, 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 pixel data ingång
och minimera avståndet mellan Arduino och första pixel. Undvika att ansluta
på en levande krets... om du måste, Anslut GND först.
void setup() {
Strip.BEGIN();
Strip.show(); Initiera alla pixlar till "off"
}
void loop() {
rainbowCycle(20);
}
void rainbowCycle (uint8_t vänta) {
uint16_t i, j.
för (j = 0; j < 256; j ++) {
för (jag = 0; jag < strip.numPixels(); i ++) {
strip.setPixelColor (i, Wheel(((i) * 256/strip.numPixels()) + j) & 255));
}
Strip.show();
Delay(Wait);
}
}
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) {
IF(WheelPos < 85) {
returnera strip. Färg (WheelPos * 3, 255 - WheelPos * 3, 0);
} annat if(WheelPos < 170) {
WheelPos-= 85.
returnera strip. Färg (255 - WheelPos * 3, 0, WheelPos * 3);
} annat {
WheelPos-= 170;
returnera strip. Färg (0, WheelPos * 3, 255 - WheelPos * 3);
}
}