Skip to content

Instantly share code, notes, and snippets.

@mikekavouras
Created September 27, 2018 19:19
Show Gist options
  • Save mikekavouras/84f74766866e465e18fe3224c6d45aab to your computer and use it in GitHub Desktop.
Save mikekavouras/84f74766866e465e18fe3224c6d45aab to your computer and use it in GitHub Desktop.
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
int DATA_IN = 11;
int LATCH= 10;
int CLOCK = 9;
int seq[14][8] = {
{0, 0, 0, 0, 0, 0, 0, 1},
{0, 0, 0, 0, 0, 0, 1, 0},
{0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 0}
};
int melody[] = {
NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_D4
};
void render(int *seq) {
for (int i = 0; i < 8; i++) {
digitalWrite(DATA_IN, seq[i]);
digitalWrite(CLOCK, HIGH);
digitalWrite(DATA_IN, LOW);
digitalWrite(CLOCK, LOW);
}
digitalWrite(LATCH, HIGH);
digitalWrite(LATCH, LOW);
}
void setup() {
pinMode(DATA_IN, OUTPUT);
pinMode(LATCH, OUTPUT);
pinMode(CLOCK, OUTPUT);
}
void loop() {
for (int i = 0; i < 14; i++) {
render(seq[i]);
tone(8, melody[i], 1000 / 4);
delay(70);
noTone(8);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment