Arduino Happy Birthday toongenerator (3 / 4 stap)

Stap 3: Code


De code kan worden gevonden hieronder u kunt kopiëren en plakken in de Arduino IDE.

 #include // requires an Atmega168 chip #define outpin 9 // audio out to speaker or amp int ptime; int k, x, dur, freq, t; int i, j;float ps; // variable for pow pitchShift routinefloat noteval;// note values for two octave scale // divide them by powers of two to generate other octaves float A = 14080; float AS = 14917.2; float B = 15804.3; float C = 16744; float CS = 17739.7; float D = 18794.5; float DS = 19912.1; float E = 21096.2; float F = 22350.6; float FS = 23679.6; float G = 25087.7; float GS = 26579.5; float A2 = 28160; float A2S = 29834.5; float B2 = 31608.5; float C2 = 33488.1; float C2S = 35479.4; float D2 = 37589.1; float D2S = 39824.3; float E2 = 42192.3; float F2 = 44701.2; float F2S = 47359.3; float G2 = 50175.4; float G2S = 53159; float A3 = 56320;//octaves - corresponds to piano octaves float oct8 = 4; float oct7 = 8; float oct6 = 16; float oct5 = 32; float oct4 = 64; float oct3 = 128; float oct2 = 256; float oct1 = 512; float oct0 = 1024;//rhythm values int wh = 1024; int h = 512; int dq = 448; int q = 256; int qt = 170; int de = 192; int e = 128; int et = 85; int dsx = 96; int sx = 64; int thx = 32;// major scale just for demo, hack thisfloat happyBirthday[] = { G, 0, G, A2, 0, 0, G, 0, 0, C2, 0, 0, B2, 0, 0, 0, 0, 0, G, 0, G, A2, 0, 0, G, 0, 0, D2, 0, 0, C2, 0, 0, 0, 0, 0, G, 0, G, G2, 0, 0, E2, 0, 0, C2, 0, 0, B2, 0, 0, A2, 0, 0, F2, 0, F2, E2, 0, 0, C2, 0, 0, D2, 0, 0, C2, 0, 0, 0, 0, 0, };void setup() { pinMode(10, OUTPUT); // sets the digital pin as output pinMode(11, OUTPUT); // sets the digital pin as output pinMode(12, OUTPUT); // sets the digital pin as output pinMode(8, INPUT); // sets the digital pin as output } void loop(){ for(i= 0; i<=11; i++){ int value = HIGH; while (digitalRead(8) == LOW) { digitalWrite(10, value); delay(100); value = !value; }; ps = (float)i / 12; // choose new transpose interval every loop for(x= 0; x<=12*6; x++){ noteval = (happyBirthday[x] / oct4) * pow(2,ps); // transpose scale up 12 tones // pow function generates transposition // eliminate " * pow(2,ps) " to cut out transpose routine dur = 100; digitalWrite(10+(x&3), HIGH); digitalWrite(10+((x+1)&3), LOW); digitalWrite(10+((x+2)&3), LOW); if ((int)noteval > 0) { freqout((int)noteval, dur); } else { delay(100); } } } } void freqout(int freq, int t) // freq in hz, t in ms { int hperiod; //calculate 1/2 period in us long cycles, i; pinMode(outpin, OUTPUT); // turn on output pin hperiod = (500000 / freq) - 7; // subtract 7 us to make up for digitalWrite overhead cycles = ((long)freq * (long)t) / 1000; // calculate cycles for (i=0; i<= cycles; i++){ // play note for t ms digitalWrite(outpin, HIGH); delayMicroseconds(hperiod); digitalWrite(outpin, LOW); delayMicroseconds(hperiod - 1); // - 1 to make up for digitaWrite overhead } pinMode(outpin, INPUT); // shut off pin to avoid noise from other operations} 

Gerelateerde Artikelen

Happy Birthday met Arduino

Happy Birthday met Arduino

Allereerst, dankzij bonniee, voor haar grote instructable Illumaphone: licht-gebaseerde muziekinstrument met Arduino.Ik verbeterde net te laat als ik wil.Dit instructable zal u tonen hoe om te spelen "Happy Birthday" met een "Licht" tr
Doe-het-zelf 'Happy Birthday U.S. Army!' Sticker activiteit

Doe-het-zelf 'Happy Birthday U.S. Army!' Sticker activiteit

Het leger viert dit jaar zijn 239ste verjaardag! Gedurende de hele maand juni, zal vieringen plaatsvinden op leger installaties over de hele wereld. Wij willen dat u als een onderdeel van de viering door het lezen van het leger verjaardag boek getite
Minecraft afdrukbare Happy Birthday Banner

Minecraft afdrukbare Happy Birthday Banner

