Arduino klop-klop schatkistje (8 / 10 stap)

Stap 8: Download de Sketch-bestand en verplaats het naar uw schetsboek

Het bestand van de schets is op Dropbox. Het heet KnockKnockTreasureBox_9.ino dit is een kopie van hetzelfde bestand dat is in mijn schetsboek.
Gebruik deze link om te downloaden: https://www.dropbox.com/s/a0dqwk3ziauz2ir/KnockKnockTreasureBox_9.ino
Kopiëren of verplaatsen van dit bestand van uw downloadmap naar uw schetsboek.
Klik in de Arduino IDE op schetsboek. Klik op KnockKnockTreasureBox_9 om het te bekijken.

De schets is zwaar heeft gereageerd en ontworpen voor gemakkelijke lezing door iedereen die vertrouwd is met Arduino codering.

Het maakt gebruik van twee bibliotheken: Servo.h en EEPROM.h

Op de meeste plaatsen is een variabele naam gebruikt in plaats van de waarde die ik gebruikte. De waarde kan dus gemakkelijk worden gewijzigd, waar de variabelen zijn getypt en gedefinieerd. Bijvoorbeeld, worden Uno poorten genoemd dan genummerd in de code.

Het sterke gebruik maakt van functies. Dit houdt het hoofdprogramma [loop] eenvoudig omdat het opgeroepen functies die duidelijk worden genoemd en waarin de details van de schets worden uitgevoerd.

Het hoofdprogramma volgt aanbieding. Het is niet voor compilatie, maar wordt gepresenteerd in bijna dat formulier voor uw begrip. De functies zijn vet lettertype voor eenvoudige erkenning en worden beschreven na het hoofdprogramma aanbieding.

HOOFDPROGRAMMA: Void loop {}

CheckBattery() / /Flashes blue als batterij moet worden vervangen en zal niet overgaan.

[Als deksel open overschakelt Ga naar ProgramMode]

Anders goto OperateMode

ProgramMode:

[De servo ontgrendelen en licht de groene LED]

AwaitGoAhead() //Waiting voor de gebruiker indrukt deksel voor 5 sec om meer veilig programmeren.

ReadyToProgram: //A goto adres

GetKnock() //Wait voor gebruiker klopt, nummer en tijd tussen elk, test voor wettigheid, bepalen

Als ErrorFlag == 1 //Set vlag als illegale,

FlashLED() //Flash LED.

goto //Try weer ReadyToProgram

StoreSecretKnock() //Store secret knock gegevens in EEPROM

BlinkLED() //Blink LED te tonen gegevens zijn opgeslagen.

ProgramDwell: de reactie van de doos van het //Disable op verdere deksel sluitingen en stoten.

goto ProgramDwell

OperateMode:

[Vergrendelen van het vak en de rode LED licht]

GetKnock()

Als ErrorFlag == 1

FlashLED()

goto OperateMode

GetSecretKnock() //Retrieve gegevens uit de EEPROM

CompareKnocks() //Compare knock nummer en spaties voor gebruiker knock vs geheime knock.

Als ErrorFlag == 1 //Set vlag indien verschillend, en LED flash.

FlashLED()

goto //Try weer OperateMode

[Anders, licht de groene LED en ontgrendelen van het vak]

Wonen: //Disable vak reactie op verdere stoten of deksel sluitingen.

goto Dwell

FUNCTIES

CheckBattery() leest de 0-1023 lezing van analoge poort A1 en zet deze om in volt.

Als spanning kleiner dan 7V is begint de blauwe LED knippert en bevriest het programma in deze toestand totdat de stroom is uitgeschakeld. Echter, als spanning minder dan 5V is het vak wordt USB-aangedreven, dus blauw knipperen is uitgeschakeld.

AwaitGoAhead() zintuigen deksel sluiting, wacht 5 seconden, knippert de LED, wacht op het deksel te openen, keert vervolgens terug naar hoofdprogramma.

GetKnock() heet in zowel programma en Operate modi. Het berekent en bewaart het tijdsinterval tussen elke knock. Het bepaalt ook als de tijd toegestaan voor kloppen of het maximum aantal stoten heeft geschonden, in welk geval het een ErrorFlag ingesteld.

Het wacht totdat de amplitude van een klop op de analoge poort A0 vastgestelde drempel overschrijdt.

Wanneer de eerste knock (N = 0) treedt op het leest kloktijd en bewaart het in de tijd [N]-matrix als tijd [0]. Het ook knippert de LED.

Kloktijd voortdurend wordt gelezen en VerstrekenTijd berekend
Als de klok-tijd [0].

Verstreken tijd overschrijdt de toegestane tijd om stoten te proberen, en slechts één puls is geconstateerd, de ErrorFlag is ingesteld als de functie als resultaat. Anders retourneert de functie met geen set ErrorFlag.

Voor elke knock (N) gedetecteerd na de eerste knock, is VerstrekenTijd opgeslagen, zoals tijd [N], en de LED is knipperde.

Als het aantal stoten overschrijdt de toegestane (10), de ErrorFlag is ingesteld en de functie als resultaat.

Als er staan geen fouten, klop elk interval (Time [N] – Time[N-1]) wordt opgeslagen in de matrix KnockInterval [N], en wanneer toegestane VerstrekenTijd is bereikt, retourneert de functie.

StoreSecretKnock() heet in ProgramMode. Het wordt opgeslagen in EEPROM elke KnockInterval [N] opgeslagen in GetKnock(), evenals de totale KnockNumber. Deze worden opgeslagen als SecretKnockInterval [N] en SecretKnockNumber.

GetSecretKnock() heet in OperateMode. Elke SecretKnockInterval [N] worden opgehaald en SecretKnockNumber opgeslagen in EEPROM.

CompareKnocks() bepaalt eerst of de KnockNnumber opgeslagen in de GetKnock() gelijk is aan de MaxKnockNumber toegestaan (10); Als dat zo is, wordt het geopend. Dit is een manier om een doos open wanneer u zijn vergrendeld.

Deze functie bepaalt vervolgens als KnockNumber van GetKnock is gelijk aan de retieved van de SecretKnockNumber vanaf EEPROM. Als dat niet het geval is, de ErrorFlag is ingesteld en de functie als resultaat.

Als OK, de functie vergelijkt die elke KnockInterval in GetKnock() op elk SecretKnockInterval opgeslagen opgehaald vanaf EEPROM. Als niet gelijk aan binnen de tolerantie die is ingesteld in de Delta, is de ErrorFlag ingesteld; anders retourneert de functie met geen ErrorFlag set.

BlinkLED() en FlashLED() zijn eenvoudige, korte routines die doen gewoon wat ze zeggen.

Gerelateerde Artikelen

KLOP met behulp van ARDUINO

KLOP met behulp van ARDUINO

KlopDeze tutorial toont je hoe gebruik een piëzo-element te detecteren van trillingen, in dit geval, een klop op een deur, tabel of andere stevige ondergrond.Een piëzo is een elektronisch apparaat dat een spanning genereert wanneer het fysiek misvorm
Open uw deur met een speciale klop met Arduino, Android telefoon- en 1Sheeld

Open uw deur met een speciale klop met Arduino, Android telefoon- en 1Sheeld

Nu u niet meer, de sleutel gebruiken met dit eenvoudige project die u en ieder lid van uw gezin kunnen openen uw deur zonder sleutel en ook u zal niet elke keer naar de deur te openen, kunt u het openen vanaf elke plek, alles wat je wilt is uw Androi
Knock vak (het wordt geopend wanneer u klop op het!)

Knock vak (het wordt geopend wanneer u klop op het!)

Hi! Dit is mijn eerste Instructable. Laten we beginnen!Het idee was om een vak dat wordt geopend als u klop op het met het juiste ritme te maken. Het wellicht niet zo nuttig, maar het is een grote kans om te leren verder Arduino en maken iets ontzagw
Klop, klop, Neo.

Klop, klop, Neo.

Iedereen minstens één keer de Matrix batch-bestand (degene die willekeurige toont getallen in bat bestand) heeft gemaakt.Zo dacht ik dat ik een bestand dat iets anders doet zou kunnen maken.U zou kunnen denken aan de scène waar Neo is gecontacteerd v
Oma's 1 stap klop je op je kont Chili

Oma's 1 stap klop je op je kont Chili

Dit chili zal u letterlijk knock op je kont het is zo goed.Stap 1: Spullen die u nodig hebt Ingrediënten:1 1/2 pond rundergehakt uitgelekt en gekookt3 blikjes van chili bonen2 15 ounce blikjes van chili klaar tomatenmespuntje cacaopoeder2 blikken van
"Klop Me Away" (Vintage keuken gereedschap ketting)

"Klop Me Away" (Vintage keuken gereedschap ketting)

ik had een geweldige tijd met deze vintage kralen combineren met een antieke garde. Je moet echt gespierd of vastbesloten zijn om enkele van deze oude vondsten. Ze waren gemaakt van sterk metaal.Stap 1: Winkelen bij ongewenste winkels en rommelmarkte
Klop de Take Away - kip Kebab voor Lazy (maar gezonde) mensen

Klop de Take Away - kip Kebab voor Lazy (maar gezonde) mensen

dus het idee voor dit uit het feit komt dat ik heb af en toe een verlangen naar een Kebab, maar ben over het algemeen altijd teleurgesteld in de maaltijd die ik met om verschillende redenen eindigen.De huidige tendens voor de lokale take-away restaur
Arduino | 37 in 1 sensoren Kit uitgelegd

Arduino | 37 in 1 sensoren Kit uitgelegd

Hallo daar, Arduino enthousiastelingen!In dit Instructable zal ik uitleggen de basics over alle individuele sensoren in the "37 In 1 sensoren Kit voor Arduino".Elke stap bevat een klein beetje informatie over een sensor en een basic-code zal wor
Arduino Tutorial - Easy geheime knock detector

Arduino Tutorial - Easy geheime knock detector

In dit project bouw ik een circuit met een Led en een piezo te functioneren als een in- en uitschakelen een Led wanneer zij ontvangt een aantal kloppen van geluiden binnen een bepaald bereik.Stap 1: Dingen die je moet HardwareLEDDiode (Zener 5.1v).Pi
Arduino - CLAP SWITCH - SOUND CONTROL SWITCH

Arduino - CLAP SWITCH - SOUND CONTROL SWITCH

Hallo mensen! Vandaag maakte ik een klap schakelen met een DIY geluidbeheersing module. Ik gesoldeerd de Sound control Module een paar maanden geleden, en vandaag heb ik besloten om te controleren als het werkt, en het doet. Ik had een harde tijd om
Arduino animatronics-Maak uw geweldige kostuums meer awesome!

Arduino animatronics-Maak uw geweldige kostuums meer awesome!

Hier is hoe te het licht, geluid en actie toevoegen aan uw favoriete Halloween-project met behulp van de opensource Arduino microcontroller. Arduino is gemakkelijk te leren te gebruiken en het opent een hele nieuwe wereld voor kostuum bouwers en sche
Vacuüm vorm een arduino/elektronica behuizing

Vacuüm vorm een arduino/elektronica behuizing

als u toegang tot een vacuüm voormalige hebt, of hebben opgebouwd een DIY een gebruiken, gewoon vacuüm vorm een compacte behuizing naar het huis van uw standalone elektronica of arduino project.Ik heb dit gemaakt op techshop! www.techshop.WSStap 1: M
Arduino xylofoon

Arduino xylofoon

Ik maakte een xylofoon die gebruikmaakt van een Arduino Mega detecteren wanneer er een opmerking is geslagen en genereren van MIDI-uitgang. Dit project is wondeful omdat ik in wezen een xylofoon, een drumkit, en andere MIDI gecontroleerd geluid instr
Arduino licht & Knock opsporen deurslot

Arduino licht & Knock opsporen deurslot

dit is een geweldige gadget voor een geheime clubhuis en voor mensen zoals ik die altijd lijken te verliezen hun sleutels! Dit project is gebaseerd op de oorspronkelijke Secret Knock Lock instructable Grathio (hieronder beschikbaar) met de volgende b