Arduino röda mattan ingången



Red Carpet entré

Detta projekt kan du skapa en storslagen entré. Det upptäcker dig gå i och spelar en låt som är ingången. Gå in i rummet med din favorit starwars låt som spelas för dig. Du måste också installera tonen biblioteket finns på:
http://Rogue-Code.googlecode.com/files/Arduino-Library-Tone.zip

För hjälp med att installera bibliotek gå till:
http://code.Google.com/p/Rogue-Code/wiki/InstallingArduinoLibraries

Komponenter som behövs:

1 x högtalare
1 x Arduino
1 x bröd styrelse
1 x IR-mottagare
1 x 470 ohms motstånd
1 x 220 eller 100 ohms motstånd
Sladdar

Komponenter kan hittas på http://egrobotics.com/store/
Detta projekt använder och Arduino ombord och IR-tillägg Kit

www.EGRobotics.com

Koden:
Alla låtar är bortkommenterad innan du överför välja den låt du vill ha genom att ta bort
den "/ /" framför den. Hitta fler toner på http://code.google.com/p/roguecode/wiki/ToneLibraryDocumentation
#include
Tone tone1;
#define OCTAVE_OFFSET 0
int noterar [] = {0,
NOTE_C4, NOTE_CS4, NOTE_D4, NOTE_DS4, NOTE_E4, NOTE_F4, NOTE_FS4, NOTE_G4,
NOTE_GS4, NOTE_A4, NOTE_AS4, NOTE_B4, NOTE_C5, NOTE_CS5, NOTE_D5, NOTE_DS5, NOTE_E5, NOTE_F5, NOTE_FS5, NOTE_G5,
NOTE_GS5, NOTE_A5, NOTE_AS5, NOTE_B5,
NOTE_C6, NOTE_CS6, NOTE_D6, NOTE_DS6, NOTE_E6, NOTE_F6, NOTE_FS6, NOTE_G6,
NOTE_GS6, NOTE_A6, NOTE_AS6, NOTE_B6,
NOTE_C7, NOTE_CS7, NOTE_D7, NOTE_DS7, NOTE_E7, NOTE_F7, NOTE_FS7, NOTE_G7,
NOTE_GS7, NOTE_A7, NOTE_AS7, NOTE_B7
};
char * sång = "den
Simpsons:d=4,o=5,b=160:c.6,E6,f#6,8A6,g.6,E6,C6,8a,8F#,8F#,8F#,2g,8p,8p,8F#,8F#,8F#,8g,a#.,8c6,8
C6, 8c 6, c6 ";
char * låten =
"Indiana: d = 4, o = 5, b = 250:e, 8 p, 8f, 8 g, 8 p, 1 c 6, 8 s., d, 8 p, 8e, 1f, p., g, 8 p, 8a, 8b, 8 p, 1f6, p, a, 8 p, 8 b, 2 c 6, 2 d 6, 2e
6,e,8p,8F,8g,8p,1c6,p,D6,8p,8e6,1f.6,g,8p,8g,e.6,8p,D6,8p,8g,e.6,8p,D6,8p,8g,f.6,8p,E6,8p,8d6,2c6 ";
char * låten =
"TakeOnMe:d = 4, o = 4, b = 160:8f #5, 8f #5, 8f #5, 8 d 5, 8 p, 8b, 8 p, 8e5, 8 p, 8e5, 8 p, 8e5, 8 g #5, 8 g #5, 8a5, 8b5, 8a
5, 8a5, 8a5, 8e5, 8p, 8d 5, 8p, 8f #5, 8p, 8f #5, 8p, 8f #5, 8e5, 8e5, 8f #5, 8e5, 8f #5, 8f #5, 8f #5, 8d 5, 8p, 8b, 8p, 8e5, 8
Persson, 8e5, 8p, 8e5, 8g #5, 8g #5, 8a5, 8b5, 8a5, 8a5, 8a5, 8e5, 8p, 8d 5, 8p, 8f #5, 8p, 8f #5, 8p, 8f #5, 8e5, 8e5 ";
char * låten =
"Entertainer:d=4,o=5,b=140:8d,8d#,8e,c6,8e,c6,8e,2c.6,8c6,8d6,8d#6,8e6,8c6,8d6,e6,8b,d6,2c6,p,8
d,8D#,8e,C6,8e,C6,8e,2C.6,8p,8a,8g,8F#,8a,8c6,E6,8d6,8c6,8a,2d6 ";
char * låten =
"Muppets:d = 4, o = 5, b = 250:c6, c6, a, b, 8a, b, g, p, c6, c6, en, 8b, 8a, 8 p, g., p, e, e, g, f, 8e, f, 8 c 6, 8 c, 8 d, e, 8e, 8e, 8 p, 8
e, g, 2 p, c6, c6, a, b, 8a, b, g, p, c6, c6, a, 8 b, a, g., p, e, e, g, f, 8e, f, 8 c 6, 8 c, 8 d, e, 8e, d, 8 d, c ";
char * låten =
"Xfiles:d = 4, o = 5, b = 125:e, b, a, b, d6, 2b, 1 p, e, b, a, b, e6, 2b, 1 p, g6, f #6, e6, d6, e6, 2b., 1 p, g6, f #6, e6, d6, f #6,2
b., 1 p, e, b, a, b, d6, 2b, 1 p, e, b, a, b, e6, 2b, 1 p, e6, 2b. ";
char * låten =
"Looney: d = 4, o = 5, b = 140:32 p, c6, 8f6, 8e6, 8 d 6, 8 c 6, a., 8 c 6, 8f6, 8e6, 8 d 6, 8 d #6,e.6,8e6,8e6,8c6,8d6,8c6,
8e6, 8 c 6, 8 d 6, 8a, 8 c 6, 8 g, 8a #, 8a, 8f ";
char * låten =
"20thCenFox:d = 16, o = 5, b = 140:b, 8 p, b, b, 2b, p, c6, 32 p, b, 32 p, c6, 32 p, b, 32 p, c6, 32 p, b, 8 p, b, b, b, 32 p, b, 32
p, b, 32p, b, 32p, b, 32p, b, 32p, b, 32p, g #, 32p, a, 32p, b, 8p, b, b, 2b, 4p, 8e, 8 g #, 8 b, 1 c# 6, 8f #, 8a, 8 c# 6, 1e6, 8a, 8c
#6, 8e6, 1e6, 8b, 8 g #, 8a, 2b ";
char * låten =
"Bond: d = 4, o = 5, b = 80:32 p, 16 c# 6, 32d #6, 32d #6, 16 d #6, 8 d #6, 16 c# 6, 16 c# 6, 16 c# 6, 16 c# 6, 32e6, 32e6, 16
E6, 8e6, 16d #6, 16d #6, 16d #6, 16 c# 6, 32d #6, 32d #6, 16d #6, 8d #6, 16 c# 6, 16 c# 6, 16 c# 6, 16 c# 6, 32e6, 32e6, 1
6e6,8e6,16d#6,16d6,16c#6,16c#7,c.7,16g#6,16F#6,g#.6 ";
char * låten =
"MASH:d = 8, o = 5, b = 140:4a, 4 g, f #, g, p, f #, p, g, p, f #, p, 2e., p, f #, e, 4f #, e, f #, p, e, p, 4 d., p, f #, 4e, d, e, p, d, p, e, p, d
, p, 2 c#., p, d, c#, 4d, c#, d, p, e, p, 4f #, p, a, p, 4b, en, b, p, a, p, b, p, 2a, 4p, b, a, 4b, a, b, p, 2a., 4f #, a,b,p,d6,p,4e.6, d
6, b, p, a, p, 2b ";
char * låten =
"StarWars:d = 4, o = 5, b = 45:32 p, 32f #, 32f #, 32f #, 8b., 8f #.6, 32e6, 32d #6, 32 c# 6,8b.6,16f #.6, 32e6, 32d #6,3
2C#6,8b.6,16F#.6,32e6,32d#6,32e6,8c#.6,32f#,32f#,32f#,8b.,8F#.6,32e6,32d#6,32c#6,8b.6,16F#.6,3
2e6,32d#6,32c#6,8b.6,16F#.6,32e6,32d#6,32e6,8c#6 ";
char * låten =
"GoodBad:d = 4, o = 5, b = 56:32 p, 32a #, 32d #6, 32a #, 32d #6, 8a #., 16f #., 16 g #., d #, 32a #, 32d #6, 32a #, 32d #6,
8a #., 16f #., 16 g #., c# 6, 32a #, 32d #6, 32a #, 32d #6, 8a #., 16f #., 32f. 32d #., c#, 32a #, 32d #6, 32a #, 32d #6, 8a #.,
16 g #., d #";
char * låten =
"TopGun:d = 4, o = 4, b = 31:32 p, 16 c#, 16 g #, 16 g #, 32f #, 32f, 32f #, 32f, 16 d #, 16 d #, 32 c#, 32d #, 16f, 32d #, 32f, 16f #, 32f, 32 c#, 16f, d #, 16 c#, 16 g #, 16 g #, 32f #, 32f, 32f #, 32f, 16 d #, 16 d #, 32 c#, 32d #, 16f, 32d #, 32f, 16f #, 3
2F, 32 c#, g #";
char * sång = "ATeam:d = 8, o = 5, b = 125:4 d #6, a #, 2d #6, 16 p, g #, 4a #, 4 d #., p, 16 g, 16a #, d #6, a #, f6, 2d #6, 16 p, c#.6, 16 c 6, 16a #
, g #., 2a #";
char * låten =
"Flinstones:d = 4, o = 5, b = 40:32 p, 16f6, 16a #, 16a #6, 32 g 6, 16f6, 16a #., 16f6, 32d #6, 32 d 6, 32 d 6, 32d #6, 32f
6, 16a #, 16c 6, d6, 16f6, 16a #., 16a #6, 32g 6, 16f6, 16a #., 32f6, 32f6, 32d #6, 32d 6, 32d 6, 32d #6, 32f6, 16a #, 16
C6,a#,16a6,16d.6,16a#6,32a6,32a6,32g6,32f#6,32a6,8g6,16g6,16c.6,32a6,32a6,32g6,32g6,32f6,32e
6, 32g 6, 8f6, 16f6, 16a #., 16a #6, 32g 6, 16f6, 16a #., 16f6, 32d #6, 32d 6, 32d 6, 32d #6, 32f6, 16a #, 16c.6,32d6, 3
2D#6,32f6,16a#,16c.6,32d6,32d#6,32f6,16a#6,16c7,8a#.6 ";
char * låten =
"Fara: d = 4, o = 6, b = 125:c, f, c, f5, c, f, 2 c, c, f, c, f, a., 8 g, 8f, 8e, 8 d, 8 c#, c, f, c, f5, c, f, 2 c, f., 8 d, c, en #5, a5, g5, f5,
p,d#,g#,d#,g#5,d#,g#,2D#,d#,g#,d#,g#,c.7,8a#,8g#,8g,8F,8e,d#,g#,d#,g#5,d#,g#,2D#,g#.,8F,d#,c#,c,p,
# 5, p, g #.5, d #, g #";
char * låten =
"Gadget: d = 16, o = 5, b = 50:32d #, 32f, 32f #, 32 g #, #, f #, a, f, g #, f #, 32d #, 32f, 32f #, 32 g #, #, d #6, 4 d 6, 32d #, 3
2F, 32f # 32 g #, #, f #, a, f, g #, f #, 8 d #";
char * låten =
"Smurfs:d = 32, o = 5, b = 200:4 c# 6, 16 p, 4f #6, p, 16 c# 6, p, 8 d #6, p, 8b, p, 4 g #, 16 p, 4 c# 6, p, 16a #, p, 8f #, p, 8a #, p,
4 g #, 4p, g #, p, en #, p, b, p, c6, p, 4 c# 6, 16p, 4f #6, p, 16 c# 6, p, 8d #6, p, 8b, p, 4 g #, 16p, 4 c# 6, p, 16a #, p, 8b, p, 8f, p, 4f
#";
char * låten =
"MahnaMahna:d = 16, o = 6, b = 125:c#, c., b5, 8a #.5, 8f. 4 g #, #, g., 4 d #, 8 p, c#, c., b5, 8a #.5, 8f., g #., 8a #. 4 g, 8
Persson, c#, c., b5, 8a #.5, 8f. 4 g #, f, g., 8 d #., f, g., 8 d #., f, 8g, 8 d #., f, 8g, d #, 8c, en #5, 8 d #., 8 d #., 4 d #, 8 d #. ";
char * låten =
"LeisureSuit:d=16,o=6,b=56:f.5,f#.5,g.5,g#5,32a#5,f5,g#.5,a#.5,32f5,g#5,32a#5,g#5,8c#.,a#5,32c#,
A5, en #.5, c#., 32a5, en #5, 32 c#, d #, 8e, c#., f. f., f., f., f, 32e, d #, 8d, en #.5, e, 32f, e, 32f, c#, d #., c# ";
char * låten =
"MissionImp:d = 16, o = 6, b = 95:32d, 32d #, 32d, 32d #, 32d, 32d #, 32d, 32d #, 32d, 32d, 32d # 32e, 32f, 32f #, 32
g, g, 8p, g, 8p, a #, p, c7, p, g, 8p, g, 8p, f, p, f #, p, g, 8p, g, 8p, a #, p, c7, p, g, 8p, g, 8p, f, p, f #, p, en #, g, 2d, 32p #, g, 2 c#, 3
2 p, a #, g, 2 c, en #5, 8 c, 2 p, 32 p, en #5, g5, 2f #, 32 p, en #5, g5, 2f, 32 p, en #5, g5, 2e, d #, 8 d ";
#define IRsensorPin 6
#define IRledPin 5
#define D13ledPin 13
void IR38Write() {
för (int jag = 0; jag < = 384; i ++) {
digitalWrite (IRledPin, hög);
delayMicroseconds(13);
digitalWrite (IRledPin, låg);
delayMicroseconds(13);
}
}
void setup(void)
{
Serial.BEGIN(9600);
tone1.BEGIN(3);
pinMode (IRledPin, OUTPUT);
digitalWrite (IRledPin, låg);
pinMode (D13ledPin, OUTPUT); digitalWrite (D13ledPin, låg);
}
#define isdigit(n) (n > = "0" & & n < = '9')
void play_rtttl(char *p)
{
byte default_dur = 4;
byte default_oct = 6;
int bpm = 63.
int num;
lång wholenote;
lång varaktighet;
byte Obs;
byte skala.
medan (* p! = ':') p ++; Ignorera namn
p ++; hoppa över ":'
få standardvaraktighet
om (* p == hade ")
{
p ++; p ++; hoppa över "d ="
NUM = 0;
While(isdigit(*p))
{
NUM = (num * 10) + (* p ++ - '0');
}
om (num > 0) default_dur = num;
p ++; hoppa över kommatecken
}
Serial.Print ("ddur:"); Serial.println (default_dur, 10);
få standard octave
om (* p == ' o ')
{
p ++; p ++; hoppa över "o ="
NUM = * p ++ - '0';
om (num > = 3 & & num < = 7) default_oct = num;
p ++; hoppa över kommatecken
}
Serial.Print ("doct:"); Serial.println (default_oct, 10);
få BPM
om (* p == "b")
{
p ++; p ++; hoppa över "b ="
NUM = 0;
While(isdigit(*p))
{num = (num * 10) + (* p ++ - '0');
}
BPM = num;
p ++; hoppa över kolon
}
Serial.Print ("bpm:"); Serial.println (bpm, 10);
BPM uttrycker oftast antalet kvartal sedlar per minut
wholenote = (60 * 1000L / bpm) * 4; Detta är dags för hela Obs (i millisekunder)
Serial.Print ("wn:"); Serial.println (wholenote, 10);
nu börja Obs loop
While(*p)
{
först får notera varaktighet, om den är tillgänglig
NUM = 0;
While(isdigit(*p))
{
NUM = (num * 10) + (* p ++ - '0');
}

IF(NUM) längd = wholenote / num;
annat varaktighet = wholenote / default_dur; Vi kommer att behöva kontrollera om vi har en prickad not efter
nu får meddelandet
Obs = 0;
Switch(*p)
{
fallet "c":
Obs = 1;
bryta;
fall skulle ":
Obs = 3;
bryta;
fallet "e":
Obs = 5;
bryta;
fallet "f":
Obs = 6;
bryta;
fallet "g":
Obs = 8.
bryta;
fallet "a":
Obs = 10;
bryta;
fallet "b":
Obs = 12. bryta;
fallet "p":
standard:
Obs = 0;
}
p ++;
nu får valfri '#' skarp
om (* p == '#')
{
Obs ++;
p ++;
}
nu får valfri '. "prickad not
om (* p == ".")
{
Längd + = Varaktighet/2.
p ++;
}

IF(isdigit(*p))
{
skala = * p - '0';
p ++;
}
annat
{
skala = default_oct;
}
skala += OCTAVE_OFFSET;
om (* p == ",")
p ++; hoppa över kommatecken för nästa not (eller vi kan vara i slutet)
nu spela anteckningen
IF(Note)
{
Serial.Print ("spela:");
Serial.Print (skala, 10). Serial.Print(' ');
Serial.Print (Obs, 10); Serial.Print ("(");
Serial.Print (anteckningar [(scale-4) * 12 + anmärkning], 10);
Serial.Print(")");
Serial.println (längd, 10);
tone1.Play (anteckningar [(scale-4) * 12 + Anm]);
Delay(duration);
tone1.stop();
}
annat
{Serial.print ("pausa:");
Serial.println (längd, 10);
Delay(duration);
}
}
}
void loop(void)
{
IR38Write();
om (digitalRead(IRsensorPin)==HIGH) {
digitalWrite (D13ledPin, hög);
play_rtttl(Song);
Delay(1000);
}
annat {
digitalWrite (D13ledPin, låg);
}
Delay(100);
}

Video:

Gå till för mer kul projekt!

Relaterade Ämnen

Stöldskydd ingången Guard larmsystem baserat på Arduino

ICStation team presentera detta stöldskydd ingången Guard Alarm System baserat på ICStation MEGA. Detta system fungerar under 5V DC strömförsörjning, kan förverkliga IR ingången guard övervakning och använder active Summer till slut larm. Detta syste...

Hur man bygger den ultimata ingången till en hemmabio

Följ stegen i denna video att se hur jag skapade den väldigt cool "grand ingången" till min nya hemmabio (att projektet i en annan instructable). Från split kolumner till bokstäver överst, det är alla här....

Regenererade Parana Pine ingången tabell

Jag gjorde denna regenererade Parana Pine ingången tabell för mitt hem, följa gärna med om du vill se åtgärderna för att bygga det!Jag gjorde en video av bygger för min Youtubekanal BCDesign, se vänligen, tummen upp och prenumerera!Produkter behöver...

Lägga till AUX-ingången & högtalare i bilens Radio

Jag slår vad du alltid har velat lyssna på dina favoritlåtar i bilen! Ja åtminstone gör jag.Min idé kom när jag bläddrade min bil player Inställningar-menyn. Jag märkte bara en AUX etikett så jag lärde att radion kan mycket väl ha en AUX-ingången.All...

Sten Gargoyle ingången kolumner

Dessa är instruktionerna om hur man bygger ett par autentiska sten gargoyle kolumner för Halloween. Jag bygga brukar något varje år för mitt hem spökhus och jag bestämde mig för att använda "ingång" av något slag. Dessa kolumner skulle vara bra...

Reparera ingången på gitarr

Här ser vi en av leder har blivit frånkopplad från ingången terminalen. Som ni kan se, har terminalen lödtenn. Denna måste bort och ersättas med färska löda undviks en kall lödningar gemensamt.Steg 1: Tillämpning av färska lödaAnvänd min hjälpande hä...

Främre ingången uppgradering

DESIGN IN FULL: Detta var tänkt för att vara halvvägs in i detta instructable, jag bud upp någonstans.Heres en liten information om hakparenteserna som gör detta hela installationen fungerar. 2 år sedan kontaktade en antikhandlare mig för att reparer...

Haunted ingången

Detta är en post mortem rapport att tjäna som inspiration för andra beslutsfattare, med några anteckningar om vad som gick rätt och vad gick inte så bra.Det finns en annan instructable kallas att göra en motoriserad hemlig ingång att 50% av mitt proj...

Minecart hemliga ingången! 0.8.0

även leka med minecarts i PE, jag gjorde detta awesome hemlig ingång! Njut av :)Steg 1: Minecarts!? Obs: du måste ha 0.8.0 version du använder.Följ bilderna!Steg 2: Konfigurera Följa ordningen av block på ett foto och tryck in en vagn ner rälsen och...

