Super caja de la cerradura de secreto con capacitiva táctil (2 / 3 paso)

Paso 2: código

Interrupciones pueden ser difíciles, pin digital 2 es también PCINT0. por esta razón el botón está conectado al pin 2 pero la interrupción se fija a 0.

#include < Servo.h >

#include < CapacitiveSensor.h >

#include < avr/sleep.h >

byte const rojo = 6;
byte const verde = 7;
azul const byte = 8;

pot1 byte const = A0;
pot2 byte const = A1;
pot3 byte const = A2;

botón de byte const = 2;

empresa1 int = 1;
Código 2 de int = 1;
code3 int = 1;

int pot_val1 = 0;
int pot_val2 = 0;
int pot_val3 = 0;

int button_val = 0;

tacto del int;

unsigned currentMillis largo = 0;
unsigned codeMillis largo = 0;
unsigned buttonMillis largo = 0;
unsigned sleepMillis largo = 0;

CapacitiveSensor cs_10_11 = CapacitiveSensor(3,4);

Servo myservo;

int sleepCounter = 0;
Boolean estado = bajo;

void setup()
{
Serial.Begin(9600);
pinMode (rojo, salida);
pinMode (verde, salida);
pinMode (azul, salida);
pinMode (botón, entrada);
pinMode (pot1, entrada);
pinMode (pot2, entrada);
pinMode (pot3, entrada);
cs_10_11.set_CS_AutocaL_Millis(20000);
digitalWrite (botón, HIGH);
attachInterrupt (interrupción 0, levantamiento);

}
void loop()
{
getPots(); leer valores de olla
mapAllPots(); ajustar a la escala correcta
Si (pot_val1 == empresa1 & & pot_val2 == Código 2 & & pot_val3 == código3) //if contraseña es correcta
{
Serial.println("Success!");
g(); led de luz verde
Unlock(); desbloquear el seguro
sleepNow(); Vete a dormir
}
otra cosa
{
Serial.println("Failure");
r(); enciende led rojo
}

currentMillis = millis();
button_val =! digitalRead(button); leer el valor del botón
Serial.println(button_val);
Serial.println(sleepCounter);

if(button_val == 1) //if botón, reprogramó los cronómetros.
{
sleepMillis = currentMillis;
codeMillis = currentMillis;
}

Si ((currentMillis-sleepMillis) > 20000) //if temporizador expira, ir a dormir
{
sleepMillis = currentMillis;
sleepNow();
}

contacto = highLow(cs_10_11.capacitiveSensor(30)); leer capacitancia y mapa a binario alto o bajo
Serial.println(Touch);
currentMillis = millis();
if(Touch == 1)
{
Si ((currentMillis-codeMillis) > 5000) //if touch es de 1 por 5 segundos
{
b(); luz azul de th conducido
storeCode(); almacenar código de valores de la olla
Delay(300);
codeMillis = currentMillis;
}
}
if(Touch == 0) //if no toque reiniciar el temporizador para evitar la acumulación de tiempo
{
codeMillis = currentMillis;
}

}

fin del bucle
////////////////////////////////

void interrupt()
{
currentMillis = millis();

Si ((currentMillis-buttonMillis) > 200)
{

buttonMillis = currentMillis;
}
}
void sleepNow() / / de aquí ponemos el arduino para dormir
{
OFF(); apagar todos los leds

set_sleep_mode(SLEEP_MODE_PWR_DOWN); modo de reposo se encuentra aquí

sleep_enable(); permite que el pedacito de sueño en el registro mcucr
por lo que el sueño es posible. solo un perno de seguridad

attachInterrupt (interrupción 0, levantamiento); utilizar interrupción 0 (pin 2) y ejecutar la función
wakeUpNow cuando pin 2 bajo
MCUCR = bit (BOD) | bit (BODSE); Encienda brown-out permite seleccionar
MCUCR = bit (BOD); Esto debe hacerse dentro de 4 ciclos de reloj de arriba

sleep_mode(); Aquí el dispositivo realmente se pone a dormir!!
EL PROGRAMA CONTINÚA AQUÍ DESPUÉS DE DESPERTAR

sleep_disable(); lo primero después de despertar del sueño:
desactivar el sueño...
detachInterrupt(0); deshabilita interrupción 0 en el pin 2 hasta el
no se ejecutará código wakeUpNow
durante el tiempo de funcionamiento normal

}
highLow int (sin firmar largo x)
{
Si (x > = 300)
{
retorno 1;
}
otra cosa
{
return 0;
}

}

void getPots()
{
pot_val1 = analogRead(pot1);
pot_val2 = analogRead(pot2);
pot_val3 = analogRead(pot3);
}
void mapAllPots()
{
pot_val1 = mapPot(pot_val1);
pot_val2 = mapPot(pot_val2);
pot_val3 = mapPot(pot_val3);
}
int mapPot (int en)
{
if (en > 1010) {}
retorno 1;
}
else if (de > 950) {}
retorno 2;
}
else if (en > 900) {}
retorno 3;
}
else if (en > 630) {}
retorno 4;
}
else if (en > 480) {}
Retorno 5;
}
else if (en > 190) {}
retorno 6;
}
else if (a > 80) {}
retorno 7;
}
else if (en > 30) {}
retorno 8;
}
else if (en > 3) {}
retorno 9;
}
}
void storeCode()
{
empresa1 = pot_val1;
Código 2 = pot_val2;
Code3 = pot_val3;
}
r() vacío
{
digitalWrite (rojo, alto);
digitalWrite (verde, baja);
digitalWrite (azul, bajo);
}
g() vacío
{
digitalWrite (rojo, baja);
digitalWrite (verde, alto);
digitalWrite (azul, bajo);
}
void b()
{
digitalWrite (rojo, baja);
digitalWrite (verde, baja);
digitalWrite (azul, alto);
}
off() vacío
{
digitalWrite (rojo, baja);
digitalWrite (verde, baja);
digitalWrite (azul, bajo);
}
unlock() vacío
{
myservo.Attach(9);
myservo.Write(75);
Delay(750);
myservo.Write(96);
Delay(250);
myservo.Detach();
}

