La caja del tesoro Arduino Knock-Knock (8 / 10 paso)

Paso 8: Descargue el archivo de dibujo y moverlo a su carpeta de bocetos

El archivo de dibujo está en Dropbox. El nombre KnockKnockTreasureBox_9.ino se trata de una copia del mismo archivo que está en mi cuaderno de bocetos.
Use este enlace para descargar: https://www.dropbox.com/s/a0dqwk3ziauz2ir/KnockKnockTreasureBox_9.ino
Copiar o mover este archivo desde la carpeta de descarga a su Sketchbook.
En el Arduino IDE haga clic en libro de bocetos. Haga clic en KnockKnockTreasureBox_9 para verlo.

El bosquejo es comentado y diseñado para facilitar la lectura por cualquiera que esté familiarizado con la codificación de Arduino.

Utiliza dos librerías: Servo.h y EEPROM.h

En muchos lugares se utiliza un nombre de variable en lugar del valor de que utilizado. Así el valor puede cambiarse fácilmente donde las variables se ha escrito y definidas. Por ejemplo, puertos Uno son llamados en lugar de números en el código.

Hace fuerte uso de las funciones. Esto evita que el programa principal [loop()] simple porque llama a las funciones que son claramente el nombre y en el que se logran los detalles del bosquejo.

El programa principal sigue el listado. No es para la compilación, pero se presenta casi para su comprensión. Las funciones son fuente en negrita para el fácil reconocimiento y se describen siguiendo el listado principal del programa.

PRINCIPAL programa: Void loop() {}

CheckBattery() / /Flashes azul si la batería necesita reemplazarse y no procederá.

[Si la tapa del interruptor abierto ir a ProgramMode]

Else goto OperateMode

ProgramMode:

[Desbloquear el servo y enciende el LED verde]

AwaitGoAhead() //Waiting para el usuario al presionar la tapa durante 5 segundos activar la programación más segura.

ReadyToProgram: //A goto dirección

GetKnock() //Wait para usuario golpes, determinar el número y el tiempo entre cada uno, test de legalidad,

Si ErrorFlag == 1 bandera //Set si ilegal,

FlashLED() //Flash LED.

Goto ReadyToProgram //Try otra vez

StoreSecretKnock() //Store secreto llamar datos en EEPROM

BlinkLED() //Blink LED para mostrar los datos se almacenan.

ProgramDwell: //Disable respuesta de caja a la tapa más cierres y golpes.

Goto ProgramDwell

OperateMode:

[La caja de la cerradura y el LED rojo de luz]

GetKnock()

Si ErrorFlag == 1

FlashLED()

Goto OperateMode

GetSecretKnock() //Retrieve datos de EEPROM

CompareKnocks() //Compare llamo número y espaciamientos para golpe secreto del usuario golpe vs.

Si ErrorFlag == 1 bandera //Set si es diferente, y flash LED.

FlashLED()

Goto OperateMode //Try otra vez

[, Enciende el LED verde y la caja]

Permanencia: //Disable caja ante más golpes o cierres de la tapa.

Goto de la detención

FUNCIONES

CheckBattery() Lee 0-1023 puerto A1 lectura de análogo y lo convierte en voltios.

Si el voltaje es inferior a 7V empieza a parpadear el LED azul y se congela el programa en este estado hasta que se apaga. Sin embargo, si el voltaje es menor que 5V la caja está siendo alimentado por USB, para destellar azul está deshabilitado.

AwaitGoAhead() sentidos tapa cierre, esperas 5 segundos, parpadea el LED, espera poder abrir, tapa entonces vuelve al programa principal.

GetKnock() se llama en modo de programa y operar. Calcula y guarda el intervalo de tiempo entre cada golpe. También determina si el tiempo permitido para golpear o el número máximo de golpes permitido ha sido violado, en cuyo caso establece una ErrorFlag.

Espera hasta que una amplitud de knock en el puerto analógico A0 supera el umbral establecido.

Cuando el primer golpe (N = 0) ocurre lee la hora del reloj y guarda en el array de tiempo [N] tiempo [0]. También parpadea el LED.

Constantemente se lee la hora del reloj y ElapsedTime computada
como reloj de tiempo [0].

Si el tiempo transcurrido sobrepasa el tiempo permitido para tratar golpes, y se detectó sólo un impulso, se encuentra el ErrorFlag y la función devuelve. De lo contrario la función devuelve con ningún conjunto ErrorFlag.

Por cada golpe (N) detectado tras el primer golpe, ElapsedTime se guarda como tiempo [N] y el LED se parpadeó.

Si el número de golpes supera el máximo permitido (10), se encuentra el ErrorFlag y la función devuelve.

Si no hay ningún error, cada golpe de intervalo (tiempo de [N] – Time[N-1]) se guarda en la matriz KnockInterval [N], y alcanzado ElapsedTime permitió la función devuelve.

StoreSecretKnock() se llama en ProgramMode. Almacena en la EEPROM cada KnockInterval [N] guardado en GetKnock(), como KnockNumber total. Estas se almacenan como SecretKnockInterval [N] y SecretKnockNumber.

GetSecretKnock() se llama en OperateMode. Recupera cada SecretKnockInterval [N] y SecretKnockNumber guardado en la EEPROM.

CompareKnocks() primero determina si la KnockNnumber en GetKnock() es igual a la MaxKnockNumber permitido (10); Si es así, la caja se abrirá. Esto es una forma para abrir un cuadro de cuando está bloqueadas.

A continuación, esta función determina si KnockNumber de GetKnock es igual a la SecretKnockNumber retieved de EEPROM. Si no, se encuentra el ErrorFlag y la función devuelve.

