arduino stuffs
Diffstat (limited to 'rgled/rgled.ino')
-rw-r--r--rgled/rgled.ino74
1 files changed, 0 insertions, 74 deletions
diff --git a/rgled/rgled.ino b/rgled/rgled.ino
deleted file mode 100644
index 555414a..0000000
--- a/rgled/rgled.ino
+++ /dev/null
@@ -1,74 +0,0 @@
-#include "rot.h"
-const uint8_t RED = 5;
-const uint8_t BLUE = 6;
-const uint8_t GREEN = 9;
-
-void setup() { Rotary::setup(50); }
-
-const uint8_t min_delay = 1;
-void loop() {
- static uint8_t R, G, B;
- static uint8_t color = 0;
- hue_to_rgb(color, 255, R, G, B);
- analogWrite(RED, R);
- analogWrite(GREEN, G);
- analogWrite(BLUE, B);
- color++;
- // color %= 256; it wraps on its own!
- int result = Rotary::read();
- if (!Rotary::button_just_pressed()) {
- if (result > min_delay) {
- delay(result);
- return;
- }
- } else {
- delay(50);
- Rotary::set(50);
- return;
- }
- if (result != min_delay)
- Rotary::set(min_delay);
- delay(min_delay);
-}
-
-void hue_to_rgb(uint8_t hue, uint8_t brightness, uint8_t &R, uint8_t &B, uint8_t &G) {
- uint16_t scaled = hue * 6;
- uint8_t segment = scaled / 256;
- uint8_t offset = scaled - segment * 256;
- uint8_t complement = 0;
- uint8_t prev = (brightness * (255 - offset)) / 256;
- uint8_t next = (brightness * offset) / 256;
- switch (segment) {
- case 0:
- R = brightness;
- G = next;
- B = complement;
- break;
- case 1:
- R = prev;
- G = brightness;
- B = complement;
- break;
- case 2:
- R = complement;
- G = brightness;
- B = next;
- break;
- case 3:
- R = complement;
- G = prev;
- B = brightness;
- break;
- case 4:
- R = next;
- G = complement;
- B = brightness;
- break;
- case 5:
- default:
- R = brightness;
- G = complement;
- B = prev;
- break;
- }
-} \ No newline at end of file