Spelar Imperial mars på en snabb växling ventil
Det ljud du hör är producerad av högt tryck luft rusar ut från ventilen - det öppnar och stänger mycket mycket snabbt och producerar ljud. Den jag använt här är Festo's MHE3-MS1H-3 / 2G-QS-6.
Växeln i tid är 2.3 ms och stängs den av i 2.8ms - mycket mycket imponerande del av maskinvaran och de är ganska dyr - tur fick jag den för nästan ingenting.
1. kretsen är mycket enkel - bara en ULN2003A används som en drivrutin för ventilen. Kontrollera i diagrammet.
(Observera att jag var tvungen att ersätta ventilen med en magnetventil - men hey det är en magnetventil trots allt. Oh och förresten - om du inte har en pneumatisk ventil kretsen kommer att arbeta med bara en vanlig magnetventil - bara montera den så att det slår ett metallföremål och det bör producera ljud alltför).
KOPPLINGSSCHEMA -> >
2. här är arduino koden (det är en något modifierad version av en skiss skapad av Carlton herde) - bara kopiera & klistra bygga kretsen som beskrivs och det bör fungera alldeles utmärkt
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 en = 440;
CONST int som = 455;
CONST int b = 466;
CONST int cH = 523;
CONST int cSH = 554 och Bull.
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 = 2;
int counter = 0;
void setup()
{
Setup pin lägen
pinMode (buzzerPin, produktionen);
}
void loop()
{
Spela första avsnittet
firstSection();
Spela andra avsnittet
secondSection();
Variant 1
pip (f, 250);
pip (gS, 500);
pip (f, 350);
pip (a, 125);
pip (cH, 500);
pip (en, 375);
pip (cH, 125);
beep(eH, 650);
Delay(500);
Upprepa det andra avsnittet
secondSection();
Variant 2
pip (f, 250);
pip (gS, 500);
pip (f, 375);
pip (cH, 125);
pip (a, 500).
pip (f, 375);
pip (cH, 125);
pip (en, 650);
Delay(650);
}
void beep (int Obs, int längd)
{
Spela tonen på buzzerPin
tonen (buzzerPin, notera /4, varaktighet);
Stoppa tonen på buzzerPin
noTone(buzzerPin);
Delay(50);
Increment counter
räknaren ++;
}
void firstSection()
{
pip (a, 500).
pip (a, 500).
pip (a, 500).
pip (f, 350);
pip (cH, 150);
pip (a, 500).
pip (f, 350);
pip (cH, 150);
pip (en, 650);
Delay(500);
beep(eH, 500);
beep(eH, 500);
beep(eH, 500);
pip (fH, 350);
pip (cH, 150);
pip (gS, 500);
pip (f, 350);
pip (cH, 150);
pip (en, 650);
Delay(500);
}
void secondSection()
{
beep(Ah, 500);
pip (en, 300);
pip (a, 150);
beep(Ah, 500);
pip (gSH, 325);
pip (gH, 175);
pip (fSH, 125);
pip (fH, 125);
pip (fSH, 250);
Delay(325);
pip (som, 250);
pip (dSH, 500);
pip (dH, 325);
pip (cSH, 175);
pip (cH, 125);
pip (b, 125);
pip (cH, 250);
Delay(350);
}