Skip to content

Instantly share code, notes, and snippets.

@DDR0
Last active April 11, 2020 01:59
Show Gist options
  • Save DDR0/f92f929a20451896a438e132d757f4c4 to your computer and use it in GitHub Desktop.
Save DDR0/f92f929a20451896a438e132d757f4c4 to your computer and use it in GitHub Desktop.
Blinky Patterns for the Arduino Uno - Now with button presses for modes!
#define END 0
#define START 1
#define BLINK 2
#define UBLINK 3
#define REPEAT 4
#define LOG_SEEK 0
#define LOG_EXEC 0
static const byte ledPin = 5;
static const byte buttonPin = 6;
static const unsigned short int pattern_data[] PROGMEM = {
START, 0, BLINK, 255, 10000,
START, 0, BLINK, 255, 100, BLINK, 0, 50, REPEAT, 6, 4,
START, 0, UBLINK, 255, 1000, UBLINK, 0, 10000, REPEAT, 6, 200,
START, 0, BLINK, 255, 1000,
//Decreasing Sweep, 1.4s
START, 10, BLINK, 255, 16, BLINK, 252, 16, BLINK, 250, 16, BLINK, 247, 16, BLINK, 245, 16, BLINK, 242, 16, BLINK, 240, 16, BLINK, 237, 16, BLINK, 235, 16, BLINK, 232, 16, BLINK, 230, 16, BLINK, 227, 16, BLINK, 224, 16, BLINK, 222, 16, BLINK, 219, 16, BLINK, 217, 16, BLINK, 214, 16, BLINK, 212, 16, BLINK, 209, 16, BLINK, 207, 16, BLINK, 204, 16, BLINK, 201, 16, BLINK, 199, 16, BLINK, 196, 16, BLINK, 194, 16, BLINK, 191, 16, BLINK, 189, 16, BLINK, 186, 16, BLINK, 184, 16, BLINK, 181, 16, BLINK, 179, 16, BLINK, 176, 16, BLINK, 173, 16, BLINK, 171, 16, BLINK, 168, 16, BLINK, 166, 16, BLINK, 163, 16, BLINK, 161, 16, BLINK, 158, 16, BLINK, 156, 16, BLINK, 153, 16, BLINK, 150, 16, BLINK, 148, 16, BLINK, 145, 16, BLINK, 143, 16, BLINK, 140, 16, BLINK, 138, 16, BLINK, 135, 16, BLINK, 133, 16, BLINK, 130, 16, BLINK, 128, 16, BLINK, 125, 16, BLINK, 122, 16, BLINK, 120, 16, BLINK, 117, 16, BLINK, 115, 16, BLINK, 112, 16, BLINK, 110, 16, BLINK, 107, 16, BLINK, 105, 16, BLINK, 102, 16, BLINK, 99, 16, BLINK, 97, 16, BLINK, 94, 16, BLINK, 92, 16, BLINK, 89, 16, BLINK, 87, 16, BLINK, 84, 16, BLINK, 82, 16, BLINK, 79, 16, BLINK, 77, 16, BLINK, 74, 16, BLINK, 71, 16, BLINK, 69, 16, BLINK, 66, 16, BLINK, 64, 16, BLINK, 61, 16, BLINK, 59, 16, BLINK, 56, 16, BLINK, 54, 16, BLINK, 51, 16, BLINK, 48, 16, BLINK, 46, 16, BLINK, 43, 16, BLINK, 41, 16, BLINK, 38, 16, BLINK, 36, 16, BLINK, 33, 16, BLINK, 31, 16, BLINK, 28, 16, BLINK, 25, 16, BLINK, 23, 16, BLINK, 20, 16, BLINK, 18, 16, BLINK, 15, 16, BLINK, 13, 16, BLINK, 10, 16, BLINK, 8, 16, BLINK, 5, 16, BLINK, 3, 16, BLINK, 0, 16,
//Increasing Sweep, 1.4s
START, 10, BLINK, 0, 16, BLINK, 3, 16, BLINK, 5, 16, BLINK, 8, 16, BLINK, 10, 16, BLINK, 13, 16, BLINK, 15, 16, BLINK, 18, 16, BLINK, 20, 16, BLINK, 23, 16, BLINK, 26, 16, BLINK, 28, 16, BLINK, 31, 16, BLINK, 33, 16, BLINK, 36, 16, BLINK, 38, 16, BLINK, 41, 16, BLINK, 43, 16, BLINK, 46, 16, BLINK, 48, 16, BLINK, 51, 16, BLINK, 54, 16, BLINK, 56, 16, BLINK, 59, 16, BLINK, 61, 16, BLINK, 64, 16, BLINK, 66, 16, BLINK, 69, 16, BLINK, 71, 16, BLINK, 74, 16, BLINK, 77, 16, BLINK, 79, 16, BLINK, 82, 16, BLINK, 84, 16, BLINK, 87, 16, BLINK, 89, 16, BLINK, 92, 16, BLINK, 94, 16, BLINK, 97, 16, BLINK, 99, 16, BLINK, 102, 16, BLINK, 105, 16, BLINK, 107, 16, BLINK, 110, 16, BLINK, 112, 16, BLINK, 115, 16, BLINK, 117, 16, BLINK, 120, 16, BLINK, 122, 16, BLINK, 125, 16, BLINK, 128, 16, BLINK, 130, 16, BLINK, 133, 16, BLINK, 135, 16, BLINK, 138, 16, BLINK, 140, 16, BLINK, 143, 16, BLINK, 145, 16, BLINK, 148, 16, BLINK, 150, 16, BLINK, 153, 16, BLINK, 156, 16, BLINK, 158, 16, BLINK, 161, 16, BLINK, 163, 16, BLINK, 166, 16, BLINK, 168, 16, BLINK, 171, 16, BLINK, 173, 16, BLINK, 176, 16, BLINK, 179, 16, BLINK, 181, 16, BLINK, 184, 16, BLINK, 186, 16, BLINK, 189, 16, BLINK, 191, 16, BLINK, 194, 16, BLINK, 196, 16, BLINK, 199, 16, BLINK, 201, 16, BLINK, 204, 16, BLINK, 207, 16, BLINK, 209, 16, BLINK, 212, 16, BLINK, 214, 16, BLINK, 217, 16, BLINK, 219, 16, BLINK, 222, 16, BLINK, 224, 16, BLINK, 227, 16, BLINK, 230, 16, BLINK, 232, 16, BLINK, 235, 16, BLINK, 237, 16, BLINK, 240, 16, BLINK, 242, 16, BLINK, 245, 16, BLINK, 247, 16, BLINK, 250, 16, BLINK, 252, 16, BLINK, 255, 16,
//1-(sin(x/10*pi)^2) * (x%2) / 1.8 - modulated sawteeth of various formats, 5s
START, 10, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 1, 16, BLINK, 1, 16, BLINK, 1, 16, BLINK, 1, 16, BLINK, 1, 16, BLINK, 2, 16, BLINK, 2, 16, BLINK, 3, 16, BLINK, 3, 16, BLINK, 4, 16, BLINK, 4, 16, BLINK, 5, 16, BLINK, 5, 16, BLINK, 6, 16, BLINK, 7, 16, BLINK, 8, 16, BLINK, 9, 16, BLINK, 10, 16, BLINK, 11, 16, BLINK, 12, 16, BLINK, 14, 16, BLINK, 15, 16, BLINK, 16, 16, BLINK, 18, 16, BLINK, 20, 16, BLINK, 21, 16, BLINK, 23, 16, BLINK, 25, 16, BLINK, 27, 16, BLINK, 29, 16, BLINK, 31, 16, BLINK, 34, 16, BLINK, 36, 16, BLINK, 38, 16, BLINK, 41, 16, BLINK, 44, 16, BLINK, 47, 16, BLINK, 50, 16, BLINK, 53, 16, BLINK, 56, 16, BLINK, 59, 16, BLINK, 62, 16, BLINK, 66, 16, BLINK, 69, 16, BLINK, 73, 16, BLINK, 77, 16, BLINK, 81, 16, BLINK, 85, 16, BLINK, 89, 16, BLINK, 93, 16, BLINK, 0, 16, BLINK, 2, 16, BLINK, 3, 16, BLINK, 5, 16, BLINK, 7, 16, BLINK, 9, 16, BLINK, 12, 16, BLINK, 14, 16, BLINK, 16, 16, BLINK, 19, 16, BLINK, 21, 16, BLINK, 24, 16, BLINK, 27, 16, BLINK, 29, 16, BLINK, 32, 16, BLINK, 35, 16, BLINK, 39, 16, BLINK, 42, 16, BLINK, 45, 16, BLINK, 49, 16, BLINK, 52, 16, BLINK, 56, 16, BLINK, 60, 16, BLINK, 63, 16, BLINK, 67, 16, BLINK, 71, 16, BLINK, 75, 16, BLINK, 80, 16, BLINK, 84, 16, BLINK, 88, 16, BLINK, 93, 16, BLINK, 97, 16, BLINK, 102, 16, BLINK, 107, 16, BLINK, 111, 16, BLINK, 116, 16, BLINK, 121, 16, BLINK, 126, 16, BLINK, 131, 16, BLINK, 136, 16, BLINK, 142, 16, BLINK, 147, 16, BLINK, 152, 16, BLINK, 158, 16, BLINK, 163, 16, BLINK, 169, 16, BLINK, 174, 16, BLINK, 180, 16, BLINK, 186, 16, BLINK, 191, 16, BLINK, 197, 16, BLINK, 203, 16, BLINK, 209, 16, BLINK, 215, 16, BLINK, 220, 16, BLINK, 226, 16, BLINK, 232, 16, BLINK, 238, 16, BLINK, 244, 16, BLINK, 250, 16, BLINK, 0, 16, BLINK, 4, 16, BLINK, 9, 16, BLINK, 13, 16, BLINK, 18, 16, BLINK, 22, 16, BLINK, 27, 16, BLINK, 31, 16, BLINK, 36, 16, BLINK, 40, 16, BLINK, 45, 16, BLINK, 50, 16, BLINK, 55, 16, BLINK, 59, 16, BLINK, 64, 16, BLINK, 69, 16, BLINK, 74, 16, BLINK, 79, 16, BLINK, 84, 16, BLINK, 89, 16, BLINK, 93, 16, BLINK, 98, 16, BLINK, 103, 16, BLINK, 108, 16, BLINK, 113, 16, BLINK, 118, 16, BLINK, 123, 16, BLINK, 127, 16, BLINK, 132, 16, BLINK, 137, 16, BLINK, 142, 16, BLINK, 146, 16, BLINK, 151, 16, BLINK, 156, 16, BLINK, 160, 16, BLINK, 165, 16, BLINK, 169, 16, BLINK, 174, 16, BLINK, 178, 16, BLINK, 183, 16, BLINK, 187, 16, BLINK, 191, 16, BLINK, 195, 16, BLINK, 199, 16, BLINK, 203, 16, BLINK, 207, 16, BLINK, 211, 16, BLINK, 215, 16, BLINK, 219, 16, BLINK, 222, 16, BLINK, 226, 16, BLINK, 229, 16, BLINK, 233, 16, BLINK, 236, 16, BLINK, 239, 16, BLINK, 242, 16, BLINK, 245, 16, BLINK, 248, 16, BLINK, 251, 16, BLINK, 254, 16, BLINK, 0, 16, BLINK, 4, 16, BLINK, 8, 16, BLINK, 13, 16, BLINK, 17, 16, BLINK, 21, 16, BLINK, 24, 16, BLINK, 28, 16, BLINK, 32, 16, BLINK, 36, 16, BLINK, 39, 16, BLINK, 43, 16, BLINK, 46, 16, BLINK, 50, 16, BLINK, 53, 16, BLINK, 56, 16, BLINK, 59, 16, BLINK, 62, 16, BLINK, 65, 16, BLINK, 68, 16, BLINK, 71, 16, BLINK, 73, 16, BLINK, 76, 16, BLINK, 78, 16, BLINK, 81, 16, BLINK, 83, 16, BLINK, 85, 16, BLINK, 87, 16, BLINK, 89, 16, BLINK, 91, 16, BLINK, 93, 16, BLINK, 94, 16, BLINK, 96, 16, BLINK, 97, 16, BLINK, 99, 16, BLINK, 100, 16, BLINK, 101, 16, BLINK, 102, 16, BLINK, 103, 16, BLINK, 104, 16, BLINK, 104, 16, BLINK, 105, 16, BLINK, 105, 16, BLINK, 106, 16, BLINK, 106, 16, BLINK, 106, 16, BLINK, 106, 16, BLINK, 106, 16, BLINK, 106, 16, BLINK, 106, 16, BLINK, 106, 16, BLINK, 105, 16, BLINK, 105, 16, BLINK, 104, 16, BLINK, 104, 16, BLINK, 103, 16, BLINK, 102, 16, BLINK, 101, 16, BLINK, 100, 16, BLINK, 99, 16, BLINK, 0, 16, BLINK, 2, 16, BLINK, 3, 16, BLINK, 4, 16, BLINK, 6, 16, BLINK, 7, 16, BLINK, 8, 16, BLINK, 9, 16, BLINK, 10, 16, BLINK, 11, 16, BLINK, 12, 16, BLINK, 13, 16, BLINK, 13, 16, BLINK, 14, 16, BLINK, 14, 16, BLINK, 15, 16, BLINK, 15, 16, BLINK, 15, 16, BLINK, 15, 16, BLINK, 16, 16, BLINK, 16, 16, BLINK, 16, 16, BLINK, 16, 16, BLINK, 16, 16, BLINK, 15, 16, BLINK, 15, 16, BLINK, 15, 16, BLINK, 15, 16, BLINK, 14, 16, BLINK, 14, 16, BLINK, 14, 16, BLINK, 13, 16, BLINK, 13, 16, BLINK, 12, 16, BLINK, 12, 16, BLINK, 11, 16, BLINK, 11, 16, BLINK, 10, 16, BLINK, 9, 16, BLINK, 9, 16, BLINK, 8, 16, BLINK, 8, 16, BLINK, 7, 16, BLINK, 6, 16, BLINK, 6, 16, BLINK, 5, 16, BLINK, 5, 16, BLINK, 4, 16, BLINK, 4, 16, BLINK, 3, 16, BLINK, 3, 16, BLINK, 2, 16, BLINK, 2, 16, BLINK, 1, 16, BLINK, 1, 16, BLINK, 1, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16,
//modulated blinkies, 5s
START, 10, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 26, 16, BLINK, 28, 16, BLINK, 29, 16, BLINK, 31, 16, BLINK, 33, 16, BLINK, 35, 16, BLINK, 36, 16, BLINK, 38, 16, BLINK, 40, 16, BLINK, 42, 16, BLINK, 44, 16, BLINK, 46, 16, BLINK, 48, 16, BLINK, 50, 16, BLINK, 53, 16, BLINK, 55, 16, BLINK, 57, 16, BLINK, 59, 16, BLINK, 61, 16, BLINK, 64, 16, BLINK, 66, 16, BLINK, 68, 16, BLINK, 71, 16, BLINK, 73, 16, BLINK, 76, 16, BLINK, 78, 16, BLINK, 81, 16, BLINK, 83, 16, BLINK, 86, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 169, 16, BLINK, 172, 16, BLINK, 174, 16, BLINK, 177, 16, BLINK, 179, 16, BLINK, 182, 16, BLINK, 184, 16, BLINK, 187, 16, BLINK, 189, 16, BLINK, 191, 16, BLINK, 194, 16, BLINK, 196, 16, BLINK, 198, 16, BLINK, 200, 16, BLINK, 202, 16, BLINK, 205, 16, BLINK, 207, 16, BLINK, 209, 16, BLINK, 211, 16, BLINK, 213, 16, BLINK, 215, 16, BLINK, 217, 16, BLINK, 219, 16, BLINK, 220, 16, BLINK, 222, 16, BLINK, 224, 16, BLINK, 226, 16, BLINK, 227, 16, BLINK, 229, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 254, 16, BLINK, 254, 16, BLINK, 254, 16, BLINK, 253, 16, BLINK, 253, 16, BLINK, 252, 16, BLINK, 252, 16, BLINK, 251, 16, BLINK, 250, 16, BLINK, 250, 16, BLINK, 249, 16, BLINK, 248, 16, BLINK, 247, 16, BLINK, 246, 16, BLINK, 245, 16, BLINK, 244, 16, BLINK, 243, 16, BLINK, 242, 16, BLINK, 240, 16, BLINK, 239, 16, BLINK, 238, 16, BLINK, 237, 16, BLINK, 235, 16, BLINK, 234, 16, BLINK, 232, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 164, 16, BLINK, 162, 16, BLINK, 159, 16, BLINK, 157, 16, BLINK, 154, 16, BLINK, 151, 16, BLINK, 149, 16, BLINK, 146, 16, BLINK, 143, 16, BLINK, 141, 16, BLINK, 138, 16, BLINK, 136, 16, BLINK, 133, 16, BLINK, 130, 16, BLINK, 128, 16, BLINK, 125, 16, BLINK, 122, 16, BLINK, 119, 16, BLINK, 117, 16, BLINK, 114, 16, BLINK, 112, 16, BLINK, 109, 16, BLINK, 106, 16, BLINK, 104, 16, BLINK, 101, 16, BLINK, 98, 16, BLINK, 96, 16, BLINK, 93, 16, BLINK, 91, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 23, 16, BLINK, 21, 16, BLINK, 20, 16, BLINK, 18, 16, BLINK, 17, 16, BLINK, 16, 16, BLINK, 15, 16, BLINK, 13, 16, BLINK, 12, 16, BLINK, 11, 16, BLINK, 10, 16, BLINK, 9, 16, BLINK, 8, 16, BLINK, 7, 16, BLINK, 6, 16, BLINK, 5, 16, BLINK, 5, 16, BLINK, 4, 16, BLINK, 3, 16, BLINK, 3, 16, BLINK, 2, 16, BLINK, 2, 16, BLINK, 1, 16, BLINK, 1, 16, BLINK, 1, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16,
//gentle waves w/ flicker, 5s
START, 10, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 132, 16, BLINK, 132, 16, BLINK, 133, 16, BLINK, 134, 16, BLINK, 134, 16, BLINK, 135, 16, BLINK, 135, 16, BLINK, 136, 16, BLINK, 137, 16, BLINK, 137, 16, BLINK, 138, 16, BLINK, 139, 16, BLINK, 140, 16, BLINK, 140, 16, BLINK, 141, 16, BLINK, 142, 16, BLINK, 143, 16, BLINK, 144, 16, BLINK, 145, 16, BLINK, 146, 16, BLINK, 147, 16, BLINK, 148, 16, BLINK, 149, 16, BLINK, 150, 16, BLINK, 151, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 161, 16, BLINK, 162, 16, BLINK, 163, 16, BLINK, 164, 16, BLINK, 165, 16, BLINK, 167, 16, BLINK, 168, 16, BLINK, 169, 16, BLINK, 170, 16, BLINK, 172, 16, BLINK, 173, 16, BLINK, 174, 16, BLINK, 175, 16, BLINK, 177, 16, BLINK, 178, 16, BLINK, 179, 16, BLINK, 181, 16, BLINK, 182, 16, BLINK, 183, 16, BLINK, 185, 16, BLINK, 186, 16, BLINK, 187, 16, BLINK, 189, 16, BLINK, 190, 16, BLINK, 191, 16, BLINK, 193, 16, BLINK, 194, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 212, 16, BLINK, 213, 16, BLINK, 215, 16, BLINK, 216, 16, BLINK, 217, 16, BLINK, 218, 16, BLINK, 220, 16, BLINK, 221, 16, BLINK, 222, 16, BLINK, 223, 16, BLINK, 224, 16, BLINK, 225, 16, BLINK, 227, 16, BLINK, 228, 16, BLINK, 229, 16, BLINK, 230, 16, BLINK, 231, 16, BLINK, 232, 16, BLINK, 233, 16, BLINK, 234, 16, BLINK, 235, 16, BLINK, 236, 16, BLINK, 237, 16, BLINK, 238, 16, BLINK, 239, 16, BLINK, 240, 16, BLINK, 240, 16, BLINK, 241, 16, BLINK, 242, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 250, 16, BLINK, 251, 16, BLINK, 251, 16, BLINK, 251, 16, BLINK, 252, 16, BLINK, 252, 16, BLINK, 253, 16, BLINK, 253, 16, BLINK, 253, 16, BLINK, 254, 16, BLINK, 254, 16, BLINK, 254, 16, BLINK, 254, 16, BLINK, 254, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 252, 16, BLINK, 251, 16, BLINK, 251, 16, BLINK, 251, 16, BLINK, 250, 16, BLINK, 249, 16, BLINK, 249, 16, BLINK, 248, 16, BLINK, 248, 16, BLINK, 247, 16, BLINK, 246, 16, BLINK, 246, 16, BLINK, 245, 16, BLINK, 244, 16, BLINK, 244, 16, BLINK, 243, 16, BLINK, 242, 16, BLINK, 241, 16, BLINK, 240, 16, BLINK, 240, 16, BLINK, 239, 16, BLINK, 238, 16, BLINK, 237, 16, BLINK, 236, 16, BLINK, 235, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 217, 16, BLINK, 216, 16, BLINK, 215, 16, BLINK, 213, 16, BLINK, 212, 16, BLINK, 211, 16, BLINK, 210, 16, BLINK, 208, 16, BLINK, 207, 16, BLINK, 206, 16, BLINK, 205, 16, BLINK, 203, 16, BLINK, 202, 16, BLINK, 201, 16, BLINK, 199, 16, BLINK, 198, 16, BLINK, 197, 16, BLINK, 195, 16, BLINK, 194, 16, BLINK, 193, 16, BLINK, 191, 16, BLINK, 190, 16, BLINK, 189, 16, BLINK, 187, 16, BLINK, 186, 16, BLINK, 185, 16, BLINK, 183, 16, BLINK, 182, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 174, 16, BLINK, 173, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 165, 16, BLINK, 164, 16, BLINK, 163, 16, BLINK, 162, 16, BLINK, 161, 16, BLINK, 159, 16, BLINK, 158, 16, BLINK, 157, 16, BLINK, 156, 16, BLINK, 155, 16, BLINK, 154, 16, BLINK, 153, 16, BLINK, 152, 16, BLINK, 151, 16, BLINK, 150, 16, BLINK, 149, 16, BLINK, 148, 16, BLINK, 147, 16, BLINK, 146, 16, BLINK, 145, 16, BLINK, 144, 16, BLINK, 143, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 134, 16, BLINK, 133, 16, BLINK, 132, 16, BLINK, 132, 16, BLINK, 131, 16, BLINK, 131, 16, BLINK, 131, 16, BLINK, 130, 16, BLINK, 130, 16, BLINK, 130, 16, BLINK, 129, 16, BLINK, 129, 16, BLINK, 129, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16, BLINK, 128, 16,
//chopped waves, 1.5s
START, 20, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 12, 16, BLINK, 16, 16, BLINK, 21, 16, BLINK, 27, 16, BLINK, 34, 16, BLINK, 42, 16, BLINK, 51, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 100, 16, BLINK, 116, 16, BLINK, 135, 16, BLINK, 156, 16, BLINK, 180, 16, BLINK, 207, 16, BLINK, 238, 16, BLINK, 255, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 238, 16, BLINK, 207, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 100, 16, BLINK, 85, 16, BLINK, 72, 16, BLINK, 61, 16, BLINK, 51, 16, BLINK, 42, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 0, 16, BLINK, 12, 16, BLINK, 8, 16, BLINK, 5, 16, BLINK, 3, 16, BLINK, 1, 16, BLINK, 0, 16, BLINK, 0, 16,
//swoops, 0.75s
START, 40, BLINK, 0, 16, BLINK, 1, 16, BLINK, 5, 16, BLINK, 12, 16, BLINK, 21, 16, BLINK, 34, 16, BLINK, 51, 16, BLINK, 72, 16, BLINK, 100, 16, BLINK, 135, 16, BLINK, 180, 16, BLINK, 238, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 238, 16, BLINK, 180, 16, BLINK, 135, 16, BLINK, 100, 16, BLINK, 72, 16, BLINK, 51, 16, BLINK, 34, 16, BLINK, 21, 16, BLINK, 12, 16, BLINK, 5, 16, BLINK, 1, 16, BLINK, 0, 16,
//inverse swoops, 0.5s
START, 50, BLINK, 0, 16, BLINK, 0, 16, BLINK, 1, 16, BLINK, 3, 16, BLINK, 5, 16, BLINK, 9, 16, BLINK, 13, 16, BLINK, 21, 16, BLINK, 31, 16, BLINK, 48, 16, BLINK, 76, 16, BLINK, 129, 16, BLINK, 242, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 255, 16, BLINK, 242, 16, BLINK, 129, 16, BLINK, 77, 16, BLINK, 48, 16, BLINK, 31, 16, BLINK, 21, 16, BLINK, 13, 16, BLINK, 9, 16, BLINK, 5, 16, BLINK, 3, 16, BLINK, 1, 16, BLINK, 0, 16, BLINK, 0, 16,
END,
};
unsigned short int patterns(unsigned short int i) {
return pgm_read_word(&pattern_data[i]);
}
unsigned int pc; //Preset Counter
unsigned int pRepeat; //Repeat Counter
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
analogWrite(ledPin, 255);
presetInit();
}
byte mode = 0;
bool pressed = false;
byte numModes = 3;
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW) { // low means the D2 pin is pulled to ground aka connect D2 to GND on the arduino
if (!pressed) {
pressed = true;
mode = ++mode%numModes;
}
} else {
if (pressed) {
pressed = false;
}
}
if (mode == 0) {
Serial.println("mode 0");
processPreset();
} else if (mode == 1) {
Serial.println("mode 1");
analogWrite(ledPin, 255);
} else if (mode == 2) {
Serial.println("mode 2");
analogWrite(ledPin, 0);
} else {
Serial.println("unknown mode");
delay(100); //flush the buffer
exit(5); //Invalid command. Ruh roh.
}
}
void presetInit() {
//Serial.println("reset presets");
pc = 0;
pRepeat = 0;
}
void selectRandomPreset() {
short int increment = random(0,200);
LOG_SEEK && Serial.print("s: seeking preset +");
LOG_SEEK && Serial.println(increment);
while (increment > 0) {
switch (patterns(pc)) {
case END:
presetInit();
continue;
case START:
LOG_SEEK && Serial.println("s: new pattern");
increment -= patterns(pc + 1);
pc += 2;
continue;
case BLINK:
case UBLINK:
LOG_SEEK && Serial.println("s: blink");
pc += 3;
continue;
case REPEAT:
LOG_SEEK && Serial.println("s: repeat");
pc+=3; //skip delay value
continue;
default: //Unknown command, we probably mucked up the number of args to a command or something.
Serial.print("s: invalid command ");
Serial.print(patterns(pc));
Serial.print("@");
Serial.println(pc);
delay(100); //flush the buffer
exit(5); //Invalid command. Ruh roh.
}
}
}
void processPreset() {
LOG_EXEC && Serial.print("p: command ");
LOG_EXEC && Serial.print(patterns(pc));
LOG_EXEC && Serial.print("@");
LOG_EXEC && Serial.println(pc);
switch (patterns(pc)) {
return; case END:
presetInit();
return; case START: //Seek random preset when we encounter the start of one.
selectRandomPreset();
return; case BLINK:
LOG_EXEC && Serial.println("p: blink led");
pc++; //consume instruction
analogWrite(ledPin, patterns(pc++));
delay(patterns(pc++));
return; case UBLINK:
LOG_EXEC && Serial.println("p: ublink led");
pc++; //consume instruction
analogWrite(ledPin, patterns(pc++));
delayMicroseconds(patterns(pc++));
return; case REPEAT:
LOG_EXEC && Serial.print("p: loop ");
LOG_EXEC && Serial.println(pRepeat);
switch (pRepeat) {
break; case 0: //First loop.
pRepeat = patterns(pc+2) + 1;
pc -= patterns(pc+1);
break; case 1: //Last loop. Skip the repeat this time.
pRepeat--;
pc += 3;
break; default:
pRepeat--;
pc -= patterns(pc+1);
}
return; default:
Serial.print("p: invalid command ");
Serial.print(patterns(pc));
Serial.print("@");
Serial.println(pc);
delay(100);
exit(5); //Invalid command. Ruh roh.
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment