AS608 指纹识别模块 Arduino LCD1602 显示开锁状态
#include <SoftwareSerial.h>
#include <Adafruit_Fingerprint.h>
#include <LiquidCrystal.h>
#define LED 13
#define SERVO 9
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
void setup() {
Serial.begin(9600);
mySerial.begin(57600);
pinMode(SERVO, OUTPUT);
attachInterrupt(digitalPinToInterrupt(2), fingerISR, FALLING);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print('Fingerprint Lock');
lcd.setCursor(0, 1);
lcd.print('Initializing...');
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print('Please place');
lcd.setCursor(0, 1);
lcd.print('your finger...');
}
void loop() {
getFingerprintID();
}
void getFingerprintID() {
uint8_t id = finger.getImage();
if (id != FINGERPRINT_OK) return;
id = finger.image2Tz();
if (id != FINGERPRINT_OK) return;
id = finger.fingerFastSearch();
if (id != FINGERPRINT_OK) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print('Access Denied');
lcd.setCursor(0, 1);
lcd.print('Fingerprint Error');
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print('Please place');
lcd.setCursor(0, 1);
lcd.print('your finger...');
return;
}
lcd.clear();
lcd.print('Access Granted');
lcd.setCursor(0, 1);
lcd.print('Unlock Successful');
digitalWrite(LED, HIGH);
delay(2000);
digitalWrite(LED, LOW);
digitalWrite(SERVO, HIGH);
delay(1000);
digitalWrite(SERVO, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print('Please place');
lcd.setCursor(0, 1);
lcd.print('your finger...');
}
void fingerISR() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
digitalWrite(SERVO, HIGH);
delay(1000);
digitalWrite(SERVO, LOW);
}
在 LCD1602 上显示的输出信息将自动换行。例如,当指纹识别正确时,屏幕第一行将显示“Access Granted”,第二行将显示“Unlock Successful”。当指纹识别错误时,屏幕第一行将显示“Access Denied”,第二行将显示“Fingerprint Error”。
原文地址: https://www.cveoy.top/t/topic/gBi5 著作权归作者所有。请勿转载和采集!