Files
@ cc94b5fc9205
Branch filter:
Location: light9/rgbled/nanostrip.cc - annotation
cc94b5fc9205
2.6 KiB
text/x-c++src
effects can mention sub uris, and this becomes currentSubValue(uri)
Ignore-this: 13a8162d01d4bd686c0955132ce290ef
Ignore-this: 13a8162d01d4bd686c0955132ce290ef
ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 e588ede64e0e e588ede64e0e ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e ef4ae15f2661 e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 e588ede64e0e ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e e588ede64e0e ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 ef4ae15f2661 | #include <Arduino.h>
#include <Adafruit_NeoPixel.h>
/*
Pin D3: blacklight pwm
Pin D5: neo strip 1
Pin D6: neo strip 2
Pin D7: R
Pin D8: G
Pin D9: B
Pin D10: blacklight 2
*/
// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_RGB Pixels are wired for RGB bitstream
// NEO_GRB Pixels are wired for GRB bitstream
// NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels)
// NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip)
Adafruit_NeoPixel strip0 = Adafruit_NeoPixel(50, 5, NEO_RGB + NEO_KHZ800);
Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(50, 6, NEO_RGB + NEO_KHZ800);
#define debugLed 13
void intro() {
uint32_t red = strip0.Color(255,0,0), black = strip0.Color(0,0,0);
for (Adafruit_NeoPixel* strip = &strip0; strip != &strip1; strip = &strip1) {
strip->setPixelColor(0, red); strip->show(); delay(100);
strip->setPixelColor(0, black); strip->show(); delay(100);
strip->setPixelColor(0, red); strip->show(); delay(100);
strip->setPixelColor(0, black); strip->show(); delay(100);
}
}
void setStrip(Adafruit_NeoPixel& strip) {
digitalWrite(debugLed, 1);
for (uint8_t i=0; i < strip.numPixels(); i++) {
while (Serial.available() < 3) {
}
byte r = Serial.read();
byte g = Serial.read();
byte b = Serial.read();
strip.setPixelColor(i, strip.Color(g, r, b));
}
strip.show();
digitalWrite(debugLed, 0);
}
int main(void) {
init();
pinMode(debugLed, OUTPUT);
pinMode(3, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
strip0.begin();
strip1.begin();
intro();
Serial.begin(115200);
uint8_t i;
while (1) {
while (Serial.available() <= 2) {
}
i = Serial.read();
if (i != 0x60) {
continue;
}
i = Serial.read(); // command
if (i == 0) { // set strip: 0x60 0x00 <numPixels * 3 bytes>
setStrip(strip0);
} else if (i == 1) { // strip 1
setStrip(strip1);
} else if (i == 2) { // set pwm on D3: 0x60 0x02 <level>
while (Serial.available() < 1) {
}
analogWrite(3, Serial.read());
} else if (i == 3) { // set pwm on D10: 0x60 0x03 <level>
while (Serial.available() < 1) {
}
analogWrite(10, Serial.read());
} else if (i == 4) { // set r/g/b: 0x60 0x04 <r> <g> <b>
while (Serial.available() < 3) {
}
analogWrite(7, Serial.read());
analogWrite(8, Serial.read());
analogWrite(9, Serial.read());
} else {
// unknown command
}
}
}
|