Arduino Grattis Tone Generator (3 / 4 steg)

Steg 3: kod



Koden kan hittas nedan du kan kopiera och klistra in den i Arduino IDE.

#include
kräver en Atmega168 chip
#define outpin 9 / / ljud ut till högtalare eller förstärkare
int ptime;
int k x, dur, freq, t;
int i, j.
flyta ps; variabel för pow pitchShift rutin
float noteval;
notvärden för två octave skala
dividera dem med befogenheter av två att generera andra oktaver
flyta A = 14080;
flötet som = 14917.2;
float B = 15804.3;
float C = 16744;
flyta CS = 17739.7;
flyta D = 18794.5;
flyta DS = 19912.1;
flöte E = 21096.2;
flyta F = 22350.6;
flyta FS = 23679.6;
float G = 25087.7;
flyta GS = 26579.5;
flyta A2 = 28160;
flyta A2S = 29834.5;
flyta B2 = 31608.5;
flyta C2 = 33488.1;
flyta C2S = 35479.4;
flyta D2 = 37589.1;
flyta D2S = 39824.3;
flyta E2 = 42192.3;
flyta F2 = 44701.2;
flyta F2S = 47359.3;
flyta G2 = 50175.4;
flyta G2S = 53159;
flyta A3 = 56320;
oktaver - motsvarar piano oktaver
flyta oct8 = 4;
flyta oct7 = 8;
flyta oct6 = 16.
flyta oct5 = 32.
flyta oct4 = 64;
flyta oct3 = 128;
flyta oct2 = 256;
flyta oct1 = 512;
flyta oct0 = 1024;
rytm värden
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.
stor skala bara för demo, hacka detta
flyta 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); Anger den digitala pin som utdata
pinMode (11, OUTPUT); Anger den digitala pin som utdata
pinMode (12, OUTPUT); Anger den digitala pin som utdata
pinMode (8, ingående); Anger den digitala pin som utdata
}
void loop() {
för (jag = 0; jag < = 11; i ++) {
int värde = hög;
medan (digitalRead(8) == låg) {
digitalWrite (10, värde);
Delay(100);
värde =! värde;
};
PS = (float) jag / 12; Välj nytt transponera intervall varje slinga
för (x = 0; x < = 12 * 6; x ++) {
noteval = (happyBirthday [x] / oct4) * pow(2,ps); införliva skala upp 12 toner
Pow funktionen genererar införlivande
eliminera "* pow(2,ps)" att skära ut transponera rutin
dur = 100;
digitalWrite (10 + (x & 3), hög);
digitalWrite(10+((x+1) & 3), låg);
digitalWrite(10+((x+2) & 3), låg);
om ((int) noteval > 0) {
freqout ((int) noteval, dur);
} annat {
Delay(100);
}
}
}
}
void freqout (int freq, int t) / / freq i hz, t i ms
{
int hperiod; beräkna 1/2 period i oss
långa cykler, i.
pinMode (outpin, utgång); slå på utgångsstiftet
hperiod = (500000 / freq) - 7; subtrahera 7 US att kompensera för digitalWrite overhead
cykler = ((långa) freq * (långa) t) / 1000; beräkna cykler
för (jag = 0; jag < = cykler; i ++) {/ / spela anmärkning för t ms
digitalWrite (outpin, högt);
delayMicroseconds(hperiod);
digitalWrite (outpin, låg);
delayMicroseconds (hperiod - 1); -1 till att kompensera för digitaWrite overhead
}
pinMode (outpin, mata); stänga av pin att undvika buller från andra verksamheter
}

Se Steg
Relaterade Ämnen

Installera en LED i en Tone Generator krets att visualisera en Square Wave

i detta Instructable foto du installera och LED i min tone generator krets som hjälper dig att visualisera fyrkantsvåg ton produktionen av 555 Timer IC i astable läge.Läs igenom min steg för steg Instructable, "bygga en tongeneratorn--förbättra din S...

Bärbar MIDI Tone Generator på-the-billiga

IntroduktionJag tar den elektriska Funkatron till en show-and-tell händelse som kommer att stå utanför med begränsad eluttag. Min setup är oftast Funkatron, som utlöser anteckningar om en Alesis QS7 tangentbord, vilket förstärks av en stor, tung gita...

Arduino vågform Generator sköld

Vågform generatorer (även kallad funktion generatorer) är användbar för testning och felsökning kretsar. De kan användas för att testa frekvenssvaret av elektroniska komponenter som op förstärkare och sensorer eller att karakterisera och felsöka ljud...

Arduino Tone Generator SD Log sedan uppspelning

detta är hur du oss radio vågor, kosmisk strålning, tioner-tiska störningar från mobiltelefoner och lysrör, och så vidare att generera slumpmässiga toner på din Arduino sedan lagra dem till och SD-kort och sedan spela upp dem tillbaka.Steg 1: Vad du...