Si bien, el compara de función que cada KnockInterval guardado en GetKnock() para cada SecretKnockInterval Obtenido de EEPROM. Si no igual, dentro de la tolerancia en Delta, se encuentra el ErrorFlag; de lo contrario la función devuelve ningún conjunto de ErrorFlag.

BlinkLED() y FlashLED() son rutinas simples, cortas que hacen lo que dicen.

Artículos Relacionados

La caja del tesoro RFID

La caja del tesoro RFID

Una caja con lector rfid, pantalla lcd y servo para abrir un cerrojo. Construido como una caza del tesoro para una fiesta de cumpleaños de la hija de 7 años.Los niños tuvieron que recoger cinco tarjetas de RFID y los pase en un orden correcto sobre l
Intel® Edison Hands-on día 7: La caja del tesoro luminoso

Intel® Edison Hands-on día 7: La caja del tesoro luminoso

La caja del tesoro luminoso, el nombre suena divertido. Y que sería la verdadera diversión! Vamos a hacer esta caja, que estará cerrada durante el día, una vez en la noche, su luz conseguirá más brillante con el cuadro que se abre lentamente. Ha-ha..
La caja del tesoro

La caja del tesoro

1) hice una caja de tesoro de palitos. Originalmente lo hice para un proyecto escolar. Mi objetivo era hacer algo que realmente podría utilizar y hacer mi propio. De proyectos previos ya tenía pintura y palitos así que quería algo con los suministros
Caza del tesoro Arduino

Caza del tesoro Arduino

Siempre me han gustado películas como tesoro nacional y similares. Que cuenta con un equipo de personas que se están ejecutando por todas partes tratando de resolver un acertijo o una serie de acertijos para conseguir el oro, conseguir que la chica,
Tabla de surf CelluClay la caja del tesoro diseñado por Lisa Fulmer para los productos ACTIVA

Tabla de surf CelluClay la caja del tesoro diseñado por Lisa Fulmer para los productos ACTIVA

Esta caja de maché de papel lindo y colorido es lo suficientemente fuerte como para sostener a todo tipo de tesoros! Utilizar para la joyería en su mesita de noche, clips de papel o marcadores en su escritorio, o incluso Q-tips en el cuarto de baño.
Encantado de 2 x 4 la caja del tesoro

Encantado de 2 x 4 la caja del tesoro

Bueno, ahora lo has hecho. Es casi Navidad y se olvidaron "de alguien" regalo. Antes de su caída tu cabeza en vergüenza, se niegan a aceptar la derrota. Dar un paseo hasta el garaje. Puede usted encontrar:-un 2 x 4-una pulgada de 1/4" espig
La caja del tesoro tocino

La caja del tesoro tocino

esta es mi caja de tesoros de tocino,¿Quién no quiere despertar a un tesoro?Este cuadro se llena de huevos y monedas hechas de queso.Paso 1: Lo que usted necesita NecesidadesHoja-del interior estructura de la cajaHuevos-para el oro dentro, yarrrrrrrr
La caja del tesoro decoupaged

La caja del tesoro decoupaged

este caso vieja, mohosa cubiertos estaba destinada a la descarga antes de que decidí convertirla en una "caja de tesoro de mamá".   Me encanta darle cosas una segunda vida... Siempre estoy rebuscando alrededor en las tiendas de chatarras - mucho
La caja del tesoro Maya de Rubik

La caja del tesoro Maya de Rubik

en este Instructable voy a mostrarte cómo hacer un plástico cubo de Rubik pecho tesoro de una de madera.Este cubo revela su interior una vez que se resuelve. Sólo se esconden su mensaje secreto y una ampolla de vidrio frágil con un gas venenoso que s
Pecho en forma de "Sierra" anillo de compromiso de la caja del tesoro

Pecho en forma de "Sierra" anillo de compromiso de la caja del tesoro

"Tesoro" en forma de Sierra de cinta estilo anillo de compromiso de la caja de Chechenia laminado y madera purpleheart. La "almohada" fue hecha de una pieza de espuma envuelta en un viejo bolso de las gafas de sol. El cuadro fue acabad
La caja del tesoro monstruo secreto

La caja del tesoro monstruo secreto

este juguete de peluche monstruo aspecto inocente es realmente un tesoro secreto. Este proyecto es bastante sencillo si sabes coser y no requiere mucho material. Cajas fuertes de pared detrás de cuadros, libros huecos, archivadores de acero; ¿por qué
¿Tapón de la caja del tesoro

¿Tapón de la caja del tesoro

en busca de una forma sencilla de ocultar su mercancía preciada, como dinero, joyas o dulces?Has llegado al lugar correcto! Este método de ocultación de sus objetos de valor es más efectiva con los hombres como señora tiende a hacerlos retorcerse.Pas
Caja de la receta del tesoro

Caja de la receta del tesoro

Este instructable tiene raíces en una tarea para la escuela.Necesitábamos hacer algo útil de una caja de cartón, pero mantener la conexión con el contenido de la caja y utilizar la tecnología.Elegí trabajar con la caja de mi licuadora.Como estudiante
Desconcierto del tesoro abre usando twitter y energía inalámbrica

Desconcierto del tesoro abre usando twitter y energía inalámbrica

Un regalo sorprendente! Mi "víctima" se da tres cajas:Una caja muy pequeña encerrados con cadenas y un candado.Una pequeña caja cerrada con ningunos bolsas de exterior, que está cerrada y tiene una tapa superior reflexiva.Una gran pirata-y la ca