En magdansös Bonanza (5 / 5 steg)
Steg 5: Programmera den nedre Arduino
int speakerPin = 12; int längd = 15. antalet anmärkningar {Ogiltig playTone (int tonen, int längd) void playNote (char note, int varaktighet) { spela tonen motsvarar tonens namn void setup() {
int buttonPin = A0;
int buttonState = 0;
int outputValue = 0;
char noterar [] = "gcgcgcg"; ett utrymme representerar en vila
int slår [] = {1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4};
int tempo = 300;
för (länge jag = 0; jag < varaktighet * 1000L; i += tonen * 2) {
digitalWrite (speakerPin, hög);
delayMicroseconds(tone);
digitalWrite (speakerPin, låg);
delayMicroseconds(tone);
}
}
char namn [] = {'c', 'd ","e","f","g","a","b","C"};
int toner [] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956};
för (int jag = 0; jag < 8; i ++) {
om (namn [i] == OBS) {
playTone (toner [i], varaktighet);
}
}
}
pinMode (speakerPin, produktionen);
pinMode (buttonPin, ingång);
Serial.BEGIN(9600);
}
void loop() {
While(1) {
buttonState = analogRead(buttonPin);
outputValue = karta (buttonState, 0, 1023, 0, 500);
IF(outputValue<100) {
för (int jag = 0; jag < längd; i ++) {
om (anteckningar [i] == "") {
fördröjning (beats [i] * tempo); resten
} annat {
playNote (anteckningar [i], beats [i] * tempo);
}
paus mellan anteckningar
Delay(tempo / 2);
}
Serial.println(outputValue); skriva ut potVAL i fönstret arduino följetong);
}
IF(outputValue>120)
{
digitalWrite(speakerPin,LOW);
Serial.println(outputValue);
}
}
}
När denna uppladdning av koden görs, bör du se att när skummet trycks med några tryck på den nedre sidan, talaren ska börja ge av siren ljudet. När trycket är realeased, bör talaren inte längre utgång någon ytterligare siren. Din botten i slutet av denna process bör se ut som i figur \ref{bottomdone}. Jag la några långa remsor av tyg till outter fälgen (via sömnad) för att ge mer av en magdans titt på trasan. (Denna bild visar botten fortfarande är ansluten till en Arduino Uno, men om du använder en Lilypad, det är väldigt lätt att sy Lilypad på insidan av tyget och det kommer inte vara synlig från utsidan.
Ha kul med detta, och lycka till!