-
-
Save cassianorabelo/83c26695c1093cf185969210b5a2fd72 to your computer and use it in GitHub Desktop.
Arduino Star Wars Song for Piezo
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
**/ | |
const int c = 261; | |
const int d = 294; | |
const int e = 329; | |
const int f = 349; | |
const int g = 391; | |
const int gS = 415; | |
const int a = 440; | |
// const int aS = 455; | |
const int aS = 466; | |
//const int b = 466; | |
const int b = 499; | |
const int cH = 523; | |
const int cSH = 554; | |
const int dH = 587; | |
const int dSH = 622; | |
const int eH = 659; | |
const int fH = 698; | |
const int fSH = 740; | |
const int gH = 784; | |
const int gSH = 830; | |
const int aH = 880; | |
const int buzzerPin = 8; | |
const int ledPin1 = 12; | |
const int ledPin2 = 13; | |
int counter = 0; | |
void setup() | |
{ | |
//Setup pin modes | |
pinMode(buzzerPin, OUTPUT); | |
pinMode(ledPin1, OUTPUT); | |
pinMode(ledPin2, OUTPUT); | |
} | |
void loop() | |
{ | |
//Play first section | |
firstSection(); | |
//Play second section | |
secondSection(); | |
//Variant 1 | |
beep(f, 250); | |
beep(gS, 500); | |
beep(f, 350); | |
beep(a, 125); | |
beep(cH, 500); | |
beep(a, 375); | |
beep(cH, 125); | |
beep(eH, 650); | |
delay(500); | |
//Repeat second section | |
secondSection(); | |
//Variant 2 | |
beep(f, 250); | |
beep(gS, 500); | |
beep(f, 375); | |
beep(cH, 125); | |
beep(a, 500); | |
beep(f, 375); | |
beep(cH, 125); | |
beep(a, 650); | |
delay(650); | |
} | |
void beep(int note, int duration) | |
{ | |
//Play tone on buzzerPin | |
tone(buzzerPin, note, duration); | |
//Play different LED depending on value of 'counter' | |
if(counter % 2 == 0) | |
{ | |
digitalWrite(ledPin1, HIGH); | |
delay(duration); | |
digitalWrite(ledPin1, LOW); | |
}else | |
{ | |
digitalWrite(ledPin2, HIGH); | |
delay(duration); | |
digitalWrite(ledPin2, LOW); | |
} | |
//Stop tone on buzzerPin | |
noTone(buzzerPin); | |
delay(50); | |
//Increment counter | |
counter++; | |
} | |
void firstSection() | |
{ | |
beep(a, 500); | |
beep(a, 500); | |
beep(a, 500); | |
beep(f, 350); | |
beep(cH, 150); | |
beep(a, 500); | |
beep(f, 350); | |
beep(cH, 150); | |
beep(a, 650); | |
delay(500); | |
beep(eH, 500); | |
beep(eH, 500); | |
beep(eH, 500); | |
beep(fH, 350); | |
beep(cH, 150); | |
beep(gS, 500); | |
beep(f, 350); | |
beep(cH, 150); | |
beep(a, 650); | |
delay(500); | |
} | |
void secondSection() | |
{ | |
beep(aH, 500); | |
beep(a, 300); | |
beep(a, 150); | |
beep(aH, 500); | |
beep(gSH, 325); | |
beep(gH, 175); | |
beep(fSH, 125); | |
beep(fH, 125); | |
beep(fSH, 250); | |
delay(325); | |
beep(aS, 250); | |
beep(dSH, 500); | |
beep(dH, 325); | |
beep(cSH, 175); | |
beep(cH, 125); | |
beep(b, 125); | |
beep(cH, 250); | |
delay(350); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment