Paso 11: Alarma (aún no probado)
Cuando el voltaje cae por debajo de 4v o "618" (si alguien corta los cables que van al abrepuertas de garaje) sonará el zumbador piezo
PIEZAS
zumbador piezoeléctrico de 5V
http://www.RadioShack.com/90dB-piezo-Pulse/2730066.html#.VUJq3MvwuP8
regulador de tensión fija de 5V
http://www.RadioShack.com/-5V-Fixed-Voltage-Regulator-7805/2761770.html#.VUJrGcvwuP8
CÓDIGO
/***************************************************
Este es un bosquejo de ejemplo para nuestro sensor óptico de huella digital
Diseñado específicamente para trabajar con el Breakout de Adafruit BMP085
---> http://www.adafruit.com/products/751
Estas pantallas utilizan TTL Serial para comunicarse, 2 pins están obligados a
interfaz de
Adafruit invierte tiempo y recursos que este código de fuente abierto,
por favor apoye Adafruit y hardware de código abierto mediante la compra de
productos de Adafruit.
Escrito por Limor Fried/Ladyada para industrias Adafruit.
La licencia BSD, todo el texto anterior debe incluirse en cualquier redistribución
Código modificado y el proyecto construido por Carrigan Luneke
****************************************************/
#include
#include
int getFingerprintIDez();
Estas constantes no va a cambiar:
const int analogPin = A0; PIN que el sensor está conectado a
const int piezoPin = 8; Pin el piezoeléctrico acoplado a
const int umbral = 618; voltaje del umbral del regulador de 5v
Pin #2 es del sensor (cable verde)
PIN #3 es hacia fuera de arduino (cable blanco)
MySerial SoftwareSerial (2, 3);
Adafruit_Fingerprint dedo = Adafruit_Fingerprint (& mySerial);
void setup()
{
Serial.Begin(9600);
Serial.println("fingertest");
pinMode (11, salida); LED rojo
pinMode (12, salida); LED verde
pinMode (10, salida); Garaje puente
pinMode (piezoPin, salida);
establecer la tarifa de datos para el sensor de puerto serie
Finger.Begin(57600);
Si (finger.verifyPassword()) {}
Serial.println ("encontrado huellas dactilares sensor!");
} else {}
Serial.println ("no se encontró huella digital sensor:(");
mientras (1);
}
Serial.println ("en espera de dedo válida...");
}
void loop() / / ejecuta una y otra vez
{
getFingerprintIDez();
digitalWrite (11, alto); LED rojo de
digitalWrite (12, bajo); LED verde apagado
digitalWrite (10, bajo); Abridor de garaje no activo
leer el valor del regulador de 5v:
int analogValue = analogRead(analogPin);
Si el valor analógico es lo suficientemente alto, activar el piezo:
Si (analogValue < umbral) {}
digitalWrite (piezoPin, HIGH);
}
Else {}
digitalWrite(piezoPin,LOW);
}
imprimir el valor analógico:
Serial.println(analogValue);
Delay(1); retardo entre lecturas para la estabilidad
}
uint8_t getFingerprintID() {}
uint8_t p = finger.getImage();
interruptor (p) {}
caso FINGERPRINT_OK:
Serial.println ("imagen");
rotura;
caso FINGERPRINT_NOFINGER:
Serial.println ("ningún dedo detectado");
devolver p;
caso FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("error de comunicación");
devolver p;
caso FINGERPRINT_IMAGEFAIL:
Serial.println ("imagen error");
devolver p;
por defecto:
Serial.println ("error desconocido");
devolver p;
}
OK ¡ un éxito!
p = finger.image2Tz();
interruptor (p) {}
caso FINGERPRINT_OK:
Serial.println ("imagen convertir");
rotura;
caso FINGERPRINT_IMAGEMESS:
Serial.println ("imagen demasiado sucia");
devolver p;
caso FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("error de comunicación");
devolver p;
caso FINGERPRINT_FEATUREFAIL:
Serial.println ("no pudo encontrar huellas dactilares características");
devolver p;
caso FINGERPRINT_INVALIDIMAGE:
Serial.println ("no pudo encontrar huellas dactilares características");
devolver p;
por defecto:
Serial.println ("error desconocido");
devolver p;
}
OK convertido!
p = finger.fingerFastSearch();
Si (p == FINGERPRINT_OK) {}
Serial.println ("se encuentra a un partido grabado!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {}
Serial.println ("error de comunicación");
devolver p;
} else if (p == FINGERPRINT_NOTFOUND) {}
Serial.println ("no se encontró a un partido");
devolver p;
} else {}
Serial.println ("error desconocido");
devolver p;
}
encontró a un fósforo!
Serial.Print ("encontró ID #"); Serial.Print(Finger.fingerID);
Serial.Print ("con confianza"); Serial.println(Finger.Confidence);
}
devuelve -1 si error, de lo contrario devuelve ID #
int getFingerprintIDez() {}
uint8_t p = finger.getImage();
Si (p! = FINGERPRINT_OK) devuelven -1;
p = finger.image2Tz();
Si (p! = FINGERPRINT_OK) devuelven -1;
p = finger.fingerFastSearch();
Si (p! = FINGERPRINT_OK) devuelven -1;
encontró a un fósforo!
digitalWrite (11, bajo); LED rojo apagado
digitalWrite (12, HIGH); LED verde encendido
digitalWrite (10, HIGH); Activo de abrepuertas de garaje
Delay(1000); Se aplica a 0v para uno en segundo lugar, puede ser diferente para cada abridor
Serial.Print ("encontró ID #"); Serial.Print(Finger.fingerID);
Serial.Print ("con confianza"); Serial.println(Finger.Confidence);
volver finger.fingerID;
}