hier hebben we een simpele Minecraft Happy Birthday party banner om af te drukken.Hoe maak je eigen Minecraft Happy Birthday banner?G de afbeeldingen rechts klikken en opslaan als.  Elke letter is A4 papier grootte 210x297mm. Zodra de Minecraft lette
LinKit een als een geschenk - Happy Birthday Tune

LinKit een als een geschenk - Happy Birthday Tune

Als u schaven om een Linkit één geschenk voor uw vrienden of familie geboorte dag, kunt u instellen van dit project en maken de Linkit één spelen de verheugd geboorte dag tune voor hem of haar. Dit is een echt cool geschenk en ik eigenlijk dit projec
Verjaardagscake Pop Up kaart (Happy Birthday Kirigami) | Gratis sjabloon!

Verjaardagscake Pop Up kaart (Happy Birthday Kirigami) | Gratis sjabloon!

Share op FACEBOOK: http://on.fb.me/15TrVYfTWEET: http://bit.ly/15Ts5P6 REDDIT: http://bit.ly/16qHt5L TUMBLR: http://bit.ly/10K8fhzDownload hier het gratis patroon: https://www.pinterest.com/rninecraft/paper-cutting/Deze taart kan ook voor een bruilof
Hoe maak je een verjaardag Pop Up kaart (Kirigami 3D) Happy Birthday Greetings!

Hoe maak je een verjaardag Pop Up kaart (Kirigami 3D) Happy Birthday Greetings!

Aandeel op FACEBOOK: http://on.fb.me/15TrVYfTWEET: http://bit.ly/15Ts5P6REDDIT: http://bit.ly/16qHt5LTUMBLR: http://bit.ly/10K8fhzDownload het gratis patroon hier (Check vid beschrijving): http://www.youtube.com/watch?v=4ZUKz0umW6kMeer over kirigami:
Happy Birthday Letters

Happy Birthday Letters

Wilt u een kleurrijke boost geven uw cake van de kindverjaardag? Dit instructable is zo eenvoudig, snel en plezierig dat u nooit weer decoratieve brieven voor verjaardag taarten kopen zult!Ik maakte ze voor mijn broer's verjaardag (ik maakte hem de t
Happy Birthday op gitaar (VIDEO)

Happy Birthday op gitaar (VIDEO)

hier is me verheugd verjaring spelen op gitaar. Mijn broer's verjaardag komt, dus ik heb om te spelen dit voor hem. Ik heb onlangs geleerd, maar ik denk niet dat het is te slecht.
Arduino Birthday Cake-Topper

Arduino Birthday Cake-Topper

In de viering van de verjaardag van de Arduino op 2 April besloten heb ik om een ontzagwekkende Arduino gebaseerde verjaardag taart topper met elecronic "kaarsen", die kan worden geblazen.Onderdelenlijst:1 x Arduino UnoVoor elke "kaars"
Arduino verjaardagstaart

Arduino verjaardagstaart

In dit instructable, ik maak een zeer eenvoudige en elementaire arduino-project: een verjaardagstaart!Een cake van de kindverjaardag wordt weergegeven op het UTFT scherm schild op de arduino en een luidspreker speelt de muziek "Happy birthday".W
Arduino tutorial Arduino Tutorial bundel.: Arduino experimenten Kit:. (ARDX)

Arduino tutorial Arduino Tutorial bundel.: Arduino experimenten Kit:. (ARDX)

Geïnteresseerd in maken nette projecten met een Arduino maar niet weet waar te beginnen?Hier is een gemakkelijk te volgen gids op hoe te connect & gebruiken een schare van elektronische componenten.(schaamteloze plug)Geïnteresseerd in het doen het al
Verstandig klok 3 - geeky alarmklok Arduino gebaseerde

Verstandig klok 3 - geeky alarmklok Arduino gebaseerde

Wise klok 3 is een open-source, zeer hackable geeky klok die veel meer dan de tijd toont. Haar belangrijkste functie is het weergeven van gebruiker-bewerkbare offertes ontvangen van een SD-kaart (zoals die worden gebruikt in foto camera's).Wise klok
Arduino Toon muziek

Arduino Toon muziek

Dit is een Arduino project dat de inheemse Toon het genereren van vermogen van de Arduino gebruikt om muziek te maken. U kunt de schets geboden om te beginnen met het componeren van je eigen! Het spelen van 'Happy Birthday' voor een vriend maken. U z
Roterende telefoon bellen Arduino + onzichtbare inkt = huidige verjaardag

Roterende telefoon bellen Arduino + onzichtbare inkt = huidige verjaardag

ik heb een aantal draaiknop telefoons en telefoon onderdelen die ik dacht dat ik kon gebruiken op een domme manier.Ik beginnen met dit instructableToen ik klaar, heb ik een object dat als volgt werkt:-kiezen van een nummer of reeks nummers-Druk op de