Kerstlied speler (6 / 6 stap)

Stap 6: Tijd om het te draaien!


Nadat we hebben alle de hardware aangesloten en de code geanalyseerd zijn we klaar om het te draaien!

Video
http://youtu.be/lV9WurONtV0

Als samenvatting
Het programma heeft dan 3 hoofdonderdelen:

-Het eerste deel bestaat uit de verklaring van de variabelen, constanten en invoer van andere bestanden.  Het importeren van het bestand "pitches.h", daar vindt u de constante van de noten met hun frequenties. U kunt het downloaden van arduino pagina: http://arduino.cc/en/Tutorial/Tone3
-Het tweede deel is de Setup die in principe de initialisatie van het programma is.  Hier definiëren we input/output pinnen en andere spullen. Het setup-gedeelte loopt slechts eenmaal, aan het begin van het programma.
-De derde deel is de loop. Dit zal altijd totdat u de arduino uitschakelt. Daar vindt u de code van de belangrijkste programma dat speelt het liedje en licht omhoog de led met verschillende kleuren.  Ook het gevoel van de waarde van de potmeter om te definiëren van de snelheid (tempo) die zal spelen.

De volledige code:

/ * Melody
Speelt een melodie
route:
* 8-ohm luidspreker op digitale pin 8
Baseren op het voorbeeld van http://arduino.cc/en/Tutorial/Tone door Tom Igoe
Gewijzigd door: Irene Meiying Cheung Ruiz
*/

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

noten in de melodie 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
};
noten in de melodie 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
};

Opmerking de duur van de melodie 1:4 = kwartnoot, 8 = achtste noot, enz.:
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};

Opmerking de duur van de melodie 2:4 = kwartnoot, 8 = achtste noot, enz.:
int noteDurations2 [] {} =
2, 2.5, 8, 1.5, 4, 2, 2, 1.5,
4 1.8, 4, 1.8, 4, 1};

Pinnen
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
int knop = 2;

controle variabelen
int counter = 0;
int ingedrukt = 0;
Boole playsong = false;

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

snelheid controle variabelen
int sensorValue = 0;
float tempo = 0;

initialisatie
void setup {
Setup pinnen
pinMode (redPin, OUTPUT);
pinMode (greenPin, OUTPUT);
pinMode (bluePin, OUTPUT);
pinMode (button, INPUT);

licht tot groen aan het begin
mapColor(-1);
opsporen van fouten
Serial.begin (9600); optioneel
}

hoofdprogramma
void loop {
detecteren wanneer de knop werd ingedrukt
if(digitalRead(button) == laag)
{
ingedrukt = 1;
}

detecteren wanneer de knop realesed is
if(digitalRead(button) == HIGH & & geperst == 1)
{
teller ++;
ingedrukt = 0;
playsong = true;
variabele om te bepalen wanneer om te beginnen met het liedje

beslissen welk lied speelt
als (teller % 2 == 0)
{
songSizeS = SONG1_SIZE;
noteDurationS = noteDurations1;
melodyS = melody1;
}
anders
{
songSizeS = SONG2_SIZE;
noteDurationS = noteDurations2;
melodyS = melody2;
}
}

Start het liedje als de knop is ingedrukt:
if(playsong)
{

playsong = false;
/ / itereren over de noten van de melodie
voor (int thisNote = 0; thisNote < songSizeS; thisNote ++)
{
//sensor waarde van de potentiometer toegewezen aan het bereik van 1-3 snelheid waarden
sensorValue = analogRead(A0);
tempo = sensorValue * (3.0 / 1023.0); Serial.println(tempo);

voor het berekenen van de duur van de opmerking, neem één seconde
gedeeld door het type opmerking.
bijvoorbeeld kwartnoot = 1000 / 4, achtste noot = 1000/8, etc. int noteDuration = 1000/noteDurationS [thisNote];
Toon (8, melodyS[thisNote],noteDuration);
licht omhoog de rgb-led afhankelijk van de notitie
mapColor (melodyS [thisNote]);
om te onderscheiden van de notities, stel een minimuminterval tussen hen.
de nota's duur * tempo
int pauseBetweenNotes = noteDuration * tempo;
delay(pauseBetweenNotes);

Stop het afspelen van de Toon:
noTone(8);
licht omhoog de heeft geleid tot eerste staat (groene kleur)
mapColor(-1);
}
}
}

