Arduino Knock-Knock Treasure Box (8 / 10 étapes)

Etape 8: Télécharger le fichier esquisse et le mettre dans votre carnet de croquis

Le fichier de schéma est sur Dropbox. Il est nommé KnockKnockTreasureBox_9.ino, il s’agit d’une copie du même fichier qui est dans mon carnet de croquis.
Utilisez ce lien pour télécharger : https://www.dropbox.com/s/a0dqwk3ziauz2ir/KnockKnockTreasureBox_9.ino
Copier ou déplacer ce fichier dans votre dossier de téléchargement dans votre carnet de croquis.
Dans l’IDE Arduino, cliquez sur Carnet de croquis. Cliquez ensuite sur KnockKnockTreasureBox_9 pour la voir.

L’esquisse est fortement commentée et conçue pour faciliter la lecture par quiconque est familier avec le codage de l’Arduino.

Il utilise deux bibliothèques : Servo.h et EEPROM.h

Dans la plupart des endroits, un nom de variable est utilisé plutôt que la valeur que j’ai utilisé. Ainsi la valeur peut facilement être modifiée où les variables sont typées et définis. Par exemple, Uno ports sont nommés non numérotés dans le code.

Il fait un usage fort de fonctions. Cela empêche le programme principal [loop()] simple parce qu’elle appelle des fonctions qui sont clairement nommé et où sont accomplies les détails de l’esquisse.

Le programme principal énumérant les suit. Il n’est pas pour la compilation mais est présenté près cette forme pour votre compréhension. Les fonctions sont des caractères gras pour une reconnaissance facile et sont décrites après la liste principale du programme.

PROGRAMME principal : Void loop() {}

CheckBattery() / /Flashes bleu si la batterie doit être remplacée et ne donnera pas suite.

[Si le couvercle interrupteur ouvert aller à ProgramMode]

Else goto OperateMode

ProgramMode :

[Débloquer le servo et allumer la LED verte]

AwaitGoAhead() //Waiting pour l’utilisateur d’appuyer sur le couvercle pendant 5 s permettre une programmation plus sûre.

ReadyToProgram : //A goto adresse

GetKnock() //Wait pour l’utilisateur frappe, déterminer le nombre et le temps entre chaque, test de la légalité,

Si ErrorFlag == 1 //Set drapeau si illégal,

FlashLED() //Flash LED.

Goto ReadyToProgram //Try nouveau

StoreSecretKnock() //Store secret knock données en EEPROM

BlinkLED() //Blink LED pour afficher les données ont été stockées.

ProgramDwell : //Disable réponse de boîte à couvercle autres fermetures et des chocs.

Goto ProgramDwell

OperateMode :

[Bloquer la boîte et allumer la LED rouge]

GetKnock()

Si ErrorFlag == 1

FlashLED()

Goto OperateMode

GetSecretKnock() //Retrieve données d’EEPROM

CompareKnocks() //Compare frapper nombre et espacements l'on frappe secrète de l’utilisateur knock vs.

Si ErrorFlag == 1 drapeau de //Set si elle est différente, et le flash LED.

FlashLED()

Goto OperateMode //Try nouveau

[Else, allumer la LED verte et déverrouiller la boîte]

Arrêt : //Disable boîte en faveur des coups supplémentaires ou de fermeture du couvercle.

Goto Dwell

FONCTIONS

CheckBattery() lit la 0-1023 lecture analogique port A1 et le convertit en volts.

Si la tension est inférieure à 7V, il commence à clignoter la LED bleue et gèle le programme dans cet état jusqu'à ce que l’alimentation est coupée. Toutefois, si la tension est inférieure à 5 v la boîte est d’être alimenté par USB, bleu clignotant est donc désactivée.

Clignotements de la LED, attend le couvercle pour ouvrir, AwaitGoAhead() sens couvercle fermeture, attend pendant 5 secondes, puis retourne sur le programme principal.

GetKnock() est appelé en mode programme et Operate. Il calcule et enregistre l’intervalle de temps entre chaque coup. Il détermine également si le délai accordé pour frapper ou le nombre maximal de coups autorisés a été violée, dans ce cas, il définit une ErrorFlag.

Il attend jusqu'à ce qu’une amplitude de frapper sur le port analogique A0 dépasse la valeur programmée.

Quand le premier knock (N = 0) se produit il lit l’heure de l’horloge et l’enregistre dans le tableau de temps [N] dans le temps [0]. Il clignote aussi la LED.

Heure de l’horloge est constamment lu et ElapsedTime calculée
comme horloge-temps [0].

Si le temps écoulé dépasse le temps imparti pour essayer les coups, et seulement une impulsion a été détectée, le ErrorFlag a la valeur et la fonction renvoie. Sinon, la fonction retourne avec aucun ErrorFlag set.

Pour chaque coup (N) détecté après le premier coup, ElapsedTime est enregistré comme temps [N] et la LED est cligna des yeux.

Si le nombre de coups est supérieure au maximum autorisé (10), le ErrorFlag a la valeur et la fonction renvoie.

S’il n’y a pas d’erreurs, chacun frapper intervalle (temps [N] – Time[N-1]) est enregistré dans le tableau KnockInterval [N] et lorsque ElapsedTime autorisée est atteinte la fonction renvoie.

StoreSecretKnock() est appelé ProgramMode. Il stocke dans l’EEPROM chaque KnockInterval [N] enregistrée dans GetKnock(), comme KnockNumber total. Ceux-ci sont stockés comme SecretKnockInterval [N] et SecretKnockNumber.

GetSecretKnock() est appelé OperateMode. Il récupère chaque SecretKnockInterval [N] et SecretKnockNumber enregistrées dans l’EEPROM.

CompareKnocks() détermine d’abord si le KnockNnumber enregistré dans GetKnock() est égale à la MaxKnockNumber permis (10) ; dans l’affirmative, la boîte s’ouvre. Il s’agit d’un moyen d’ouvrir une boîte lorsque vous êtes enfermé.

Ensuite, cette fonction détermine si KnockNumber de GetKnock est égale à la retieved de SecretKnockNumber de l’EEPROM. Si ce n’est pas le cas, le ErrorFlag a la valeur et la fonction renvoie.

Si OK, la compare de fonction que chaque KnockInterval enregistré dans GetKnock() à chaque SecretKnockInterval Récupérée de l’EEPROM. Si différent, de la tolérance dans le Delta, la ErrorFlag est définie ; Sinon, la fonction retourne avec aucun ensemble de ErrorFlag.

BlinkLED() et FlashLED() sont des routines simples et courtes qui font tout ce qu’ils disent.

Articles Liés

Arduino 12-mode Blue Box - Introduction

Arduino 12-mode Blue Box - Introduction

MISE À JOUR DU FIRMWARE ! -10/2/2015 - voir dernière étape pour plus de détailsPrésenté ici est axée sur un Arduino « Boîte bleue ». Il produit la boîte bleue « traditionnelle » tonalité de 2600 Hz et tonalités MF (multi-frequency), mais il fait bien
Hidden Treasure Box - boîte en bois marqueté avec compartiment caché

Hidden Treasure Box - boîte en bois marqueté avec compartiment caché

cette boîte a un bois marqueté extérieur avec un design personnalisé de sirène, rembourré doublure en satin et un compartiment secret dans le fond qui est maintenue fermé par magnétisme et unique s'ouvre si vous savez comment le faire. J'ai regardé b
Histoires de famille Treasure Box

Histoires de famille Treasure Box

Les vacances approchent et c'est le moment idéal pour construire une boîte à Trésor des histoires de famille !  La plupart des gens aiment raconter des histoires et de mettre à jour tout le monde sur ce qui se passe dans leur famille durant les renco
2 x 4 enchanté Treasure Box

2 x 4 enchanté Treasure Box

Eh bien maintenant vous l'avez fait. C'est presque Noël et vous avez oublié le cadeau « de quelqu'un ». Avant votre coup votre tête dans la honte, refuser d'accepter la défaite. Faire une promenade jusqu'au garage. Vous trouverez :-un 2 x 4-un pouce
Treasure Box pour divisant argent et Documents et autres choses

Treasure Box pour divisant argent et Documents et autres choses

si vous êtes un travailleur occupé à organiser votre argent et vos documents et différentes autres chosesÉtape 1: L'App Télécharger cette application étonnante, il s'appelle conception 123D et est gratuit!!!Etape 2: La boîte 1 - ajouter un cube et re
Little Treasure Box

Little Treasure Box

je voulais juste partager un de mes cadeaux de Noël recyclables que j'ai donné à ma mère. Pour la base, j'ai utilisé une boîte de céréales mini et des coupures de magazines pour décorer la couche externe de celui-ci. J'ai utilisé un morceau de l'outi
Chasse au Trésor Arduino

Chasse au Trésor Arduino

J'ai toujours aimé les films comme Trésor National et autres. Ceux qui dispose d'une équipe de gens qui courent partout essayant de résoudre une énigme ou un chapelet de devinettes pour, obtenir l'or, téléchargez la jeune fille, sauver le monde, deve
Commandes Audio haut-parleur de Smartphone ATM-7 OSD avec Arduino et Billy

Commandes Audio haut-parleur de Smartphone ATM-7 OSD avec Arduino et Billy

Ces jours-ci, il y a plusieurs façons d'implémenter multizone son à l'aide de la commande de smartphone basé mais la plupart se limitent à quelques zones ou exige chers boîtes exclusives à chaque emplacement (Bonjour ! Sonos). Un sélecteur de haut-pa
Capteur d’Impact cible Arduino en acier

Capteur d’Impact cible Arduino en acier

J'ai commencé à faire des concours locaux de pratique fusil de précision à ma gamme à proximité et avoir un grand temps. Si vous n'êtes pas au courant, correspondances pratiques se différencient par la présence d'acier cibles sont différentes distanc
Contrôler un projet arduino via un android personnalisable / application Iphone avec Billy et Wemos D1 : 2016 SUPER NOOB FRIENDLY WAY

Contrôler un projet arduino via un android personnalisable / application Iphone avec Billy et Wemos D1 : 2016 SUPER NOOB FRIENDLY WAY

Le but de cette instructable est de vous apprendre à créer des projets d'arduino wifi connecté le plus simples et plus rapide façon possible. Si vous voulez faire un projet arduino qui vous pouvez de contrôler depuis votre smartphone et que seulement
Compartiment secret Bureau

Compartiment secret Bureau

J'avais été parcourant Instructables dans le passé de façons de faire des compartiments secrets, mais je voulais faire mon propre compartiment secret qui était unique. Oui, comme mon premier Instructable j'ai décidé de partager mon la conception de m
Contrôler n’importe quel appareil électrique ou lumineux avec vous tablette ou smartphone (wifi)

Contrôler n’importe quel appareil électrique ou lumineux avec vous tablette ou smartphone (wifi)

Contrôler n'importe quel appareil électrique ou lumineux avec vous tablette ou smartphone (wifi) à l'aide d'arduino, Billy et un wemos / ESP8266 ConseilDans ce tutoriel nous allons faire quelque chose j'ai appeler un wifi contrôlée ac switch. (Mais i
Espace-Rover à l’aide de Edison/Intel

Espace-Rover à l’aide de Edison/Intel

Rover d'entraînement automatique. Aller de l'avant par servo et recherche spatiale par dispositif capteur IR." Intel Edison à bord pour Arduino"ADC lire la tension du dispositif capteur IR puis convertir à distance. Edison à bord de l'appareil s
Hack-A-Toy, style blaster LED

Hack-A-Toy, style blaster LED

Hey, Bienvenue sur mon premier Instructable ! Ce projet est mon premier hack de jouets depuis que je suis un petit enfant, fusion des hommes de l'armée ensemble pour former, Eh bien, fondu des hommes de l'armée. Mon enfant ramasse des jouets en prove