Skip to content

Instantly share code, notes, and snippets.

@halldorel
Created September 4, 2018 16:01
Show Gist options
  • Save halldorel/28e10206c7206261eff98bc24b419aa5 to your computer and use it in GitHub Desktop.
Save halldorel/28e10206c7206261eff98bc24b419aa5 to your computer and use it in GitHub Desktop.
arduino rhythm player
// 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