// StarWarsTune_op_Arduino
//
#define PIEZO 2 // geef een naam aan pin 2
int teller = 0; // initialiseer een variabele waarmee
// je de tijd dat een noot moet aangehouden
// worden instelt
int tijd = 0; // initialiseer een variabele waarmee je de
// tijd instelt dat je de uitgang hoog ofwel
// laag houdt
void setup() // eenmalig uitgevoerd
{
pinMode(PIEZO, OUTPUT); // stel de pin (2) in als uitgang
}
void loop() // voer steeds opnieuw uit (= loop)
{
teller = 0; // zet de variabele teller op 0
// om te starten
// CCCC // laat de noot C horen gedurende 800 ms
teller = 209; // teller is het aantal keren dat de while-loop
// (zie de functie onderaan) moet doorlopen worden
tijd = 1911; // tijd is de variabele die aangeeft hoeveel
// microseconden de pen (2) HOOG moet blijven en
// daarna dezelfde tijd LAAG moet blijven.
noot(teller, tijd); // roep de functie 'noot' aan en geef de twee variabelen
// mee als parameters
// GGGGGGGG // laat de noot G horen gedurende 1600 ms
teller = 627;
tijd = 1276;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// F // laat de F horen gedurende 200 ms
teller = 70;
tijd = 1432;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// E // laat de noot E horen gedurende 200 ms
teller = 66;
tijd = 1517;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// DD // laat de noot D horen gedurende 400 ms
teller = 117;
tijd = 1703;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// C8C8C8C8 // laat de noot C8 horen gedurende 800 ms
teller = 418;
tijd = 956;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// GGGGGGGG // laat de noot G horen gedurende 1600 ms
teller = 627;
tijd = 1276;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// F // laat de noot F horen gedurende 200 ms
teller = 70;
tijd = 1432;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// E // laat de noot E horen gedurende 200 ms
teller = 66;
tijd = 1517;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// DD // laat de noot D horen gedurende 400 ms
teller = 117;
tijd = 1703;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// C8C8C8C8 // laat de noot C8 horen gedurende 800 ms
teller = 418;
tijd = 956;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// GGGGGGGG // laat de noot G horen gedurende 1600 ms
teller = 627;
tijd = 1276;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// F // laat de noot F horen gedurende 200 ms
teller = 70;
tijd = 1432;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// E // laat de noot E horen gedurende 200 ms
teller = 66;
tijd = 1517;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// F // laat de noot F horen gedurende 200 ms
teller = 70;
tijd = 1432;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
// DDDDDDDDDDDDDDDD // laat de noot D horen gedurende 3200 ms
teller = 940;
tijd = 1703;
noot(teller, tijd); // roep de functie 'noot' aan met de nieuwe parameters
delay(3000);
}
int noot(int teller, int tijd) // geef de beide parameters teller en tijd
// door aan de functie 'noot'
// voer de functie uit
{
while (teller > 0) // controleer of waarde van teller groter is dan 0
{ // als teller > 0 voer dan de volgende instructies uit
digitalWrite(PIEZO, HIGH); // zet de pen (2) op een HOOG niveau (5 V dus)
delayMicroseconds(tijd); // wacht een aantal µs terwijl pen (2) HOOG staat
digitalWrite(PIEZO, LOW); // zet de pen (2) op een LAAG niveau (0 V dus)
delayMicroseconds(tijd); // wacht een aantal µs terwijl pen (2) LAAG staat
teller--; // verlaag de teller met 1
} // als de teller = 0 stopt deze loop
} // keer terug naar de plaats waar de functie werd
// aangeroepen.