Created
December 18, 2013 02:01
-
-
Save punietis/8016180 to your computer and use it in GitHub Desktop.
Using Sparkfun's Fingerprint Scanner - 5V TTL (GT-511C1), a servo motor, and some LEDs, a code that allows you to move the servo based on the validity of the fingerprint.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Sweep code by BARRAGAN http://barraganstudio.com/ | |
// Blink code from Arduino examples | |
// PWM Servo library from http://arduiniana.org/libraries/pwmservo/ | |
// Fingerprint Scanner library, partial fingerprint identity test, along with hardware help from: | |
// http://wordpress.hawleyhosting.com/ramblings/?p=375 | |
// Code help from Ms. Natalie Freed | |
#include "FPS_GT511C3.h" | |
#include "SoftwareSerial.h" | |
#include <PWMServo.h> | |
PWMServo myservo; | |
int pos = 60; | |
const int yellow = 13; | |
const int green = 12; | |
const int red = 11; | |
FPS_GT511C3 fps(3, 2); | |
void setup() | |
{ | |
Serial.begin(9600); | |
delay(100); | |
fps.Open(); | |
fps.SetLED(true); | |
myservo.attach(SERVO_PIN_A); | |
myservo.write(pos); | |
pinMode(yellow, OUTPUT); | |
pinMode(green, OUTPUT); | |
pinMode(red, OUTPUT); | |
digitalWrite(red, HIGH); | |
digitalWrite(yellow, LOW); | |
digitalWrite(green, LOW); | |
} | |
void loop() | |
{ | |
if (fps.IsPressFinger()) // fingerprint identity test | |
{ | |
digitalWrite(red, HIGH); | |
digitalWrite(yellow, LOW); | |
digitalWrite(green, LOW); | |
myservo.write(60); | |
fps.CaptureFinger(false); | |
int id = fps.Identify1_N(); | |
if (id <200) // if the fingerprint is correct | |
{ | |
myservo.write(pos); | |
Serial.print("Verified ID:"); | |
Serial.println(id); | |
for(pos = 60; pos < 90; pos += 1) // servo moving | |
{ | |
myservo.write(pos); | |
delay(250); | |
if (pos == 60) // LEDs | |
{ | |
digitalWrite(red, HIGH); | |
digitalWrite(yellow, LOW); | |
digitalWrite(green, LOW); | |
} | |
if (pos < 75) | |
{ | |
digitalWrite(red, LOW); | |
digitalWrite(yellow, HIGH); | |
digitalWrite(green, LOW); | |
} | |
if (pos >= 75) | |
{ | |
digitalWrite(red, LOW); | |
digitalWrite(yellow, LOW); | |
digitalWrite(green, HIGH); | |
} | |
} | |
digitalWrite(red, HIGH); | |
digitalWrite(yellow, LOW); | |
digitalWrite(green, LOW); | |
pos = 60; | |
myservo.write(pos); | |
} | |
else | |
{ | |
Serial.println("Finger not found"); | |
} | |
} | |
else | |
{ | |
Serial.println("Please press finger"); | |
} | |
delay(100); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Can i use FPS_GT511C3.h library for FPS GT-511C1 and does it works?