Christmas Song spelare (6 / 6 steg)

Steg 6: Dags att köra den!



Efter vi har anslutna hårdvara och analyserat koden är vi redo att köra det!.

Video
http://youtu.be/lV9WurONtV0

Som Sammanfattning
Programmet kommer att ha 3 huvuddelar:

-Den första delen består av deklaration av variabler, konstanter och import av andra filer. Det importerar filen "pitches.h", där kan du hitta konstanten av noterar med sina frekvenser. Du kan hämta den från arduino sida: http://arduino.cc/en/Tutorial/Tone3
-Den andra delen är den setup() som i grunden är initiering av programmet. Här kommer vi definiera indata/utdata stift och andra saker. Den setup delen körs endast en gång, i början av programmet.
-Tredje del is loop(). Detta kommer alltid tills du stänger av arduino. Där kan du hitta koden för huvudprogrammet som spelar låten och tänds led med olika färger. Också känna det värdet på potentiometern att ange hastigheten (tempo) som det kommer att spela.

Alla kompletta koden:

/ * Melodi
Spelar en melodi
krets:
8-ohms högtalare på digital stift 8
Basera på exemplet med http://arduino.cc/en/Tutorial/Tone av Tom Igoe
Ändrad av: Irene Meiying Cheung Ruiz
*/

#include "pitches.h"
#define SONG1_SIZE 24
#define SONG2_SIZE 14

anteckningar i melodin 1:
int melody1 [] = {
NOTE_D3, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_D3,
NOTE_D3, NOTE_D3, NOTE_D3, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_E3, 0,
NOTE_E3, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_FS3, 0,
NOTE_D4, NOTE_D4, NOTE_C4, NOTE_A3, NOTE_B3
};

anteckningar i melodin 2:
int melody2 [] = {
NOTE_F4, NOTE_E4, NOTE_D4, NOTE_C3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_F3,
NOTE_C4, NOTE_D4, NOTE_D4, NOTE_E4, NOTE_E4, NOTE_F4
};

Observera varaktigheter melodi 1:4 = fjärdedelsnot, 8 = åttondelen noterar, etc.:
int noteDurations1 [] = {
4, 4, 4, 4, 2.5,
8, 8, 4, 4, 4, 4, 2.5, 2,
4, 4, 4, 4, 2.5, 2,
4, 4, 4, 4, 1};

Observera varaktigheterna för melodi 2:4 = fjärdedelsnot, 8 = åttondelen noterar, etc.:
int noteDurations2 [] = {
2, 2,5, 8, 1,5, 4, 2, 2, 1.5,
4, 1,8, 4, 1,8, 4, 1};

Pins
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
int knappen = 2;

kontroll variabler
int counter = 0;
int tryckte = 0;
booleska playsong = false;

//Song temp variabler
int songSizeS;
int * noteDurationS = 0;
int * melodyS = 0;

Speed control variabler
int sensorValue = 0;
float tempo = 0;

initiering
void setup() {
setup pins
pinMode (redPin, produktionen);
pinMode (greenPin, produktionen);
pinMode (bluePin, produktionen);
pinMode (knapp, indata);

bakgrund fram till green i början
mapColor(-1);
debug ändamål
Serial.BEGIN (9600); tillval
}

huvudprogrammet
void loop() {
upptäcka när knappen trycktes
if(digitalRead(button) == låg)
{
tryckte = 1;
}

upptäcka när knappen var realesed
if(digitalRead(button) == hög & & pressad == 1)
{
räknaren ++;
tryckte = 0;
playsong = true;
variabel för att styra när börja sången

bestämma vilken låt spelar
om (counter % 2 == 0)
{
songSizeS = SONG1_SIZE;
noteDurationS = noteDurations1;
melodyS = melody1;
}
annat
{
songSizeS = SONG2_SIZE;
noteDurationS = noteDurations2;
melodyS = melody2;
}
}

Starta låten om knappen trycktes:
if(playsong)
{

playsong = false;
/ / iterera över tonerna i melodin
för (int thisNote = 0; thisNote < songSizeS; thisNote ++)
{
//sensor värde från potentiometern mappas till 1-3 hastighet värdeintervall
sensorValue = analogRead(A0);
tempo = sensorValue * (3.0 / 1023.0); Serial.println(tempo);

för att beräkna noterar varaktighet, ta en sekund
dividerat med Noteringstyp.
e.g. fjärdedelsnot = 1000 / 4, åttondelen noterar = 1000/8, etc. int noteDuration = 1000/noteDurationS [thisNote];
ton (8, melodyS[thisNote],noteDuration),
tänds den rgb-led beroende av anteckningen
mapColor (melodyS [thisNote]);
Ange en minsta tid mellan dem för att skilja anteckningar.
tonens längd * tempo
int pauseBetweenNotes = noteDuration * tempo;
Delay(pauseBetweenNotes);

stoppa tonen uppspelningen:
noTone(8);
Lys upp ledde till initial staten (grön färg)
mapColor(-1);
}
}
}

funktion som matchar anteckningen med en viss färg
Den kombinerar färg på RGB att producera en annan
void mapColor (int not)
{
Switch(Note)
{
fall NOTE_C3:
fall NOTE_C4:
analogWrite (redPin, 0);
analogWrite (greenPin, 255);
analogWrite (bluePin, 255);
bryta;
fall NOTE_D3:
fall NOTE_D4:
analogWrite (redPin, 0);
analogWrite (greenPin, 0);
analogWrite (bluePin, 255);
bryta;
fall NOTE_E3:
fall NOTE_E4:
analogWrite (redPin, 255);
analogWrite (greenPin, 0);
analogWrite (bluePin, 0);
bryta;
fall NOTE_F3:
fall NOTE_F4:
analogWrite (redPin, 0);
analogWrite (greenPin, 255);
analogWrite (bluePin, 0);
bryta;
fall NOTE_G3:
fall NOTE_G4:
analogWrite (redPin, 255);
analogWrite (greenPin, 0);
analogWrite (bluePin, 255);
bryta;
fall NOTE_A3:
fall NOTE_A4:
analogWrite (redPin, 255);
analogWrite (greenPin, 255);
analogWrite (bluePin, 0);
bryta;
fall NOTE_B3:
fall NOTE_B4:
analogWrite (redPin, 0);
analogWrite (greenPin, 0);
analogWrite (bluePin, 0);
bryta;
fall 0:
//it representerar slutet staten eller tystnad
analogWrite (redPin, 255);
analogWrite (greenPin, 255);
analogWrite (bluePin, 255);
bryta;

i mål -1:/ / det representerar starttillstånd
analogWrite (redPin, 255);
analogWrite (greenPin, 0);
analogWrite (bluePin, 255);
bryta;
standard:
//other anteckningar
analogWrite (redPin, 105);
analogWrite (greenPin, 255);
analogWrite (bluePin, 100);
bryta;
}
}

Se Steg
Relaterade Ämnen

Den ultimata nördiga personliga presenten - gör ett korsstygn QR kod

jag gjorde detta som en present till min syster i jul. QR-kod, när skannas på en smartphone, leder till en video på YouTube - ett bildspel av barndom jul bilder.Det tog inte alltför lång tid att göra och hon älskade det, som det var något lite mer pe...

Vita huset galler

3D-utskrift möjliggör tillverkning av komplexa mönster. Denna fördel kallas ofta "komplexitet är gratis." Denna design kombinerar frihet av komplexitet i form av jul stjärnformade galler strukturerar med den allmänna formen av Vita huset. I den...

Hur man spelar bas till Kina flicka - Nybörjarens bas lektion/Song handledning

Här är en bas Videolektion visar hur du kan spela bas till Kina flicka av David Bowie.Om du har någon spörsmålen vänligen huvudet över till min hur att spela bas webbplats och använda formuläret kommentarer....

Raspberry Pi musikaliska Christmas Lights

Instruktioner för en uppsättning av stjärnor som tänds upp enligt en musikalisk melodi. Konceptet är att varje stjärna representerar en anmärkning och som låten fortskrider stjärnan är associerade med den aktuella journalanteckningen tänds. Inställni...

Christmas Pickle prydnad

Christmas ättikslag är en charmig julgran inredning tradition semester. Den julen Pickle, eller Die Weihnachtsgurke, är något av de märkligaste moderna av omtvistat ursprung. Det var tänkt att vara från Tyskland, sedan granen har sitt ursprung där. S...

Arduino Christmas lights

