Stap 3: Voeg de code toe
Om de code-werking was moeilijker dan ik dacht. Ik kies een traditioneel lied van het 'Sinterklaas' om het te openen en dat liedje heeft herhalende tonen in het wat werkte niet voor de eerste code die ik geschreven.
De opening melody voor mijn vak is gcceddFbbdc.
U moet begrijpen wat Arduino codage als u wilt veranderen dit in uw eigen melodie. Het is niet een lange of moeilijk schets, zodat u waarschijnlijk beheren zal hebt u net een beetje ervaring met een Arduino.
De schets:
gcceddFbbdc 25576684465
#include
Servo myservo;
int buttonPin = A0;
int knop = 0;
int piezo = 3;
int toon = 0; f = 1 g = 2 een 3 = b = 4 c = 5 d = 6 e = F = 8 7
int volgende = true;
int teller = 1;
VOID Setup {}
Serial.begin(9600); foutopsporing
pinMode (13, OUTPUT);
myservo.attach(9);
myservo.writeMicroseconds(1000); }
void loop {}
delay(30); ontdendering
knop = analogRead(buttonPin);
Serial.Print(Toon);
Serial.Print(volgende);
Serial.println(button); foutopsporing
Als (knop > 400) {Toon (piëzo, 349), toon = 8; volgende = false;} / / F
else {als (knop > 150) {Toon (piëzo, 330), toon = 7; volgende = false;} / / e
else {als (knop > 100) {Toon (piëzo, 294), toon = 6; volgende = false;} / / d
else {als (knop > 80) {Toon (piëzo, 262), toon = 5; volgende = false;} / / c
else {als (knop > 60) {Toon (piëzo, 247), toon = 4; volgende = false;} / / b
else {als (knop > 48) {Toon (piëzo, 220), toon = 3; volgende = false;} / / a
else {als (knop > 38) {Toon (piëzo, 196), toon = 2; volgende = false;} / / g
else {als (knop > 20) {Toon (piëzo, 175), toon = 1; volgende = false;} / / f
else{noTone(piezo); volgende = true ;}}}
Als (teller == 1 & & toon == 2 & & volgende == true) {teller = 2; volgende = false;}
Als (teller == 2 & & toon == 5 & & volgende == true) {teller = 3; volgende = false;} else {als (volgende == true & & teller == 2 & & toon! = 2) {teller = 1 ;}}
Als (teller == 3 & & toon == 5 & & volgende == true) {teller = 4; volgende = false;} else {als (volgende == true & & teller == 3 & & toon! = 2) {teller = 1 ;}}
Als (teller == 4 & & toon == 7 & & volgende == true) {teller = 5; volgende = false;} else {als (volgende == true & & teller == 4 & & toon! = 7 & & toon! = 5) {teller = 1 ;}}
Als (teller == 5 & & toon == 6 & & volgende == true) {teller = 6; volgende = false;} else {als (volgende == true & & teller == 5 & & toon! = 7) {teller = 1 ;}}
Als (teller == 6 & & toon == 6 & & volgende == true) {teller = 7; volgende = false;} else {als (volgende == true & & teller == 6 & & toon! = 7) {teller = 1 ;}}
Als (teller == 7 & & toon == 8 & & volgende == true) {teller = 8; volgende = false;} else {als (volgende == true & & teller == 7 & & toon! = 6 & & toon! = 8) {teller = 1 ;}}
Als (teller == 8 & & toon == 4 & & volgende == true) {teller = 9; volgende = false;} else {als (volgende == true & & teller == 8 & & toon! = 8) {teller = 1 ;}}
Als (teller == 9 & & toon == 4 & & volgende == true) {teller = 10; volgende = false;} else {als (volgende == true & & teller == 9 & & toon! = 8) {teller = 1 ;}}
Als (teller == 10 & & toon == 6 & & volgende == true) {teller = 11; volgende = false;} else {als (volgende == true & & teller == 10 & & toon! = 4) {teller = 1 ;}}
Als (teller == 11 & & toon == 5 & & volgende == true) {teller = 12; volgende = false;} else {als (volgende == true & & teller == 11 & & toon! = 6) {teller = 1 ;}}
Als (teller == 12 & & volgende == true) {teller = 13 digitalWrite (13, hoge); myservo.writeMicroseconds(2000); delay(5000);} //2000 is de waarde voor de open servo
Als (teller == 13 & & volgende == true & & toon! = 5) {digitalWrite (13, laag); teller = 1; myservo.writeMicroseconds(1000);} //1000 is de waarde voor de gesloten servo
}