Created
July 9, 2017 14:26
-
-
Save niamtokik/6c45e27b08b4e0c3eec07ead982d9a76 to your computer and use it in GitHub Desktop.
simple beat parser for arduino (based on string) for dual blinking led.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define RED 12 | |
#define GREEN 13 | |
struct blinking { | |
int pin; | |
int mode; | |
int sleep; | |
}; | |
struct blinking b[256]; | |
char *beat = " RRRRGRRRG."; | |
void | |
_set_beat(struct blinking *bp, char *beat, int s) { | |
int i = 0; | |
for(i=0; i<s; i++) { | |
if (beat[i] == 'G') { | |
_set(bp, i, RED, HIGH, 100); | |
} | |
if (beat[i] == 'g') { | |
_set(bp, i, RED, LOW, 100); | |
} | |
if (beat[i] == 'R') { | |
_set(bp, i, GREEN, HIGH, 100); | |
} | |
if (beat[i] == 'r') { | |
_set(bp, i, GREEN, LOW, 100); | |
} | |
if (beat[i] == ' ') { | |
_set(bp, i, RED, LOW, 100); | |
_set(bp, i, GREEN, LOW, 100); | |
} | |
if (beat[i] == '.') { | |
_set(bp, i, RED, HIGH, 100); | |
_set(bp, i, GREEN, HIGH, 100); | |
} | |
} | |
} | |
void | |
_set_mode(struct blinking *bp, int mode) { | |
bp->mode = mode; | |
} | |
void | |
_set_sleep(struct blinking *bp, int sleep) { | |
bp->sleep = sleep; | |
} | |
void | |
_set(struct blinking *bp, int pos, int pin, int mode, int sleep) { | |
bp[pos].pin = pin, | |
_set_mode(&bp[pos], mode); | |
_set_sleep(&bp[pos], sleep); | |
} | |
void | |
_run(struct blinking *bp, int pos) { | |
digitalWrite(bp[pos].pin, bp[pos].mode); | |
delay(bp[pos].sleep); | |
} | |
void | |
_full_run(struct blinking *bp, int s) { | |
int i = 0; | |
for (i=0; i<s; i++) | |
_run(bp, i); | |
} | |
void setup() { | |
pinMode(RED, OUTPUT); | |
pinMode(GREEN, OUTPUT); | |
_set_beat(b, beat, strlen(beat)); | |
} | |
void loop() { | |
_full_run(b, strlen(beat)); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment