Trillingen schuim Speaker! (3 / 3 stap)

Stap 3: Code uploaden en vibrationele muziek afspelen!


Laatste stap is om te uploaden van de code (momenteel heeft Star Wars thema en Mario thema's, commentaar op het thema mario en commentaar uit de Star Wars-thema te spelen verschillende melodieën verwijderen).

Speciale dank aan R-Team Robotics club voor het posten van hun arduino-code met de melodieën die geprogrammeerd in!
http://www.phys-x.org/rbots/index.php?option=com_content&view=article&id=66:Lesson-5-Play-Melody-with-piezo&catId=41:kits&Itemid=70

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

/ * Spelen melodie
* -----------
*
-Programma tot een eenvoudige melodie spelen
*
* Tonen zijn gemaakt door snel pulserende een spreker in- en uitschakelen
* gebruik PWM, voor het maken van de handtekening frequenties.
*
* Elke noot heeft een frequentie, gemaakt door het variëren van de periode van
* trillingen, gemeten in microseconden. We gebruiken pulsbreedte
* modulatie (PWM) maken dat trillingen.

* We berekenen de pulsbreedte te helft van de periode; We pulse
* de luidspreker HIGH voor 'pols-breedte' microseconden en vervolgens laag
* voor 'pols-breedte' microseconden.
* Deze pulserende creëert een trilling van de gewenste frequentie.
*
* (gespleten) 2005 overleden Cuartielles voor K3
* Refactoring en opmerkingen van 2006 clay.shirky
* Zie opmerkingen in commentaren aan einde voor mogelijke verbeteringen
*/

// TONES  ==========================================
Beginnen met het definiëren van de relatie tussen
Opmerking, periode, & frequentie.

periode is in microseconde zo P = 1/f * (1E6)

#define c3 7634
#define d3 6803
#define e3 6061
#define f3 5714
#define g3 5102
#define a3 4545
#define b3 4049
#define c4 3816 / / 261 Hz
#define d4 3401 / / 294 Hz
#define e4 3030 / / 329 Hz
#define f4 2865 / / 349 Hz
#define g4 2551 / / 392 Hz
#define a4 2272 / / 440 Hz
#define a4s 2146
#define b4 2028 / / 493 Hz
#define c5 1912 / / 523 Hz
#define d5 1706
#define d5s 1608
#define e5 1517
#define f5 1433
#define g5 1276
#define a5 1136
#define a5s 1073
#define b5 1012
#define c6 955

Een speciale opmerking, 'R', te vertegenwoordigen een rust definiëren
#define R 0

// SETUP ============================================
Spreker op een PWM-pin (digitale 9, 10 of 11) instellen
int speakerOut = 9;
Willen wij debuggen op seriële out? 1 voor Ja, 0 voor Nee
int DEBUG = 1;

VOID Setup {}
pinMode (speakerOut, OUTPUT);
Als (DEBUG) {}
Serial.begin(9600); Seriële uit als we willen dat foutopsporing instellen
}
}

MELODIE en TIMING ===
[Melody] is een array van nota's, vergezeld van beats [],
waarin elke nota's relatieve lengte (hogere # en langere opmerking)
Star wars-thema
int melodie [] = {f4, f4, f4, a4s, f5, d5s, d5, c5, a5s, f5, d5s, d5, c5, a5s, f5, d5s, d5, d5s, c5} ;//
int verslaat [] = {21, 21, 21, 128, 128, 21, 21, 21, 128, 64, 21, 21, 21, 128, 64, 21, 21, 21, 128};

Opmerking debug
int melodie [] = {c4, d4, e4, f4, g4, a4, b4, c5};
int verslaat [] = {63, 64, 64, 64, 64, 64, 64, 64};

Super mario thema
int melodie [] = {e5, e5, R, e5, R, c5, e5, R, g5, R, R, R, g4, R, R, R, c5, R, R, g4, R, R, e4};
int verslaat [] = {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 8, 16, 16};

int MAX_COUNT = sizeof(melody) / 2; Melodie de lengte, voor een lus.

Set algehele tempo
lange tempo = 10000;
Lengte van de pauze tussen notities instellen
int pauze = 1000;
Lus variabele meer Rest lengte
int rest_count = 50; <-BLETCHEROUS HACK; Zie ' opmerkingen '

Kern variabelen initialiseren
int toneM = 0;
int verslaan = 0;
lange duur = 0;

