Pokeball högtalare (6 / 12 steg)
Steg 6: Första testet med de lysdioder
Om du vill testa den ledde användes jag först en normal Arduino Uno.
Koden som används är något modifierad från Adafruit's test koden.
Men först får det NeoPixel biblioteket från här: https://github.com/adafruit/Adafruit_NeoPixel
Installera biblioteket och pasta den följande koden till Arduino
#include
#include
#define stift 1
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 (16, 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() {
Detta är för prydnadssak 5V 16MHz, kan du ta bort dessa tre rader om du inte använder en fasad
#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() {
Några exempel förfaranden visar hur till pixlarna ska visas:
colorWipe (remsa. Color(255, 0, 0), 50); Röd
colorWipe (remsa. Color(0, 255, 0), 50); Grön
colorWipe (remsa. Color(0, 0, 255), 50); Blå
colorWipe (remsa. Color(255,0,150), 50);
Skicka en teater pixel jakt i...
theaterChase (remsa. Color(127, 127, 127), 50); Vit
theaterChase (remsa. Color(127, 0, 0), 50); Röd
theaterChase (remsa. Färg (0, 0, 127), 50); Blå
Rainbow(20);
rainbowCycle(20);
theaterChaseRainbow(50);
}
Fylla 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
{Ogiltig 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 (i, hjulet (((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 (int jag = 0; jag < strip.numPixels(); i = i + 3) {
strip.setPixelColor (jag + q, c); aktivera varje tredje pixel
}
Strip.show();
Delay(Wait);
för (int jag = 0; jag < strip.numPixels(); i = i + 3) {
strip.setPixelColor (jag + q, 0); Inaktivera alla bildpunkter på tredje
}
}
}
}
Biosittning krypande lampor med regnbågseffekt
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)); aktivera varje tredje pixel
}
Strip.show();
Delay(Wait);
för (int jag = 0; jag < strip.numPixels(); i = i + 3) {
strip.setPixelColor (jag + q, 0); Inaktivera alla bildpunkter på tredje
}
}
}
}
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) {
returnera strip. Färg (255 - WheelPos * 3, 0, WheelPos * 3);
} annat if(WheelPos < 170) {
WheelPos-= 85.
returnera strip. Färg (0, WheelPos * 3, 255 - WheelPos * 3);
} annat {
WheelPos-= 170;
returnera strip. Färg (WheelPos * 3, 255 - WheelPos * 3, 0);
}
}
Ändra PIN-koden om det behövs. Stift 1 används på prydnadssak senare.