Kyrkogården Archway ingången

Precis som min Faux spis såg jag också något på en butik som detta, och denna tid det var mycket väl utformad, men långt mer pengar än jag var vill spendera, så jag tänkte jag skulle göra mitt eget. Kom ihåg att detta är gjort av kartong, så jag inte...

Rökig ingången spegel med keyhooks

jag har letat efter en hänrycka spegel med keyhooks, och även de jag hittar på secondhandbutiker är generic/granna/gigantiska. Jag hade denna bildram som är okej nog, och hittade några små metall pinnar, och denna besvärliga spegel från mitt badrum s...

Minecraft hemlighet spis ingången

Det här är en awesome bygga. När du trycker på knappen spisen öppnar upp och du kan gå där nere i ett hemligt rum då du trycker på knappen på insidan det stänger i elden tänds igen samma sak om du stänger det från utsidan. Jag gjorde detta i xbox 360...

RFID-ingången system

hjärtat i denna styrelse är lpc1768.Steg 1: consept system Den allmänna schematiskt av systemet.Steg 2: PCB i Altium och i två lager och 3D-modellering visas.Steg 3: PC-programvaraPC programvara att hämta data från USB och log. Hämta data från databa...

Minecraft ingången med Bonus

jag gjorde detta för min gigantisk poolSteg 1: Första steget Göra 5 staket detta sätt---> och utgör 1 staketSteg 2: Upprepa för andra sidanSteg 3: takSteg 4: BONUS MEH MINECRAFT MECH...