// PLAY TONE  ==============================================
Pulse de spreker om af te spelen van een Toon voor een bepaalde duur
ongeldig playTone() {}
lange elapsed_time = 0;
Als (toneM > 0) {/ / als dit niet een Rest beat, terwijl de Toon heeft
minder lang dan 'duur', pulse spreker hoge en lage gespeeld
terwijl (elapsed_time < duur) {}

digitalWrite(speakerOut,HIGH);
delayMicroseconds(toneM / 2);

DOWN
digitalWrite (speakerOut, laag);
delayMicroseconds(toneM / 2);

Bijhouden van hoe lang we gepulseerde
elapsed_time += (toneM);
}
}
else {/ / Rest verslaan; lus keer uitstellen
for (int j = 0; j < rest_count; j ++) {/ / zienoot op rest_count
delayMicroseconds(duration);
}
}
}

LAAT DE WILDE RUMPUS BEGINNEN ===
void loop {}
Instellen van een teller te trekken uit de melodie [] en beats]
for (int i = 0; ik < MAX_COUNT; i ++) {}
toneM = melodie [i];
Beat = slagen [i];

duur = beat * tempo; Timing instellen

playTone();
Een pauze tussen notities...
delayMicroseconds(pause);

Als (DEBUG) {/ / als foutopsporing, verslag lus, Toon, beat, en duur
Serial.Print(i);
Serial.Print(":");
Serial.Print(Beat);
Serial.Print("");
Serial.Print(toneM);
Serial.Print("");
Serial.println(duration);
}
}
}

/*
* NOTA 'S
* Het programma pretendeert te houden een Toon voor 'duur' microseconden.
* Leugens ligt leugens! Het geldt voor ten minste 'duur' microseconden, _plus_
* overhead gemaakt door incremeting elapsed_time (zou dan
* 3 K microseconden) _plus_ overhead van looping en twee digitalWrites()
*
* Hierdoor speelt een Toon van 'duur' veel langzamer dan een rust
* van 'duur.' maakt rest_count een lus variabele om 'rest' beats
* in overeenstemming met de 'Toon' beats van dezelfde lengte.
*
* rest_count zal worden beïnvloed door chiparchitectuur en snelheid, alsmede
* overhead van elk programma mods. Afgelopen gedrag is geen garantie voor de toekomst
* prestaties. Jouw snelheid kan variëren. Lichte fuse en wegkomen.
*
* Dit kan het gebruik van een aantal verbeteringen:
* Het toevoegen van code om te laten de programmeur opgeven hoeveel keer de melodie moet
-lus voordat stoppen
* Het toevoegen van een andere octave
* Tempo, pauze en rest_count verplaatsen naar #define verklaringen
* HERSCHRIJVEN te nemen volume, met behulp van analogWrite, net als bij het tweede programma op
* http://www.arduino.cc/en/Tutorial/PlayMelody
* Code toevoegen om te maken het tempo instelbaar door pot of een ander invoerapparaat
* Code toevoegen om te nemen tempo of volume instelbaar door seriële communicatie
* (0005 vereist of hoger.)
* Code toevoegen om te maken een verschuiving van de Toon (hoger of lager) via pot enz
* VERVANGEN door willekeurige melodie bars 'Smoke on the Water' openen
*/

Gerelateerde Artikelen

Goedkope Bolvormig Speaker Array

Goedkope Bolvormig Speaker Array

akoestische instrumenten stralen geluid in een prachtig complex, 360 graden mode, terwijl de conventionele luidsprekers in een veel meer boring, schijnwerper van geluid uitstralen. U kon een ton van het geld aan buitensporige producten besteden:Halfr
Portable fiets Speaker Sound System

Portable fiets Speaker Sound System

Er zijn vele opties voor draagbare sound systemen, maar niemand die voldoen aan mijn specifieke vereisten. Ik nodig een draagbare geluidssysteem dat zou kunnen:Luid zijn. Ik moet een systeem dat duidelijk in grote, open ruimten project kan.Buitengewo
AMPLFY - de leukste DIY Speaker ooit!

AMPLFY - de leukste DIY Speaker ooit!

Wilt u weten hoe te bouwen van de beste draagbare luidspreker, die ziet er geweldig uit en klinkt nog beter? Deze draagbare luidspreker zal uit het uitvoeren van de meeste draagbare Bluetooth-luidsprekers op de markt. Deze luidspreker is ideaal voor
DIY Speaker Kit Spring Reverb

