Entrada sin llave / Arduino (3 / 4 paso)

Paso 3: código

tuve ayuda de maewert para la luz de ayuda.
El interruptor de derivación lo más difícil para mí. Fue una colaboración entre sath02 y mi auto. Siempre estoy agradecido a estos tipos de conocimiento allí.

Si no tienes las librerías necesarias para el bosquejo está aquí para su descarga.

Referencia

Arduino en un protoboard

Teclado de codificación

Tutorial teclado

#include < Password.h >
#include < Keypad.h >
#include < Servo.h > //tells a utilizar la librería servo
int pos = 5;    variable para almacenar la posición del servo
int tecla = A0;  El botón estará en Pin 7
Servo myservo; declara servo
#define 20 de retraso / retardo por loop en ms

Contraseña password = Password ("4444"); puede cambiar la contraseña para abrir la puerta,

const filas bytes = 4; Cuatro filas
byte const COLS = 3; columnas
Definir el mapa de teclado
teclas de Char [filas] [COLS] = {}
{'1','2','3',},
{'4','5','6',},
{'7','8','9',},
{'*','0','#',},
};

byte rowPins [filas] = {5, 4, 3, 2} ;// Conecte teclado ROW0, ROW1, ROW2 y ROW3 a estos pines de Arduino.
byte colPins [COLS] = {8, 7, 6,}; / / conecta teclado COL0, COL1 y COL2 a estos pines de Arduino.

Crear el teclado
Teclado teclado = teclado (makeKeymap(keys), rowPins colPins, filas, COLS);

offtime largo sin firmar;
Boolean helper_light_is_on = false; Ayudante de luz
va a cambiar las variables:
int buttonState = 0;  variable para lectura del estado del pulsador
int lastButtonState = 0;

void handle_button()
{
leer el estado del pulsador valor:
buttonState = digitalRead(button);
comprobar si el pulsador está presionado.
Si (buttonState! = lastButtonState) {}
Lanzamiento de la cerradura
myservo.Write(100);
Delay(20);
digitalWrite (10, HIGH);
Delay(1000); este retraso se podía cambiar al valor adecuado
digitalWrite (10, bajo);
myservo.Write(160); / / mover a la posición de la cerradura después de 5 segundos
Delay(20);
}
lastButtonState = buttonState;
}
void setup()
{
Serial.Begin(9600);
Serial.Write(254);
Serial.Write(0x01);
Delay(200);
pinMode (10, salida);  Luz auxiliar
pinMode (11, salida);  luz verde
pinMode (12, salida);  luz roja
pinMode (botón, entrada);
myservo.Attach(9); servo en el pin digital 9 //servo
keypad.addEventListener(keypadEvent); Agregar un detector de eventos para este teclado
pinMode (pos, salida);
pinMode (botón, entrada);
Delay(200);
}
void loop()
{
handle_button();
keypad.getKey();
myservo.Write(5);
process_helper_light();
}

Tenga cuidado de algunos eventos especiales
void keypadEvent(KeypadEvent eKey)
{
interruptor (keypad.getState())
{
caso presiona:
se pulsa una tecla hasta el ayudante de la luz
helper_light_is_on = true;
digitalWrite(10,HIGH);
offtime = millis() + 10000;  establecer el offtime durante 30 segundos en el futuro

Serial.Print ("introducir:");
Serial.println(eKey);
Delay(10);
Serial.Write(254);
interruptor (eKey)
{
caso ' *':
checkPassword();
Delay(1);
rotura;
caso '#':
Password.Reset();
Delay(1);
rotura;
por defecto:
Password.Append(eKey);
Delay(1);
}
}
}

void checkPassword()
{
Si (password.evaluate()) //if contraseña es correcto abrir la puerta
{
Serial.println ("aceptado");
Serial.Write(254);
Delay(10);
Agregue código para ejecutar si funciona
myservo.Write(90); 160deg
digitalWrite (11, HIGH); //turn el Led verde
Delay(3000); Espere 5 segundos
digitalWrite (11, LOW); / / apaga Led verde
}
otra cosa
{
Serial.println ("denegado"); Si las contraseñas mal Mantén puerta cerrada
Serial.Write(254);
Delay(10);
Agregue código para ejecutar si no funcionaba
myservo.Write(5);
digitalWrite (12, HIGH); girar en rojo
Delay(3000); Espere 5 segundos
digitalWrite (12, bajo); //turn de Led rojo
}
{
Si (digitalRead(button) == LOW)
myservo.Write(90);
para (pos = 0; pos < 90; pos += 90) / / va desde 0 grados a 90 grados
{/ / en pasos de grado
Serial.println ("abierto");
myservo.Write(POS);
myservo.Write(90); 160deg
Delay(80);
myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

}
Si (digitalRead(button) == HIGH)
otra cosa
para (pos = 90; pos > = 90; pos-= 90) / / va desde 90 grados hasta 0 grados
myservo.Write(90);
{
Serial.println ("estancia cerrada");
myservo.Write(POS);               Dile el servo a la posición en la variable 'pos'
Delay(50);
myservo.Write(5); 160deg
myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'
}
}
}

Esta rutina se apaga la luz cuando el temporizador caduca
void process_helper_light(void)
{
Si (helper_light_is_on)
{
Si (millis() > = offtime)
{
digitalWrite(10,LOW);  Apagar la luz de ayuda
helper_light_is_on = false;
}
}
}

