Arduino Knock-Knock Treasure Box (8 / 10 steg)

Steg 8: Hämta filen skiss och flytta det till din skissbok

Skiss är den på Dropbox. Namnet KnockKnockTreasureBox_9.ino är en kopia av samma fil som är i min skissbok.
Använd denna länk för att hämta: https://www.dropbox.com/s/a0dqwk3ziauz2ir/KnockKnockTreasureBox_9.ino
Kopiera eller flytta filen från mappen ladda ner till din skissbok.
I Arduino IDE Klicka på Sketchbook. Klicka sedan på KnockKnockTreasureBox_9 att visa den.

Skissen är kraftigt kommenterade och designad för enkel avläsning av någon bekant med Arduino kodning.

Den använder två bibliotek: Servo.h och EEPROM.h

På de flesta ställen används en variabel namn stället värdet jag använde. Värdet kan således lätt ändras där variablerna är skrivit och definieras. Till exempel Uno hamnar heter snarare än numrerade i koden.

Det gör starkt bruk av funktioner. Detta håller huvudprogrammet [loop()] enkel eftersom det ringer upp funktioner som namnges klart och där detaljerna i skissen är fulländade.

Huvudprogrammet notering följer. Det är inte för sammanställning men presenteras i nästan denna form för din förståelse. Funktionerna är fetstil för lätt erkännande och beskrivs efter den huvudsakliga programmet noteringen.

MAIN PROGRAM: Void loop() {

CheckBattery() / /Flashes blå om batteriet behöver bytas ut och går inte vidare.

[Om locket byta öppna gå till ProgramMode]

Annat goto OperateMode

ProgramMode:

[Lås servo och ljus grön LED]

AwaitGoAhead() //Waiting för användaren att trycka på locket för 5 sek för att säkrare programmering.

ReadyToProgram: //A gå till adress

GetKnock() //Wait för användaren smällar, fastställa antal och tid mellan varje, test för laglighet,

Om ErrorFlag == 1 //Set flagga om olaglig,

FlashLED() //Flash LED.

gå till ReadyToProgram //Try igen

StoreSecretKnock() //Store hemlighet slå data i EEPROM

BlinkLED() //Blink LED att visa data har lagrats.

ProgramDwell: //Disable box svar på ytterligare lock förslutningar och smällar.

gå till ProgramDwell

OperateMode:

[Låsa boxen och ljus röd LED]

GetKnock()

Om ErrorFlag == 1

FlashLED()

gå till OperateMode

GetSecretKnock() //Retrieve data från EEPROM

CompareKnocks() //Compare slå nummer och mellan fästpunkterna för användarens knock vs Hemlig knackning.

Om ErrorFlag == 1 //Set flagga om annan och flash LED.

FlashLED()

gå till OperateMode //Try igen

[Annars, ljus grön LED och låsa upp rutan]

Bor: //Disable box svar på ytterligare smällar eller lock förslutningar.

gå till Dwell

FUNKTIONER

CheckBattery() läser 0-1023 behandlingen av analog port A1 och omvandlar den till volt.

Om spänningen är lägre än 7V börjar blinka blå LED och fryser programmet i detta tillstånd tills power stängs av. Dock om spänning är lägre än 5V är rutan att USB-drivna, så blå blinkande är inaktiverad.

AwaitGoAhead() sinnen lock stängning, waits i 5 sekunder, blinkar lysdioden, väntar på locket att öppna, sedan tillbaka till huvudprogrammet.

GetKnock() kallas i både Program och fungerar. Det beräknar och sparar tidsintervallet mellan varje knock. Den bestämmer också om tidsfristen för att knacka eller det maximala antalet slag tillåtet har kränkts, i vilket fall det anger en ErrorFlag.

Det väntar tills en knock amplitud på analog port A0 överskrider set.

När först knock (N = 0) inträffar det läser klocktiden och sparar den i matrisen tid [N] som tid [0]. Det också blinkar lysdioden.

Klocktiden läses ständigt och ElapsedTime beräknade
som klocka-tid [0].

Om förfluten tid överskrider den tillåtna tiden för att försöka smällar, och endast en puls har upptäckts, ErrorFlag in och returnerar funktionen. Annars returnerar funktionen med några set ErrorFlag.

För varje knock (N) upptäcks efter den första knock, sparas ElapsedTime som tid [N] och lampan blinkade.

Om antalet smällar överskrider den maximalt tillåtna (10), ErrorFlag in och returnerar funktionen.

Om det finns inga fel, varje slå intervall (tid [N] – Time[N-1]) sparas i en matris KnockInterval [N], och när tillåtna ElapsedTime nås funktionen returnerar.

StoreSecretKnock() kallas i ProgramMode. Lagras i EEPROM varje KnockInterval [N] sparas i GetKnock(), samt totala KnockNumber. Dessa lagras som SecretKnockInterval [N] och SecretKnockNumber.

GetSecretKnock() kallas i OperateMode. Det hämtar varje SecretKnockInterval [N] och SecretKnockNumber sparas i EEPROM.

CompareKnocks() först avgör om KnockNnumber sparas i GetKnock() lika med MaxKnockNumber tillåtet (10). i så fall öppnas rutan. Detta är ett sätt att öppna en låda när du är utelåst.

Den här funktionen beräknar nästa, om KnockNumber från GetKnock lika med SecretKnockNumber retieved från EEPROM. Om inte, ErrorFlag ligger och returnerar funktionen.

Om OK, Hämtad de funktionen jämför varje KnockInterval sparas i GetKnock() till varje SecretKnockInterval från EEPROM. Om inte motsvarar, inom den tolerans som i Delta, ligger ErrorFlag; annars returnerar funktionen med ingen ErrorFlag.

BlinkLED() och FlashLED() är enkla, korta rutiner som gör bara vad de säger.

Se Steg
Relaterade Ämnen

Decoupaged Treasure Box

detta gamla, unkna bestick fall var avsedd för soptippen innan jag bestämde mig att göra det till en "Mom's Treasure Box". Jag älskar att ge saker ett andra liv... Jag för evigt rotade runt på skräp butiker - mycket till att roa min familj.Jag h...

Treasure box

1) gjorde jag en skattkista av popsicle pinnar. Ursprungligen gjorde jag det för ett skolprojekt. Mitt mål var att göra något som jag faktiskt kunde använda och göra min egen. Från tidigare projekt hade jag redan popsicle pinnar och måla så jag ville...

