summaryrefslogtreecommitdiff
path: root/usb-fastled/usb-fastled.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'usb-fastled/usb-fastled.cpp')
-rw-r--r--usb-fastled/usb-fastled.cpp54
1 files changed, 51 insertions, 3 deletions
diff --git a/usb-fastled/usb-fastled.cpp b/usb-fastled/usb-fastled.cpp
index 5746201..767492f 100644
--- a/usb-fastled/usb-fastled.cpp
+++ b/usb-fastled/usb-fastled.cpp
@@ -30,15 +30,62 @@
#include "led.h"
#include "usbio.h"
+#include "Arduino.h"
#include "FastLED.h"
+
+
+// How many leds in your strip?
+#define NUM_LEDS 4
+
+// For led chips like Neopixels, which have a data line, ground, and power, you just
+// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock,
+// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
+#define DATA_PIN 3 // PD0 @ Atmega32U4
+#define CLOCK_PIN 2 // PD1 @ Atmega32U4
+
+// Define the array of leds
+CRGB leds[NUM_LEDS];
+
+void fastled_init()
+{
+ arduino_init();
+
+// Uncomment/edit one of the following lines for your leds arrangement.
+// FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
+ FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
+// FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
+
+// FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<P9813, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<APA102, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<DOTSTAR, RGB>(leds, NUM_LEDS);
+
+// FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
+// FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
+}
+
void handle_cmd(uint8_t cmd)
{
switch(cmd) {
- case '0': led_off(); break;
- case '1': led_on(); break;
- case 't': led_toggle(); break;
+ case '0': leds[0] = CRGB::Black; FastLED.show(); led_off(); break;
+ case '1': leds[0] = CRGB::Green; FastLED.show(); led_on(); break;
case 'r': reset2bootloader(); break;
default: printf("error\r\n"); return;
}
@@ -53,6 +100,7 @@ int main(void)
cpu_init();
led_init();
usbio_init();
+ fastled_init();
sei();
for(;;) {