Artículos Relacionados

DoorMe: Smartphone controlado entrada sin llave para dormitorios

DoorMe: Smartphone controlado entrada sin llave para dormitorios

Este proyecto es para ti si...A) alguna vez accidentalmente haya bloqueado las llaves en su dormitorio o apartamento, mucho a la frustración de su orgullo personal, compañero de cuarto o cerrajero.B) usted está buscando un sistema de entrada sin llav
Reemplazo de batería de entrada sin llave de 2001 Audi A4

Reemplazo de batería de entrada sin llave de 2001 Audi A4

cómo diassemble, limpiar y reemplazar las baterías en el módulo de entrada sin llave. Creo que otros modelos de Audi así como Volkswagens el mismo control remoto, alrededor de 2001.
Entrada sin llave dormitorio

Entrada sin llave dormitorio

El problema fundamental detrás de este proyecto era que las teclas son algo muy fácil de olvidar o perder, y que son lo único en mi dormitorio. Esto es especialmente un dolor al salir de la habitación por un corto tiempo, tales como comprobar el corr
Entrada sin llave de edificio

Entrada sin llave de edificio

configurar un receptor RF para activar los contactos de la puerta de su edificio de apartamento de un mando.Odio llegar a casa en la nieve, lluvia, y buscando a tientas para llaves y balanceo grocerys, cajas, ect y tratando de tirar la puerta abren y
Sistema de entrada sin llave de Nintendo

Sistema de entrada sin llave de Nintendo

utilizar un controlador de Nintendo clásico para bloquear y desbloquear la puerta! La salida del controlador es leída por un arduino y busca una determinada combinación de botones, una vez que se introduce la combinación envía una señal para expulsar
El teclado de entrada sin llave

El teclado de entrada sin llave

El teclado sin teclas. Aunque no es el más productivo, aún parece bastante chulo en tu escritorio. Este proyecto debe tomar no más de 15 minutos (la rotulación de las teclas es la parte más larga).AVISO:Algunos teclados no son elegibles para este pro
CÓMO INSTALAR SIN LLAVE + ENTRADA SIN CONTACTO EN DODGE RAM | KEETEC CZ 100 MANDO A DISTANCIA INTELIGENTE | CÓDIGOS de cables para recoger

CÓMO INSTALAR SIN LLAVE + ENTRADA SIN CONTACTO EN DODGE RAM | KEETEC CZ 100 MANDO A DISTANCIA INTELIGENTE | CÓDIGOS de cables para recoger

Hola a todos esto es geRAMicc85. Por favor ver el video para seguir las instrucciones.Este es mi 96 Dodge Ram 1500 y hoy va a instalar un nuevo sistema de entrada sin llave a control remoto. Y va a instalar este sistema de entrada sin contacto. Es de
Cerradura sin llave para puerta del proyecto jaspalr

Cerradura sin llave para puerta del proyecto jaspalr

uno de los problemas en las conversiones de autobús de la escuela es cómo bloquear la puerta trasera.  Bruce en Yahoo Shoolie grupo utiliza una cerradura de pasador en la puerta trasera de su conversión del autobús de la escuela y me ha gustado la id
Portabrocas sin llave de impacto a

Portabrocas sin llave de impacto a

Tenía un montón de muertos taladros inalámbricos 18V de Puerto carga porque las baterías están muertas. Actualicé a un conductor de impacto Bosch para la mayoría de los efectos para que utilizan los taladros. La necesidad ocasional de perforación alg
Sin llave

Sin llave

¿Cuántas veces has tenido que hacer una fila de un armario o para depositar y retirar sus activos de? No será un problema ya. Sin llave ofrece una solución elegante y sencilla que simplifica la gestión organización y diario de vida de las personas.Co
Cómo desmontar un portabrocas sin llave

Cómo desmontar un portabrocas sin llave

He tenido este taladro inalámbrico para ir en 10 años. Ha sido un gran taladro, pero recientemente ha sido plagado con una tirada de pegajoso, lo que es difícil de abrir y cerrar el portabrocas. Hace unos meses compré un litio más nuevos powered vers
Entradas extras para Arduino con un teclado

Entradas extras para Arduino con un teclado

El Arduino es quizás la cosa más fresca en la tierra. Hay muchos tipos, el Uno, la Mega, el Pro, Pro Mini, etc. etc..Pero una cosa que a menudo puede ser un problema es que sólo tienes un número limitado de entradas y salidas. Hay muchas soluciones p
Matriz infrarrojos contraseña entrada sistema con Arduino

Matriz infrarrojos contraseña entrada sistema con Arduino

Equipo de ICStation presentamos el sistema de entrada de contraseña de matriz infrarrojo basado en ICStation Compatible placa Arduino. Funciona bajo la fuente de alimentación de 5v y utiliza el 4 * 4 teclado de matriz o el control remoto por infrarro
Manera más fácil de obtener Audio estéreo de micrófonos Mono entradas (sin Software)

Manera más fácil de obtener Audio estéreo de micrófonos Mono entradas (sin Software)

comprarlo: http://amzn.to/ncofO1Episodio 1 - www.thoughtgrenades.comUna forma rápida y práctica para obtener sonido estéreo de micrófonos Mono entradas.Software utilizado para editar: After Effects y Sony VegasCompilado de música de fondo: youtube.co