Intel® Edison Hands-on dag 7: Lysande Treasure Box

Självlysande skattkista, namnet låter kul. Och det skulle vara riktigt roligt! Vi kommer att göra denna box, som kommer att vara stängd under dagen, en gång i natt, dess ljus får ljusare med rutan öppnas långsamt. Ha-ha... det inre arbetet i rutan är...

Arduino 12-mode Blue Box - introduktion

FIRMWAREUPPDATERING! -10/2/2015 - se sista steget för DetaljerPresenteras här är en Arduino-baserad "Blå Box". Det producerar "traditionella" Blue Box 2600 Hz tonen och MF (Multi frequency) toner, men inte mycket mer! Det producerar oc...

Arduino säkerhet relä Box med vägguttaget

Ett relä är en elektriskt manövrerade växel. Många reläer använda en elektromagnet att mekaniskt driva växeln och tillhandahålla elektrisk isolering mellan två kretsar. I detta projekt finns det inget verkligt behov av att isolera en krets från den a...

Arduino hem Automation utlopp Box

DESS GJORT! KOLLA IN VIDEON I DET SISTA STEGET!Så i min lägenhet vi ska ha en växlade utlopp så att du kan tända ett ljus så snart du anger lägenheten. Jag har kunnat hitta nämnda utlopp. Så jag tänkte att jag äntligen skulle hitta en "permanent"...

Arduino--Analog läsning box