Mellanliggande Arduino: Ingångar och utgångar

Fortsätter från min Intro till Arduino inlägg, går detta Instructable över vissa något mer avancerade ämnen med Arduino, särskilt om att styra och hantera många ingångar och utgångar. Nästa klass omfattar hur du ansluter den Arduino ingångar och utgå...

Hur komma åt 5 knappar genom 1 Arduino ingång

med den här metoden jag ska visa dig hur du kan använda 5 (eller ännu mer) ingångar via 1 Arduino stift. Dessa knappar kommer endast läsas korrekt om bara en skjuts när som helst ändå.När vi går igenom det jag ska förklara vad bakgrunden info du behö...

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 kontrollerade Beehive Fumigator / Air Freshener

Inom det relativa kaoset av mina inhemska arrangemang har jag en liten oas i perfekt ordning. En sak som jag kan kalla "organiserade" och "fullt fungerande". En sak jag kan röra och vet att det är tillförlitliga och färdiga för åtgärde...

Arduino VFD Display klocka handledning - en Guide till VFD displayer

... + Lite om VFDsMinns du (fortfarande) visning av din gamla CD-spelare, HiFi system eller bil radio? Har du någonsin märkt displayerna används på din lokala mataffär som visar du skannade objektet och priset för det?Dessa skärmar har en karakterist...