Arduino blogg ämne Generator

I början, efter att ha startat en ny blogg, fick jag många ämnen att skriva på bloggen. Nu när elden har dött och jag har svårt att få bra ämnen. Jag fick några bra verktyg som blogg ämne generatorer men de arbetade online. De flesta gånger befinner...

10 resistor Arduino vågform Generator

Om du har en Arduino UNO är detta projekt praktiskt taget gratis!Det gör också en stor Arduino Nano projekt.Vad du behöver (bara passiva komponenter):Bara 10 motståndEtt filter kondensatorVad du får:En direkt Digital syntes (DDS) vågform GeneratorÄkt...

IOS-kontrollerade Arduino vågform generator

Denna vågform generator är baserad på arbete av Amanda Ghassaei. Vågform generatorer (eller funktion generatorer) används för testning och felsökning kretsar. e.g. frekvensomfång på op amp eller sensorer. Denna vågform generator drivs av Arduino med...

Arduino vågform Generator

vågform generatorer (även kallad funktion generatorer) är användbar för testning och felsökning kretsar. Jag använder dem ofta för att testa frekvenssvaret av elektronikkomponenter som op förstärkare och sensorer. Denna vågform generator drivs av en...

Arduioscillo-Arduino VoltMeter/frekvens Generator

vad gjorde jag? Syftet med detta projekt är att skapa en prisvärd och praktisk voltmeter/frekvens generator av material liggande på din arbetsbänk. Denna länk tar dig till min youtube video förklarar enheten http://www.youtube.com/watch?v=dkgbP2kvnME...

Arduino ursäkt Generator

behöver en ursäkt bråttom?Ser längre än den ursäkt Generator.Steg 1: Vad du behöver / tråd det upp Vi använder:Arduino UnoLCD-modul (HD44780 kompatibel)PotentiometerTilt Switch220 Ohm Resistor (röd-röd-svart-svart) / (röd-röd-brun) eller 470 Ohm elle...

Arduino steg Sequencer

jag undrar om om att göra en sequencer, en stor 16 steg sequencer var vad jag ville göra. Det är full utbyggnad med massor av funktioner, inklusive enda lysdioder för varje steg, midi-ingång och utgång, etc. Sedan insåg jag att jag ska börja från en...

Nattliga utsläpp: Min Arduino Powered Internet aktiverat dröm Generator

måste vi alla drömmer mer så jag har skapat denna Arduino Powered "dream generator" för att plantera frön för några stora tänkande galenskap. När du närmar dig generatorn en Maxbotix ultrasonic sensor utlöser ljus och musik som drar du i så du k...

Arduino MIDI bas pedaler

jag har alltid gillat bas pedaler. Jag är ett stort fan av bandet Rush och deras basist Geddy Lee. De flesta av mina favorit Rush album använder Moog Taurus pedaler som har blivit synonymt med sina ljud från den tiden. Jag vet inte vad det är. Den dj...

Arduino-baserad blå ruta (telefon Phreaking)

Historia och historiaPå 1950-talet, 1960-talet, 1970-talet 1980-talet och ända upp till 1990-talet telefon phreaking var en himla cool sätt att utforska en okänd värld av telefonen byter nätverk. Till "phreak" en telefonväxel, kan göras med hjäl...

Bil till Arduino meddelande: CAN-Bus sniffning och sänder med Arduino

Från Wikipedia är Controller Area Network (CAN) bussen en "fordonet buss standard syftar till att mikrokontroller och enheter att kommunicera med varandra inom ett fordon utan värddator." Dessa enheter kan också betecknas som elektroniska styren...

En nybörjares guide till Arduino

Efter några år av experimentera med Arduino, beslutade jag att det är dags att dela den kunskapen har jag fått. Så jag här går, en guide till Arduino, med nakna grunderna för nybörjare och lite mer avancerade förklaringar för personer som är något me...

Arduino Timer avbryter

Timer avbrott kan du utföra en aktivitet på mycket specifikt tidsintervall oavsett vad som händer i din kod. I detta instructable jag ska förklara hur man ställer in och kör ett avbrott i tydlig Timer på Jämför Match eller CTC läge. Hoppa direkt till...

IPhone frekvens Generator med Power Supply

The frekvens Generator med nätaggregat är en modifiering av Laser Communicator projektet. Denna enhet kan DC ström till puls på önskad frekvens av frekvens generator programvara. Frekvens generator programvara finns också apps på Android och IOS(show...

Arduino rullstol trumset

Sam har velat spela musik ända sedan han var ung men hans Cerebral pares begränsar hans förmåga att spela de flesta standard musikinstrument. Ett par månader sedan bestämde han sig att han vill spela trummor, och så vi gick för att hitta en lösning.D...