#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”。

AS608 指纹识别模块 Arduino LCD1602 显示开锁状态

原文地址: https://www.cveoy.top/t/topic/gBi5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录