Giới thiệu cảm biến vân tay AS608
Cảm biến vân tay AS608 dùng nhận dạng vân tay sử dụng giao tiếp UART TTL hoặc USB 1.1 để giao tiếp với Vi điều khiển hoặc kết nối trực tiếp với máy tính (thông qua mạch chuyển USB-UART hoặc giao tiếp USB 1.1). Cảm biến nhận dạng vân tay được tích hợp nhân xử lý nhận dạng vân tay phía trong, tự động gán vân tay với 1 chuỗi data và truyền qua giao tiếp UART ra ngoài nên hoàn toàn không cần các thao tác xử lý hình ảnh, đơn giản chỉ là phát lệnh đọc/ghi và so sánh chuỗi UART nên rất dễ sử dụng và lập trình. Cảm biến nhận dạng vân tay có khả năng lưu nhiều vân tay cho 1 ID (1 người), thích hợp cho các ứng dụng bảo mật, khóa cửa, sinh trắc học,… Khu vực ứng dụng: Mô-đun vân tay được sử dụng rộng rãi, phù hợp với tất cả các hệ thống nhận dạng vân tay từ cao cấp đến thấp cấp.
Thông số kỹ thuật cảm biến vân tay AS608
- Điện áp sử dụng: 3.0~3.6VDC (thường cấp 3.3VDC, lưu ý quan trọng nếu cấp lớn hơn 3.3VDC cảm biến sẽ cháy ngay lập tức).
- Dòng tiêu thụ: 30~60mA, trung bình 40mA
- Phương thức giao tiếp:: USB /UART
- Mức độ an toàn: 5
- Tốc độ Baudrate UART: 9600 x N (N từ 1~12), mặc định N=6 baudrate = 57600,8,1.
- Tốc độ giao tiếp UART : 2.0 full speed
- Kích thước ảnh (pixel): 256 x 288 pixels
- Thời gian xử lý (s): <0.4s
- Độ trễ (s): <0.1s
- Thời gian làm việc (s): <0.3s
- Tỉ lệ chấp nhận sai (FAR): <0.001% (mức bảo mật 3)
- Tỉ lệ từ chối sai (FRR): <1.0% (mức bảo mật 3)
- Dung lượng lưu trữ vân tay: 300 (ID: 0 ~ 299)
Chức năng chân:

- V+: chân cấp nguồn chính VCC 3.3VDC cho cảm biến hoạt động.
- Tx: Chân giao tiếp UART TTL TX
- Rx: Chân giao tiếp UART TTL RX
- GND: Chân cấp nguồn GND (Mass / 0VDC)
- TCH: Chân Output của cảm biến chạm Touch, khi chạm tay vào cảm biến chân này sẽ xuất ra mức cao High, để sử dụng tính năng này cần cấp nguồn 3.3VDC cho chân Va
- VA: Chân cấp nguồn 3.3VDC cho Touch Sensor.
- U+: Chân tín hiệu USB D+
- U-: Chân tín hiệu USB D-
Để giao tiếp UART ta cần sử dụng các chân:
- V+: Cấp nguồn 3.3VDC
- Tx: nối với RX của Vi điều kiển (mức TTL từ 3.3~5VDC)
- Rx: nối với TX của Vi điều kiển (mức TTL từ 3.3~5VDC)
- GND: Cấp nguồn GND (Mass chung)
Để giao tiếp USB ta cần sử dụng các chân:
- V+: Cấp nguồn 3.3VDC
- U+: Chân tín hiệu USB D+
- U-: Chân tín hiệu USB D-
- GND: Cấp nguồn GND (Mass chung).
Một số ứng dụng
- Khóa vân tay, két sắt, hộp súng, tài chính và các khu vực an ninh khác;
- Các lĩnh vực nhận dạng như hệ thống kiểm soát truy cập, IPC, máy POS , đào tạo lái xe và tham dự;
- Các khu vực quản lý như câu lạc bộ tư nhân, phần mềm quản lý và cấp phép.
Chương trình
Nguyên lý
#include <Adafruit_Fingerprint.h>
SoftwareSerial mySerial(2, 3); // TX/RX
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
uint8_t id;
void setup()
{
Serial.begin(9600);
while (!Serial); // For Yun/Leo/Micro/Zero/...
delay(100);
Serial.println("\n\nAdafruit Fingerprint sensor enrollment");
// set the data rate for the sensor serial port
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1) { delay(1); }
}
}
uint8_t readnumber(void) {
uint8_t num = 0;
while (num == 0) {
while (! Serial.available());
num = Serial.parseInt();
}
return num;
}
void loop() // run over and over again
{
Serial.println("Ready to enroll a fingerprint!");
Serial.println("Please type in the ID # (from 1 to 127) you want to save this finger as...");
id = readnumber();
if (id == 0) {// ID #0 not allowed, try again!
return;
}
Serial.print("Enrolling ID #");
Serial.println(id);
while (! getFingerprintEnroll() );
}
uint8_t getFingerprintEnroll() {
int p = -1;
Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id);
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
}
}
// OK success!
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
Serial.println("Remove finger");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
Serial.print("ID "); Serial.println(id);
p = -1;
Serial.println("Place same finger again");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
}
}
// OK success!
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK converted!
Serial.print("Creating model for #"); Serial.println(id);
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println("Prints matched!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println("Fingerprints did not match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
Serial.print("ID "); Serial.println(id);
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
Serial.println("Stored!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println("Could not store in that location");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("Error writing to flash");
return p;
} else {
Serial.println("Unknown error");
return p;
}
}
Chương trình kiểm tra
#include <Adafruit_Fingerprint.h>
const int led_pin_accept = 8;
const int led_pin_deny = 9;
volatile int finger_status = -1;
SoftwareSerial mySerial(2, 3); // TX/RX on fingerprint sensor
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup()
{
Serial.begin(9600);
pinMode(led_pin_accept,OUTPUT);
pinMode(led_pin_deny,OUTPUT);
while (!Serial); // For Yun/Leo/Micro/Zero/...
delay(100);
Serial.println("\n\nAdafruit finger detect test");
// set the data rate for the sensor serial port
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1) { delay(1); }
}
finger.getTemplateCount();
Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
Serial.println("Waiting for valid finger...");
}
void loop() // run over and over again
{
finger_status = getFingerprintIDez();
if (finger_status!=-1 and finger_status!=-2){
digitalWrite(led_pin_accept,HIGH);
delay(1000);
} else{
if (finger_status==-2){
for (int ii=0;ii<5;ii++){
digitalWrite(led_pin_deny,HIGH);
delay(50);
digitalWrite(led_pin_deny,LOW);
delay(50);
}
}
digitalWrite(led_pin_accept,LOW);
}
delay(50); //don't ned to run this at full speed.
}
// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p!=2){
Serial.println(p);
}
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p!=2){
Serial.println(p);
}
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -2;
// found a match!
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}
Liên hệ làm mạch
- Phone: 0967.551.477
- Zalo: 0967.551.477
- Email: dientunhattung@gmail.com
- Chi tiết : Nhận làm mạch và hướng dẫn đồ án sinh viên
Tham khảo chương trình mẫu và thông tin linh kiện chi tiết tại:

PIC18F6520 SMD, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
PIC18F45K20 SMD, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
Testboard Bread board SYB-170 màu đỏ 35x47mm 170 lỗ, Test board mini
Module tăng áp DC-DC 400W 12A, Mạch tăng áp 10 - 60VDC
Testboard Bread board MB-102 165x55mm 830 lỗ, Testboard cắm test mạch điện
CHUYỂN ĐỔI ĐỘ K 0-400ºC KÉP, BỘ CHUYỂN ĐỔI 4-20mA
MODULE SẠC 1 CELL 18650, MẠCH BẢO VỆ PIN LITHIUM 3.7V
ANTEN 18dBi 5G/4G/3G/GSM/LTE 24.3CM KIM TRONG, DÂY 3M
MODULE SẠC 3 CELL 18650 25A, MẠCH LITHIUM 11.1V - 40A
ANTEN 16dBi 5G/4G/3G/GSM 15.1CM KIM TRONG, ANTEN 5G
KIT RA CHÂN + ĐẾ NẠP AVR, KIT PHÁT TRIỂN ATMEGA16/32
MODULE SẠC 2 CELL 18650 5A, MẠCH LITHIUM 7.4V - 7A
Biến trở cúc áo RM065 500R 501, Biến trở tam giác 500R
MẠCH SẠC 3 CELL 18650 10A, MODULE LITHIUM 11.1V - 13A
CẶP Ổ PHÍCH CẮM ĐỘ K 19MM, ĐẦU NỐI CẶP NHỆT CẢM BIẾN ĐỘ K
Hộp mũi khoan mạch in 1.0mm, Hộp 10 mũi khoan mạch PCB
MODULE CẢM BIẾN SHT30 TRẦN, ĐO NHIỆT ĐỘ VÀ ĐỘ ẨM
MODULE SẠC 2 CELL 18650 3A, MẠCH LITHIUM 7.4V - 5A
CẢM BIẾN QUANG E3F-DS30Y2 2 DÂY, HỒNG NGOẠI THƯỜNG ĐÓNG 90-250VAC
PHÍP ĐỒNG A4 20x30CM 1 LỚP, BOARD ĐỒNG PCB LÀM MẠCH
IC SỐ SN74HC20 CỔNG NAND, IC CỔNG LOGIC 4-INPUT DIP
Bộ Jack nối sắt GX16-10P, Đầu nối sắt Đực Cái GX16 10 chân
MODULE DÒ LINE TCRT5000, CẢM BIẾN TRẮNG ĐEN
Module tăng áp DC 1200W 15A, Mạch tăng áp 12-80VDC
CẢM BIẾN QUANG HỒNG NGOẠI E3F-DS30C4 NPN, THƯỜNG MỞ NPN 10-30VDC
MODULE SẠC 3 CELL 18650 8A, MẠCH LITHIUM 11.1V - 12A
MODULE SẠC 2 CELL 18650 4A, MẠCH LITHIUM 7.4V - 10A
Mạch khuếch đại âm thanh TDA2030 14W, Điện áp 12V-18VDC
ANTEN 2.4G/5.8GHz 6DBI 19.5CM LỖ TRONG, ANTEN WIFI, ZIGBEE
Led 7 đoạn 1 số Cathode 0.8IN đỏ, Led 7 seg 20x27.7x10mm
Dây cáp USB sang Micro C 30cm, nạp chương trình Uno / ESP
MODULE SẠC 2 CELL 18650 8A, MẠCH LITHIUM 7.4V - 10A 














Đánh giá
Chưa có đánh giá nào.