DIY Speaker Kit Spring Reverb

Ooit wilde opnieuw dat klassieke Spring Reverb de ouderwetse manier?Wij hebben een super eenvoudig systeem met de DIY Speaker-Kit en een paar andere items te creëren van een awesome LoFi-versie gemaakt.Stap 1: Wat moet jeU moet:1 x DIY speakerset1 x
Home Made Speaker staat

Home Made Speaker staat

Oke, dus hier gaan we, mijn eerste instructable.Na de aankoop van sommige nieuwe luidsprekers(... in het http://dali.nl/producten.html?page=shop.product_de) Heb ik besloten dat het zou leuk zijn om te bouwen van sommige nieuwe speaker steunen. Ik dee
RGB-knipperende iPod dock van een oude speaker!

RGB-knipperende iPod dock van een oude speaker!

Bewerken: Ik heb ingevoerd in de LED wedstrijd, orkaan Lasers en Fix & wedstrijd te verbeteren. Als je dit leuk vindt, gelieve te stemmen.Originele Video - nummer: rivier van dromen door billy joelMet behulp van een Apple Pro spreker, maakte ik een k
Verdienen een CNC Hot schuim draadknipper onderdelen verkrijgbaar bij uw lokale hardware winkel

Verdienen een CNC Hot schuim draadknipper onderdelen verkrijgbaar bij uw lokale hardware winkel

verdienen een CNC Hot schuim draadknipper onderdelen verkrijgbaar bij uw lokale hardware winkel als HomeDepot. Deze machine kan worden gebruikt voor het knippen van vleugels voor RC vliegtuigen, surfplanken, elegant lijstwerk, verpakking schuim en ve
Een antieke Portable Radio in een Hip Bluetooth Speaker opnieuw te purposing

Een antieke Portable Radio in een Hip Bluetooth Speaker opnieuw te purposing

** dit instructable begeleidt u stapsgewijs door het proces van het omzetten van een draagbare antieke radio in een koele kijken Hi-Fi bluetoothspreker. het houdt rekening dat u ervaring in het solderen hebt, werken met elementaire elektronica, en vo
Another (Yes, Another) Altoids Tin Speaker

Another (Yes, Another) Altoids Tin Speaker

Edit: Ik ben nu verkopen deze op mijn Etsy shop!https://www.Etsy.com/ca/listing/187568488/Altoids-tin-Speaker-SystemIk heb ook onlangs nog een digitale spanning meten aan de binnenkant van de versterker tin, zodat ik weet altijd hoeveel batterijvermo
DIY Speaker Pieizo Plate Reverb

DIY Speaker Pieizo Plate Reverb

Tijd om galm nemen naar het volgende niveau van vervorming, ben blij met de ijsemmer plate reverb eenheid.Gecombineerd met de DIY Speaker-Kit en een beetje elektronica, kun je je geluiden door middel van een oude biscuit tin of metalen doos of tin di
SNEL schuim DRAAIBANK

SNEL schuim DRAAIBANK

hier is een snelle en gemakkelijke manier om te beginnen draaien (maken stuff op een draaibank) - zonder een draaibank, hout, metaal, of een van de juiste snijgereedschappen. Dit heeft betrekking op de basisbegrippen: setup, ruw gesneden, patroon, vo
Print uw eigen draadloze draagbare speaker!

Print uw eigen draadloze draagbare speaker!

Heb je ooit wilde een draagbare luidspreker als de Jambox door Jabra maar niet voor $200. Dit is mijn eerste ontwerp op een draagbare luidspreker die kun je overal en draadloze verbinding met Bluetooth. Ook u kunt aan het opladen van uw telefoon, ind
Studio Monitor Speaker staat

Studio Monitor Speaker staat

ik een set speaker steunen en voelde ik kon ze kloppen samen een paar uur nodig.Ik besloot op PVC pijp en triplex voor materialen. Ik wilde om te minimaliseren van de overdracht van trillingen zo goed, dus er ook een paar verborgen toevoegingen is.St
T-Rex PA speaker

T-Rex PA speaker

T-Rex PA luidspreker is een project ik in januari 2015 maakte.Het is veruit de grootste aangepaste spreker die ik heb gemaakt. het hele stuk meten 86" hoog X 105" lang X 68" breed.Ik stond met het in het tweede beeld (ik ben 5'9) om te late