Created
September 4, 2018 16:01
-
-
Save halldorel/28e10206c7206261eff98bc24b419aa5 to your computer and use it in GitHub Desktop.
arduino rhythm player
This file contains 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
// Notum pinna númer PIN_NO til að stýra solenoid. Breyta hér til að velja annan pinna | |
#define PIN_NO 3 | |
// SONG_SPEED segir hversu hratt lagið á að vera | |
// Hærra gildi, þýðir lengra á milli slaga, sem er hægara tempo | |
#define SONG_SPEED 500 | |
// DOWN_TIME segir hversu lengi hamarinn er niðri í ms | |
// ATH að má ekki vera lengra en SONG_SPEED | |
#define DOWN_TIME 20 | |
// RHYTHM_LENGTH segir hversu langt lagið er í 8 pörtum | |
#define RHYTHM_LENGTH 8 | |
// RHYTHM segir hvort 8 partur sé spilaður eða ekki | |
const bool RHYTHM[] = { 1, 0, 1, 1, 0, 0, 1, 0 }; | |
void setup() { | |
// Segjum pinnanum að hann eigi að virka sem output | |
pinMode(PIN_NO, OUTPUT); | |
} | |
void loop() { | |
for(int i = 0; i < RHYTHM_LENGTH; ++i) { | |
if(RHYTHM[i]) { | |
hitAndWait(DOWN_TIME); | |
} | |
else { | |
wait(); | |
} | |
} | |
} | |
void hitAndWait(int downTime) { | |
digitalWrite(PIN_NO, HIGH); | |
delay(downTime); | |
digitalWrite(PIN_NO, LOW); | |
delay(max(SONG_SPEED - downTime, 0)); | |
} | |
void wait() { | |
delay(SONG_SPEED); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment