Arduino kontrollerade blinkande Fairy julbelysningen med Jingle Bells (7 / 12 steg)

Steg 7: Starta och stoppa med en knapp



You will need:

  • Mini tryckknapp
  • 10 K ohm motstånd (färgmarkering: brun, svart, orange, guld)
  • 3 * bygelstift
  • USB-kabel

Koppla upp din knapp - The Arduino knappen tutorial finns här

  1. Koppla USB från Arduino
  2. Placera på knappen på bakbord mittlinje - du kommer att märka knappen passar ett sätt men inte det andra.
  3. Ansluta ett av benen till den röda positiva linjen med hjälp av en bygel stift
  4. Ansluta det 10K motståndet från det andra benet på samma sida, se till att det är parallellt med de röda och blå linjerna (se bilden ovan)
  5. Anslut den andra sidan av motståndet blå negativa line
  6. På andra sidan av knappen, Anslut benet på den på samma rad som motståndet till stift 2 på Arduino
  7. Kopiera och klistra in koden i en ny Arduino fil
  8. Anslut USB-kabeln till Arduino
  9. Ladda upp filen
Knappen är intryckt för att starta musik och ljus och tryckte igen att stoppa den.

#define C 2100
#define D 1870
#define E 1670
#define f 1580 / / verkar inte gillar versalt F
#define G 1400
Definiera en särskild anmärkning, "R", som representerar en vila
#define R 0

// SETUP ============================================
Ställ in högtalare på en PWM stift (digital 9, 10 eller 11)
int speakerOut = 9;
int ledde = 13.
int buttonPin = 2;

void setup() {
pinMode (speakerOut, produktionen);
pinMode ledde (, OUTPUT);
pinMode (buttonPin, ingång);
}

KNAPPEN

Variabler som ändras:
int å = låg; det aktuella läget för utgångsstiftet
int buttonState; den nuvarande behandlingen från ingångsstiftet
int lastButtonState = låg; den föregående behandlingen från ingångsstiftet

följande variabler är lång eftersom tiden, i millisekunder,
kommer snabbt att bli ett större antal än kan lagras i en int.
lång lastDebounceTime = 0; sista gången utgångsstiftet var växlas
lång debounceDelay = 50; debounce tiden; öka om utdata flimrar

MELODI och TIMING ===
Melody [] är en matris av anteckningar, tillsammans med beats [],
som sätter varje ton relativa längd (högre #, längre anteckning)
int melodi [] = {E, E, E, R,
E, E, E, R,
E, G, C, D, E, R,
f, f, f, f, f, E, E, E, E, D, D, E, D, R, G, R,
E, E, E, R,
E, E, E, R,
E, G, C, D, E, R,
f, f, f, f, f, E, E, E, G, G, f, D, C, R};

int MAX_COUNT = sizeof(melody) / 2; Melody längd, för looping.

Ange övergripande tempo
långa tempo = 10000;
Ange längden på paus mellan anteckningar
int paus = 1000;
Loop variabel att öka resten längd
int rest_count = 30.

Initiera core variabler
int tone_ = 0;
int slå = 0;
lång varaktighet = 0;

// PLAY TONE ==============================================
Puls talaren att spela en ton för en viss varaktighet
void playTone() {
lång elapsed_time = 0;
om (tone_ > 0) {/ / om detta inte är en resten beat, medan tonen har
digitalWrite (ledde, högt);
spelat mindre långt än "varaktighet", puls högtalare hög och låg
medan (elapsed_time < varaktighet) {

digitalWrite(speakerOut,HIGH);
delayMicroseconds(tone_ / 2);

NED
digitalWrite (speakerOut, låg);
delayMicroseconds(tone_ / 2);

Hålla reda på hur länge vi pulsade
elapsed_time += (tone_);
}
digitalWrite (ledde, låg);

}
annat {/ / resten slå, loop gånger försenar
för (int j = 0; j < rest_count; j ++) {/ / se anmärkning på rest_count
delayMicroseconds(duration);
}
}
}

void jingleBells(int i) {
Ställ in en räknare för att dra från melody [] och [slag]
tone_ = melodi [i];
slå = 50;
längd = beat * tempo; Ställ in timing
playTone();
En paus mellan anteckningar...
delayMicroseconds(pause);
}

void checkOn (int läsning) {
Kontrollera om du bara tryckt på knappen
(dvs. indata gick från låg till hög), och du har väntat
tillräckligt länge sedan den senaste pressen att ignorera något buller:

Om växeln ändras, på grund av buller eller trycka:
om (läsa! = lastButtonState) {
nollställa debouncing timern
lastDebounceTime = millis();

växlar mellan variabeln ledState varje gång knappen trycks
om (buttonState == hög) {
on =!.
}
}

om ((millis()-lastDebounceTime) > debounceDelay) {
oavsett läsning är på, har det varit där för längre
än debounce förseningen, så ta det som det faktiska nuvarande läget:
buttonState = behandlingen.
}
}

LÅT VILDA BRÅK BÖRJA ===
void loop() {
Läs statligt av växeln till en lokal variabel:
int läsa = digitalRead(buttonPin);

checkOn(reading);

IF(on) {
för (int jag = 0; jag < MAX_COUNT; i ++) {
int loopReading = digitalRead(buttonPin);
jingleBells(i);
om (loopReading! = läsning) {
on =!.
bryta;
}
}
}

Spara behandlingen. Nästa gång genom öglan,
det blir lastButtonState:
lastButtonState = behandlingen.
}

Se Steg
Relaterade Ämnen

Arduino kontrollerade automatiska mörkar med Web UI

detta instructable är en utförlig guide om hur man bygger en automatisk kontrollant för att köra en motor som kan fungera öppna och stänga mörkar. Styrenheten kan mörkarna att öppna och stänga baserat på ett schema, rumstemperatur och ut dörren lumin...

Jingle Bells ful Xmas tröja

God Jul!Steg 1: Skaffa en mycket ful jul tröjaJag fick min från Value Village för $10Steg 2: Skaffa ett lilyPad Arduino och högtalareperfekt för kläder! Dessutom få några ledande tråd eller en strängSteg 3: 6 LED lamporOm du skapar loopar med tråd, ä...

Android & Arduino kontrollerade projektorn skärmen

detta är min första gången du använder Arduino, eller någon mikrokontroller. Jag är glad att det fungerat så bra men min fru kan inte bero på, travar av mikrokontroller som kommer att dyka upp på vår tröskel snart för framtida projekt. Någon feedback...

Arduino kontrollerade ljus dimmer

Varning: Vissa människor försöka bygga detta med en optocoupler med zerocrossing coz "som är bättre" rätt? Vissa får även höra i elektronik butiker är det bättre att använda sådan optocoupler. FEL. Detta fungerar endast med en random brand optoc...

Laser Galvo - Arduino kontrollerade

Arduino kontrollerad laser galvo. Servo driven speglar styra UV laser lämna ett fosforescerande spår på glöd-in-the-dark vinyl ark.Ursprungligen postat på notes.robives.comSteg 1:Börjar med ett blad av självlysande vinyl från eBay och en UV laserpeka...

Sällskapsdjur utegångsförbud: En Arduino kontrollerade sällskapsdjur dörr

Problemet: du vill begränsa den tid när ditt husdjur är tillåtet att gå utanför. Detta kan bero på att trakten inte är säkra för din katt eller liten hund på natten (plundringarna coyotes kommer att tänka på). Men du vill ha ditt husdjur för att kunn...

Arduino kontrollerade Servo Robot (serbiska)

vad bättre sätt för att börja experimentera med öppen källkod mikro-styrenheter ( Arduino ) då genom att bygga din egen öppen källkod robot ( CC (SA-av))?Vad till gör med din Serbiska?(här) - Hur ansluta din serbiska till internet och köra det över e...

Kromatiska temperatur Display - Arduino kontrollerad RGB LED Infinity Mirror

Detta projekt var löst inspirerad av , en väderstation display vars färg är baserad på utomhustemperaturen. Jag hade en rumskompis College som hade en av dessa och det var mycket användbart, i Pittsburgh särskilt, att bara kasta en blick på färgen oc...

Arduino kontrollerade fyren

Översikt:Jag har ofta tänkt att en fyr skulle göra ett stort projekt för en Arduino, och så jag beslöt att ge det ett försök med någon av de lokala fyrarna här i Erie, Pennsylvania som inspiration. Jag valde Norr Pierhead fyr som vaktar ingången till...

Arduino-kontrollerade Wolf svans

hälsningar, eller ska jag säga, "Aaaaaooooooooooooh!" Gärna göra din bekantskap Karl wolf entusiast. Du har en inre wolf ande som är så ivriga att ge sig till känna att du har kommit mig att lära mig hur man gör din egen animatronic wolf svans,...

Arduino kontrollerade kök Timer

Alla ni måste har upplevt detta att du har något kokning på din gasspis medan å andra sidan du få upptagen tittar på TV eller få en djup konversation att du inser på upptäcka en lukt som det var helt bortskämd bara på grund av din slarv. Denna lilla...

Arduino kontrollerad bil Tracking System baserade på SMS-

Hej jag gjorde en Arduino kontrollerad bil Tracking System baserat på SMS för min fars bil.Använda modulerna är;Arduino nano V3.0SkyLab GPS-modulenWaveCom GSM-modulSoftwareSerial bibliotek, TinyGPS används för att kommunicera med moduler.När jag ring...

Trådlösa Arduino kontrollerade Tank (nRF24L01)

Hej!Idag kommer jag att visa dig hur man bygger en Arduino kontrollerade tank och fjärrkontroll. 3d tryckta delar av tanken (med undantag av registeransvarige, spåra guide och tank cover) ritades av timmiclark och kan hittas här.Steg 1: Samla materia...

Arduino kontrollerade CNC / 3D skrivare Hybrid

Moder natur gör... Vi bygger.BuildersBot säkringar 3D utskrift & CNC fräsning till en Builders dröm "3dprintingindustry.com"BuilderBot är en öppen Design maskin, som använder OpenMjukvara och öppen hårdvara. Det är en produkt av öppna projek...

Hur man gör blinkande polisen lyser med ljud

detta är en Instructable om hur man gör blinkande polisen lampor med ljudHär är ett exempelInnan jag börjar den faktiska tut vill jag bara säga att detta är min första handledning, och jag vill också säga tack till Dave1324 för din handledning och äv...

Arduino-kontrollerade Smart Home

Detta Instructable skrevs av PubNub Evangelist Ian Jennings . Ians historia går igenom hans processen för att bygga en Arduino-kontrollerade smarta hem modell från grunden.--Tillbaka i September, vår grundare Stephen och jag pratade om olika sätt att...

Arduino kontrollerade Flight Simulator - "The Viper"

min Maker Faire projekt för 2012 är "The Viper"--en Arduino kontrollerade flight simulator inspirerad av shipen av det samma känt från SyFy kanalens TV-serien Battlestar Galactica. Den roterar 360 grader längs två axlar, vilket innebär att ja, d...

Arduino kontrollerade makt källa

Detta instructable beskriver hur du utformar en Arduino kontrollerad leverans strömkälla.En kort video som presenterar sitt arbete kan ses i min Youtube-kanalSteg 1: Design idéer, begagnade strategi... Syftet med projektet var att skapa ett litet dri...

Arduino Bluetooth Garage dörrkontroll med sensorer och anpassningsbara Android App

Använda en arduino till aktivera reläer för att öppna garageportar och elektriska dörrlås.En anpassningsbar Android App, ansluter till arduino via lösenordsskyddade bluetooth-ihopparningen.En bluetooth hc-05 modul tar emot kommandon från en android-t...