jag gjorde denna box till min musik till vår skola. Detta är endast handledning för rutan, inte för att spela melodin. IT´s baserad på seriellt anslutna växlar.Du behöver:Vissa tråd6 x switch1 x LED1 x 330 ohm motstånd5 x 2000 ohms motstånd (etc.)1 x...

Familjeberättelser Treasure Box

Semestern kommer och det är en perfekt tid att bygga en familj berättelser-skattkista! De flesta människor gillar att berätta historier och uppdatera alla på vad som händer i familjen under semester sammankomster. När vi alla blir äldre berättelser ä...

2 x 4 Enchanted Treasure Box

Ja nu har du gjort det. Är det nästan jul och du glömde "någons" gåva. Innan din hänga vägra ditt huvud i skam, att acceptera nederlaget. Ta en promenad till garaget. Du kan hitta:-en 2 x 4-en tum av 1/4" pluggen-en fyrkantig bit av 1/4&quo...

Hidden Treasure Box - inläggningar trä låda med dolda fack

detta fält har en inläggningar trä exteriör med en anpassad mermaid design, vadderat satin foder och hemliga fack i botten som hålls stängda magnetiskt och bara öppnas om du vet hur man gör. Jag tittade på en hel del historiska möbler för inspiration...

Maya Rubik's Treasure Box

i detta Instructable kommer jag visa dig hur du sätter en plast Treasure Chest Rubiks kub i en trä en.Denna kub avslöjar dess insida när det är löst. Bara gömma dina hemliga budskap och en bräcklig glasflaska med en giftig gas som kommer att släppas,...

Hemliga Monster Treasure Box

denna oskyldiga letar fyllda monster leksak är faktiskt en hemlig skattkista. Detta projekt är ganska enkelt om du vet hur att sy, och kräver inte en hel del material. Väggen kassaskåp bakom bilder, ihåliga böcker, stål arkivskåp; Varför inte ett upp...

DIY Arduino automatisk växa Box

Jag har alltid velat göra ett lite större Arduino projekt från grunden.Jag beslutade därför att göra denna växa låda. Detta är kanske mer som en '' ser vad jag gjort '' i stället för en Instructable, men jag ska försöka att göra det som en Instructab...

Arduino värdelös Box

Vad är i rutan???Gör det något???Kommer det att skada mig???Tryck bara på switch killarna!!! Ingenting kommer att skada dig, kanske...Verkligen nu, detta projekt handlar om en låda med en Arduino i den. Det gör ingenting. Bokstavligen. Det är på dåli...

Treasure Box för att dela pengar och dokument och övrigt

om du är en upptagen arbetstagare bara ordna dina pengar och dokument och olika andra sakerSteg 1: App Ladda ner denna fantastiska app kallas 123D design och är gratis!Steg 2: Rutan 1 - Lägg till en kub och storlek det sätt du vill och bara ihåliga d...

Tampong Treasure Box

letar efter ett enkelt sätt att dölja din omhuldade varor, såsom pengar, smycken eller godis?Du har kommit till rätt ställe! Denna metod för slängkappa dina värdesaker är mest effektiva med män som lady produkter tenderar att göra dem våndas.Steg 1:...

Lilla Treasure Box

jag ville bara dela en av min återvinningsbara julklappar som jag gav till min mamma. För basen använde jag en mini flingpaket och tidningen urklippen för att dekorera det yttre lagret av det. Jag använde ett verktyg bit från min pappas samling för a...

Arduino Vocal effekter Box

Detta Arduino-powered vocal effekter box pitch skiftar och snedvrider inkommande ljudsignalerna att producera ett brett utbud av vocal effekter. Detta projekt är min första experiment med realtid digital signalbehandling med Arduino. Det tar prov en...

Trådlös programmering av Arduino

jag har byggt upp robotar för ett par år nu och en av de saker som jag har hittat mest frustrerande är under testning och felsökning. Det verkar alltid finnas ett behov av en USB-kabel som kan komma i vägen och begränsa avståndet som din robot eller...