Upload files to 'shine of the rainbow'
This commit is contained in:
parent
2402cfcc0f
commit
5ad25e2174
82
shine of the rainbow/shine_of_the_rainbow.ino
Normal file
82
shine of the rainbow/shine_of_the_rainbow.ino
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#include <CommonBusEncoders.h>
|
||||||
|
#include <Adafruit_NeoPixel.h>
|
||||||
|
#include <HID-Project.h>
|
||||||
|
|
||||||
|
#define LED_PIN 4
|
||||||
|
#define LED_COUNT 12
|
||||||
|
|
||||||
|
#define DIMDELAY 1000
|
||||||
|
#define DIMMAX 50
|
||||||
|
#define DIMMIN 10
|
||||||
|
|
||||||
|
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800);
|
||||||
|
long RGBpos = 0;
|
||||||
|
int delay_count = 0;
|
||||||
|
byte LEDbrightness = 50;
|
||||||
|
int dimdelay_count = 0;
|
||||||
|
|
||||||
|
CommonBusEncoders encoders(1, 2, 3, 1);
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
//Setup APA106 LEDs
|
||||||
|
strip.begin();
|
||||||
|
strip.show();
|
||||||
|
strip.setBrightness(LEDbrightness);
|
||||||
|
|
||||||
|
//Setup encoder
|
||||||
|
encoders.setDebounce(16);
|
||||||
|
encoders.resetChronoAfter(10000);
|
||||||
|
encoders.addEncoder(1, 4, 5, 1, 100, 199);
|
||||||
|
|
||||||
|
//Start Consumer keyboard
|
||||||
|
Consumer.begin();
|
||||||
|
|
||||||
|
//Serial debugging
|
||||||
|
//Serial.begin(9600);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
dimled();
|
||||||
|
if (delay_count > 20) {
|
||||||
|
strip.setBrightness(LEDbrightness);
|
||||||
|
rainbow(RGBpos);
|
||||||
|
RGBpos = (RGBpos += 256);
|
||||||
|
if (RGBpos > 5 * 65536) RGBpos = 0;
|
||||||
|
delay_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int code = encoders.readAll();
|
||||||
|
if (code != 0) {
|
||||||
|
//Serial.println(code);
|
||||||
|
LEDbrightness = DIMMAX;
|
||||||
|
strip.setBrightness(LEDbrightness);
|
||||||
|
strip.show();
|
||||||
|
}
|
||||||
|
if (code == 101) Consumer.write(MEDIA_VOLUME_DOWN);
|
||||||
|
if (code == 100) Consumer.write(MEDIA_VOLUME_UP);
|
||||||
|
if (code == 199) Consumer.write(MEDIA_VOLUME_MUTE);
|
||||||
|
delay(1);
|
||||||
|
delay_count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dimled() {
|
||||||
|
dimdelay_count++;
|
||||||
|
if (dimdelay_count > DIMDELAY) {
|
||||||
|
dimdelay_count = 0;
|
||||||
|
LEDbrightness--;
|
||||||
|
if (LEDbrightness <= DIMMIN) {
|
||||||
|
LEDbrightness = DIMMIN;
|
||||||
|
}
|
||||||
|
//Serial.println(LEDbrightness);
|
||||||
|
strip.setBrightness(LEDbrightness);
|
||||||
|
strip.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void rainbow(long firstPixelHue) {
|
||||||
|
for (int i = 0; i < strip.numPixels(); i++) {
|
||||||
|
int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels());
|
||||||
|
strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue)));
|
||||||
|
}
|
||||||
|
strip.show();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user