Artículos Relacionados

Super caja de la cerradura de secreto

Super caja de la cerradura de secreto

esto es una caja de roble blanco que hice. La palanca giros y revela un agujero pequeño. Cuando se pone un palillo en el agujero y empuje se mueve la cerradura y permite que la caja abrir.
Caja compartimiento secreto con incrustaciones de plata

Caja compartimiento secreto con incrustaciones de plata

Este cuadro fue construido como un regalo de cerezo y nogal. La cereza fue corte, secada, aserrada y planeada en mi ciudad natal en Virginia y se trasladó hacia el oeste con me. El nogal fue comprado localmente en California. Los sujetadores sólo uti
La caja de la cerradura: Pantalla de Lockpicking y práctica soporte

La caja de la cerradura: Pantalla de Lockpicking y práctica soporte

Hola a mis queridos freaky y Bienvenidos a otra entrega de lo que me gusta hacer en mi tiempo libre. Traído a usted por la letra "L"«L», la primera letra del Lock picking, también hurto... Pero os aseguro, los dos no necesitan ser sinónimos. Así
Cajón de alarma compartimiento secreto

Cajón de alarma compartimiento secreto

¿Que siempre quisiste un lugar para ocultar sus artículos especiales? Bien te doy uno aquí. Se trata de un cajón que tiene un fondo falso. Se hace mirar como si es simplemente un cajón normal, pero si empujas con un compartimiento secreto en la parte
Caja de la cerradura de llave de cristal

Caja de la cerradura de llave de cristal

¿Que siempre quisiste mantener algo a salvo, pero cajas viejas aburridas no son tu estilo? ¿Han estado muriendo para una brillante caja de seguridad que se abre un cristal? Aquí está el remedio para eso.Esto es una gran manera de impresionar a nadie
La caja de la cerradura

La caja de la cerradura

Este instructable fue creado en cumplimiento de la exigencia de proyecto de la Makecourse de la Universidad de South Florida (www.makecourse.com). Para mi proyecto que diseñé y 3D impreso un cuadro de bloqueo que se controla con el regulador Micro de
Caja de pie de sofá reciclado (con bono marquetería)

Caja de pie de sofá reciclado (con bono marquetería)

Esto es un proyecto inspirado en la noche de Instructables/Dremel de julio construir en LA Crashspace.Si usted vive en un entorno densamente pobladas y urbano como yo, usted puede familiarizarse con la riqueza de "dumpster diving" oportunidades.
Plexiglás caja 4 amplificador de audio casero con poder supplay

Plexiglás caja 4 amplificador de audio casero con poder supplay

Caja de plexi-glass hecha casera con fuente de alimentación y amplificador de audio.La idea nació porque en el cine no tuve SUB. El sistema es 5.1, pero el submarino no fue salida amplificada. Las variantes han sido dos. Comprar un SUB activo, o simp
Cómo escribir mensajes secretos con cinta

Cómo escribir mensajes secretos con cinta

en este instructable, cubriré formas de escribir mensajes secretos usando cinta adhesiva. También cubro un par de maneras de usar cintas que son inusuales.Nota: la mayoría de éstos se significa para ser gracioso. No sólo califique con estrellas 0,5 p
Caja de la cerradura de KVG

Caja de la cerradura de KVG

Hola este es mi primer instructable lo ponga por favor un buen comentario. Hice una caja de la cerradura de KVG de mini KVG (perdón todos sé utiliza grandes pero sólo tenía suficiente mini para hacerlo) así que es aquí y no tengo las instrucciones. L
Radio por Internet con pantalla táctil, frambuesa

Radio por Internet con pantalla táctil, frambuesa

Hacer esta super fácil y fresco aspecto 2,8" pantalla táctil Radio por Internet que puede ser controlado con la PC, Smartphone y básicamente todas las máquinas que cuenta con un navegador y una conexión a internet...(encontrar los altavoces en la par
Tunea tu teléfono viejo y hacer un Steampunk MP3 Player con pantalla táctil

Tunea tu teléfono viejo y hacer un Steampunk MP3 Player con pantalla táctil

Hola¿Qué puede hacer con tu viejo Smartphone? Vender, tirar, poner en el microondas?? * gg *No, hacemos un Steampunk MP3 Player con pantalla táctil ;)Paso 1: ComencemosTenemos un montón de cosas de bronce, electrónica y de fantasía.1 Smartphone Xperi
Arduino y Visuino: conectar 4D sistemas ViSi genio inteligente con pantalla táctil con Arduino

Arduino y Visuino: conectar 4D sistemas ViSi genio inteligente con pantalla táctil con Arduino

Llega un momento, cuando usted quiere tener una pantalla táctil conectada a la placa Arduino. Hay muchos tamaños y diferentes opciones de visualización disponibles, pero la mayoría de ellos requieren gran cantidad de código que se desea controlar, y
Frambuesa Pi todo-en-uno con pantalla táctil!

Frambuesa Pi todo-en-uno con pantalla táctil!

Después de mi anterior proyecto, un equipo portátil basado en un Raspberry Pi 2, que es esto: he decidido que la construcción no corta para mis propósitos diarios. Y como no tengo un tablet o un portátil (yo siempre uso mi sobremesa o portátiles de c