CNC skulptur med Neopixel (2 / 8 steg)
Steg 2: Steg 2: Breadboarding med kod
Den breadboarding delen av detta projekt var den mest frustrerande, förutom det faktum att jag var tvungen att återskapa min Instructables på grund av oavsiktlig radering av hela projektet kontra en tom sida (ursäkta ilska).
Jag har bifogat en bild av vad min skärbräda såg ut, tillsammans med en visuell diagram av de integrerade delarna.
För bakbord använde jag en 10 k resistor, 1000uf kondensator (Adafruit rekommenderas), LED-ljus (och sedan Neopixel band), mini ljud sensorn, Arduino Uno, Arduino programvara, invändig/utvändig bakbord byglar, huvudet pin, manliga bakbord tröjor och en skärbräda.
** För Neopixel remsan vi (min lärare och mig) tog en header stift, med tre stift, och fäst dem Neopixel remsan med lödtenn och en lödkolv. Vi använde sedan kvinna/man bakbord byglar för att fästa huvud stiften, olika färgade tråd för varje del (röd för 5V power, gult för indata och svart för marken) och när vi kopplade det vi använde svart krympslang att hålla dem together.* *
** För mini ljud sensorn hade vi använda en mikro skruvmejsel för att justera tröskeln till sensorn **
Vad gjorde detta frustrerande var att hitta kod som arbetat i projektet.
Jag hittade och anpassad kod från: http://www.danielandrade.net/2011/04/09/arduino-so...
Jag använde denna kod och anpassat det med RGB färgkoder för CMY (cyan, magenta, gul) färgerna jag använde i samband med exemplet Adafruit bibliotek (https://github.com/adafruit/Adafruit_NeoPixel) under buttoncycle Arduino kod.
Här är koden:
[code]
#include
#define VOLUME_PIN A0
#define PIXEL_PIN 6
#define PIXEL_COUNT 40
float tröskel =. 05; Ändra detta
float volym;
Adafruit_NeoPixel strip = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);
bool oldState = hög;
int showType = 0;
void setup() {
Serial.BEGIN(9600); För felsökning
pinMode (VOLUME_PIN, indata);
Strip.BEGIN();
Strip.show();
}
void loop() {
volym = analogRead(A0); Läser värdet från Analog PIN A0
Debug-läge
Serial.println(Volume);
Delay(1);
IF(Volume>100) {
theaterChase (remsa. Color(248,8,53), 5); magenta
}
annat if(volume<80) {
theaterChase (remsa. Color(18,240,190), 200); Teal
}
annat {
theaterChase (remsa. Color(255,236,146), 80); off white
}
}
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
}
}
}
}
[/code]