欢迎光临散文网 会员登陆 & 注册

q

2023-04-12 10:52 作者:芜湖男神建勋  | 我要投稿

#include <ID1016C.h>

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>


#define OLED_RST_PIN 4

Adafruit_SSD1306 display(OLED_RST_PIN);

ID1016C C1016;


uint32_t finger_num = 0;  //读取的指纹编号

uint32_t input_finger_num = 1;  //指定要录入的指纹编号

int key1 = 49;  //设置按键IO

int key2 = 48;  //设置按键IO


void setup() {

  C1016.ID1016C_Init();

  delay(500);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

  Serial.begin(115200);

  pinMode(key1, INPUT);

  pinMode(key2, INPUT);


  display.clearDisplay();  // 清屏

  display.setTextSize(1);  //设置字体大小

  display.setTextColor(WHITE);

  display.setCursor(0, 0);

  display.setCursor(30, 0);

  display.println("指纹测试");

  display.display();

}


void loop() {

  C1016.ID1016C_Weakup();

  switch (key_scan()) {

    case 1:

      C1016.C1016_Enroll(input_finger_num);  // 录入指纹

      display.clearDisplay();   

      display.setCursor(0, 10);

      display.println("录入成功");

      display.print("指纹编号:");

      display.print(input_finger_num);

      display.display();

      break;

    case 2:

      finger_num = C1016.C1016_Identify();  // 识别指纹

      display.clearDisplay();                  

      if (finger_num == 0) {

        display.setCursor(0, 20);

        display.print("未识别到指纹");

      } else {

        display.setCursor(0, 20);

        display.print("指纹编号:");

        display.print(finger_num);

      }

      display.display();

      break;

    case 3:  //指纹编号+1,方便录入下一个指纹

      display.setCursor(0, 10);

      display.clearDisplay();                

      input_finger_num++;

      display.print("将录入指纹编号:");  //显示将要录入指纹的编号

      display.print(input_finger_num);

      display.display();

      break;

    case 4:  // 清除所有指纹信息

      C1016.C1016_cmd_Delete();  // 清除所有指纹信息

      display.clearDisplay();    

      display.setCursor(0, 40);

      display.print("清除所有指纹信息");

      display.display();

      break;

    default:

      break;

  }

  display.setCursor(30, 0);

  display.println("指纹测试");

  display.display();

}


uint8_t key_scan() {

  uint8_t i = 0;

  if (digitalRead(key1) == 0) {

    delay(20);

    if (digitalRead(key1) == 0) {

      while (digitalRead(key1) == 0) {

        delay(1);

        i++;

        if (i > 200) {

          while (digitalRead(key1) == 0);

          return 3;

        }

      }

      return 1;

} else if (digitalRead(key2) == 0) {

  delay(20);

  if (digitalRead(key2) == 0) {

    while (digitalRead(key2) == 0) {

      delay(1);

      i++;

      if (i > 200) {

        while (digitalRead(key2) == 0);

        return 4;

      }

    }

    return 2;

  }

}

return 0; 

}

q的评论 (共 条)

分享到微博请遵守国家法律