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

f

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

#include <ID1016C.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
ID1016C C1016;

uint8_t serial_buffer[20] = {0};
uint32_t Finge_num = 0;  //读取的结果
uint32_t Input_Finge_num = 1;  //指定要录入的ID
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("FingerTEST");
  display.display();

}

void loop() {
  C1016.ID1016C_Weakup();
  switch (key_scan())
  {
    case 1:
      C1016.C1016_Enroll(Input_Finge_num);  // 录入指纹
      display.clearDisplay();   
      display.setCursor(0, 10);
      display.println("FingerOK");
      display.print("Finge_num:");
      display.print(Input_Finge_num);
      display.display();
      break;
    case 2:
      Finge_num = C1016.C1016_Identify();  // 识别指纹
      display.clearDisplay();                  
      if (Finge_num == 0)
      {
        display.setCursor(0, 20);
        display.print("No Finge");
      } else
      {
        display.setCursor(0, 20);
        display.print("Finge_num:");
        display.print(Finge_num);
      }
      display.display();
      break;
    case 3:                      //指纹 ID++ 方便录入下一个指纹
      display.setCursor(0, 10);
      display.clearDisplay();                
      Input_Finge_num++;
      display.print("Input_Finge_num:");  //显示将要录入指纹的ID
      display.print(Input_Finge_num);
      display.display();
      break;

    case 4:                      // 清除所有指纹信息
      C1016.C1016_cmd_Delete();  // 清除所有指纹信息
      display.clearDisplay();    
      display.setCursor(0, 40);
      display.print("Clean Finge");
      display.display();
      break;

    default:
      break;
  }
  display.setCursor(30, 0);
  display.println("Finger TEST");
  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;
}

f的评论 (共 条)

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