functie waarmee de opmerking worden toegewezen aan een bepaalde kleur
Het combineert de kleur van RGB naar het produceren van een andere PPD gebruiken
void mapColor (int opmerking)
{
switch(Note)
{
Case NOTE_C3:
Case NOTE_C4:
analogWrite (redPin, 0);
analogWrite (greenPin, 255);
analogWrite (bluePin, 255);
breken;
Case NOTE_D3:

Case NOTE_D4:
analogWrite (redPin, 0);
analogWrite (greenPin, 0);
analogWrite (bluePin, 255);
breken;
Case NOTE_E3:
Case NOTE_E4:
analogWrite (redPin, 255);
analogWrite (greenPin, 0);
analogWrite (bluePin, 0);
breken;
Case NOTE_F3:
Case NOTE_F4:
analogWrite (redPin, 0);
analogWrite (greenPin, 255);
analogWrite (bluePin, 0);
breken;
Case NOTE_G3:
Case NOTE_G4:
analogWrite (redPin, 255);
analogWrite (greenPin, 0);
analogWrite (bluePin, 255);
breken;
Case NOTE_A3:
Case NOTE_A4:
analogWrite (redPin, 255);
analogWrite (greenPin, 255);
analogWrite (bluePin, 0);
breken;
Case NOTE_B3:
Case NOTE_B4:
analogWrite (redPin, 0);
analogWrite (greenPin, 0);
analogWrite (bluePin, 0);
breken;
geval van 0: / / het einde staat of stilte voorstelt
analogWrite (redPin, 255);
analogWrite (greenPin, 255);
analogWrite (bluePin, 255);
breken;

geval van -1:/ / het vertegenwoordigt de begintoestand
analogWrite (redPin, 255);
analogWrite (greenPin, 0);
analogWrite (bluePin, 255);
breken;
standaard:
//other notities
analogWrite (redPin, 105);
analogWrite (greenPin, 255);
analogWrite (bluePin, 100);
breken;
}
}

Gerelateerde Artikelen

Blokkeren stapelen spel

Blokkeren stapelen spel

Jaren geleden kwam ik dit houten rock stapelen spel bij een Starbucks (van alle plaatsen). Het spel was in hun winkel voor een kerst seizoen en nooit weer. Het blok stapelen was leuk, ontspannen en een beetje educatieve (want natuurkunde!). Het probl
MAGISCHE muzikale aftellen naar kerst MACHINE

MAGISCHE muzikale aftellen naar kerst MACHINE

Dit alles begon toen mijn jongste kleinzoon gevraagd hoe lang is het tot Kerstmis?Ik begon te denken van een manier voor een drie jaar oud om te begrijpen welke hoe lang middelen?Als de relatie tussen dagen, uren, minuten en seconden.Hij wist wat was
Kids Cup Pong spel

Kids Cup Pong spel

Kerst avond, mijn verloofde ', 2 zoon's, en mezelf ging naar een goede vrienden thuis voor de spelletjes en dranken (zoals elke vakantie). Terwijl zijn vrolijk hun zoon haalde een geschenk uit Santa, een spel genaamd Cup Ponk (tm). Een spel dat is po
Maak een kleine gevouwen kerst boek

Maak een kleine gevouwen kerst boek

deze "tiny boeken" zijn een mooie kleine gift voor een jong kind, of leuk om te maken met een kind. Hier kun je de tekst past bij uw kind, en het gebruik van clipart-afbeeldingen of stickers, het vestigen van uw eigen of laat uw kind illustreren
Solar powered Kerst ornamenten

Solar powered Kerst ornamenten

ik wilde een decoraties toevoegen aan een outdoor boom van mij, maar het is zeer ver van het huis, te ver om eenvoudig gebruik maken van een verlengsnoer.  Batterij-aangedreven ornamenten bestaan, maar ik wilde altijd veranderen batterijen vanaf nu t
Spel ideeën Sonic en Baby hebzucht Avengers GX het stijgen van de Chaos Fusion

Spel ideeën Sonic en Baby hebzucht Avengers GX het stijgen van de Chaos Fusion

Sonic en Baby hebzucht Avengers GX de opkomst van de Chaos-FusionOnvolledigSonic en Baby hebzucht Avengers GX de opkomst van de Chaos-FusionUitgesproken een wereldwijd online spel en off line spel ook spreken Sonic en hebzucht Avengers GX het stijgen
Maak uw eigen Cigar Box gitaar / Mp3 speler versterker

Maak uw eigen Cigar Box gitaar / Mp3 speler versterker

ik heb willen maken van een sigaar vak gitaar en versterker al geruime tijd, en het lijkt alsof de Instructable geluid kappen en batterij aangedreven contestst gewoon de extra stimulans dat ik nodig had om het eens te proberen.Dit Instructable toont
Gastronomisch kerst schone thee!

Gastronomisch kerst schone thee!

im een thee liefhebber en voor Kerstmis heb ik besloten om een gastronomisch kerst schone thee. Dit maakt een grote gift van Kerstmis, en het heeft mooie smaken.Stap 1: Stap 1: verzamelen van leveringenIk gebruikte voor mijn thee-mix:droge lilly pill
Draad lus spel voor kinderen

Draad lus spel voor kinderen

Hoi allemaal.Mijn vrouw was van plan mijn zoon verjaardag vorige week. Ze sprak met enkele gebeurtenis managers voor het regelen van enkele spelletjes voor kinderen tijdens de partijOp dit moment is een van de populaire groepsspelen draad lus spel. W
Mini spel van tronen Dragon Egg sieraden Set

Mini spel van tronen Dragon Egg sieraden Set

Hi iedereen!Vandaag ga ik u tonen hoe te maken van deze super coole dragon egg oorbellen van spel van tronen!Hoop dat je ze!Als u dit doet, please vote voor me in de egg contest!Stap 1: materialen Voor deze tutorial zal u:1. zilverpapier2. polymer cl
Magnetische klas woordenschat spel

Magnetische klas woordenschat spel

woordenschat is een ding dat elke leraar ongeacht grade level-test of onderwerp leert. Het is een lerares Engels proberen om fundament te leggen zodat haar studenten begrijp eigenlijk een kort verhaal, een leraar van de geschiedenis probeert uit te l
Maken van een spel in Kladblok en nog veel veel meer

Maken van een spel in Kladblok en nog veel veel meer

Dit is mijn eerste instructable. Zo hebt u please suggesties commentaar. Laat aan de slag!Als we alle het woord Kladblok horen denken we aan sommige saai nutteloos toepassingen te noteren van spullen. Goed Kladblok is veel meer dan dat.. We kunnen co
GoPro grond spel

GoPro grond spel

Ik heb grond inzet speciaal gemaakt voor camera's met GoPro stijl mounts, maar zij allen veronderstellen dat zij zal gaan in zachte vuil. Zoals iedereen die ooit een tent gooide heeft bevestigen kan, dit is niet altijd het geval.Bonzen op dunne tabbl
Extreme Buzz draad spel met STUN GUN!

Extreme Buzz draad spel met STUN GUN!

Mijn vriend gaf me een gebroken zaklamp/stun gun. Heb ik besloten om naar de stun gun delen in een extreme DIY buzz draad spel!Stap 1: Testen van de transformator Binnen de zaklamp vonden we en getest de transformator. We laagspanning toegepast op de