Låt mig lägga till detta i början av detta... Jag gjorde några mycket stor säkerhet misstag i detta... behaga om du något med detta förstår el, hur det ska användas och hur man inte gör som jag gjorde. Det finns vissa saker är är bra... bra även... o...

Naturlig storlek Minecraft Christmas Tree

Minecraft, som thunk det? Sådan en enkel spel, faktum är att när jag först såg det jag tänkte tillbaka på mina dagar, många, många, många dagar, av spela Zelda (1987). Här är vi 26 år senare med en extra dimension. Barn och vuxna är galna för Minecra...

Hur man spelar ocarina

Hej! Ett tag sedan jag postat en kompatibel att välja din första Ocarina, om du köpt en eller redan äger en, denna kompatibel kommer att visa dig allt jag vet om att spela det!Steg 1: Först off är att lära sig att hålla en ocarina... Det låter fånigt...

Arduino RGB LED Christmas Krans

Detta är min första instructable. Har varit en lång tid lurker och snille. I år bestämde jag mig att göra en RGB LED Christmas Krans med några coola ledde mönster. Jag beslutade att använda en Arduino Uno mikrokontroller som jag hade liggandes. När m...

Christmas LED tree

7 lysdioder göra en julgran.Om du kan löda lite, kan du göra en julgran utan att skada några träd. Det tar 7 lysdioder, vissa tråd och ett batteri. Det var allt.Videon nedan har några LED jul stjärnor också. Tillverkningen av stjärnorna är täckt i en...

Arduino kontrollerade positionella RGB LED Christmas Tree

I detta Instructable vi ska skapa en programmerbar RGB LED-julgran och byggnad (X, Y) positioner av lamporna till Arduino så att vi kan skapa olika mönster både animerade och statiska. Jag skulle rekommendera detta till alla som har micro controller...

Christmas Lights till musik med hjälp av Arduino

min fru och jag har velat skapa våra egna lampor-set-till-musikföreställning för senare semester säsonger. Inspirerad av de två Instructables nedan, beslutade vi att äntligen komma igång detta år och dekorera våra RV. Vi ville ha en allt-i-ett-styren...

Hur man spelar dagliga fantasi fotboll på DraftKings (framgång inte garanteras)

Hej, sportfantaster först vill jag tacka er att gå med mig idag. Mitt namn är Jordanien, och jag kommer att gå du igenom hur du spela dagliga fantasi fotboll på DraftKings.Dagliga fantasy fotboll är en underklass till fantasy sportspel. Som med tradi...

Hur man spelar Fantasy Football

Fantasy football har tagit NFL med storm de senaste åren blivit en het handelsvara av fans över hela världen. Om du inte har ett fantasy team och du titta fotboll varje söndag bör du allvarligt överväga att få en liga tillsammans. Du får titta på spe...

Android Christmas Lights Controller

här är en snabb intro till mitt senaste projekt: en Android Open tillbehör-powered Julljus controller!Här föddes ur en kodning session på våra lokala Google Technology User Group. Det är en Android app som kommunicerar med en Google ADK styrelse med...

Charley Brown Convertable Christmas Tree

Julen är snart här så låt oss få detta projekt flytta. EftersomJag deltar i våra lokala samhället kyrkan Christmas spela, jag forskat idéer. En webbplats föreslog tittar Charley Brown, innebörden av julen, för att få en uppfattning om med hjälp av KI...

Göra musik kontrollerade Christmas Lights

göra musik kontrollerade julbelysning för mycket billigt. Detta använder mycket grundläggande delar. Denna idé har inte sitt ursprung av mig. Det är ett derivat av Rybitski's design ligger härhär.Steg 1: Reservdelslista -Old Speakers-Solid State-relä...

Hur man spelar varje Guitar Hero och Rock Band sång gratis.

Vem har sagt att du inte kan spela Guitar Hero med ett Rock Band Trådlös gitarr? Och hur är det med de människor på YouTube - Hur du förvandla Frets on Fire likna Rock Band? - och sedan de aldrig svara. Tja, slutar idag det hela. Låt den ladda ner bö...

The Walking Dead säsong 2, Android - Hur till backningen och hålla dina framsteg

Uppdatering 22/03/2015: möjligt fix för ljudproblem.Jag märkte på min ROM (Team UB) som i menyn finns ett avsnitt "Prestanda".Där är bara en switch "Aktivera per-app profiler".Som standard är det "på", jag stängt av och alla...