美文网首页
【雕爷学编程】Arduino动手做(141)---AS608光学

【雕爷学编程】Arduino动手做(141)---AS608光学

作者: 驴友花雕 | 来源:发表于2023-07-13 12:33 被阅读0次

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

    实验一百四十一:AS608光学指纹识别模块 智能锁/考勤门禁开发/指纹采集模块

    08.jpeg

    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

    实验一百四十一:AS608光学指纹识别模块 智能锁/考勤门禁开发/指纹采集模块

    实验之五:输入序号,删除指定指纹模板

    Arduino实验开源代码

    /*
    
    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
    
      实验一百四十一:AS608光学指纹识别模块 智能锁/考勤门禁开发/指纹采集模块
    
      实验之五:输入序号,删除指定指纹模板
    
      安装库:IDE—工具—管理库—搜索Adafruit-Fingerprint-Sensor-Library—安装
    
      实验接线:
    
      Vi    +3.3V(请勿接3.3V以上电源,否则烧毁模块!)
    
      TX    2
    
      RX    3
    
      GND  GND
    
    */
    
    
    
    #include <Adafruit_Fingerprint.h>
    
    // On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white
    
    // uncomment this line:
    
    // #define mySerial Serial1
    
    // For UNO and others without hardware serial, we must use software serial...
    
    // pin #2 is IN from sensor (GREEN wire)
    
    // pin #3 is OUT from arduino  (WHITE wire)
    
    // comment these two lines if using hardware serial
    
    SoftwareSerial mySerial(2, 3);
    
    Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
    
    void setup()  
    
    {
    
      Serial.begin(9600);
    
      while (!Serial);  // For Yun/Leo/Micro/Zero/...
    
      delay(100);
    
      Serial.println("\n\nDelete Finger");
    
      // 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);
    
      }
    
    }
    
    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("lease type in the ID # (from 1 to 127) you want to delete...");
    
    
    
      uint8_t id = readnumber();
    
      if (id == 0) {// ID #0 not allowed, try again!
    
        return;
    
      }
    
      Serial.print("Deleting ID #");
    
      Serial.println(id);
    
      
    
      deleteFingerprint(id);
    
    }
    
    uint8_t deleteFingerprint(uint8_t id) {
    
      uint8_t p = -1;
    
      
    
      p = finger.deleteModel(id);
    
      if (p == FINGERPRINT_OK) {
    
      Serial.println("Deleted!");
    
      } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    
      Serial.println("Communication error");
    
      return p;
    
      } else if (p == FINGERPRINT_BADLOCATION) {
    
      Serial.println("Could not delete in that location");
    
      return p;
    
      } else if (p == FINGERPRINT_FLASHERR) {
    
      Serial.println("Error writing to flash");
    
      return p;
    
      } else {
    
      Serial.print("Unknown error: 0x"); Serial.println(p, HEX);
    
      return p;
    
      }  
    
    }
    

    Delete Finger
    Found fingerprint sensor!
    Please type in the ID # (from 1 to 127) you want to delete...

    删除指纹
    找到指纹传感器!
    请输入要删除的ID(从1到127)……

    27.jpg

    删除ID#9
    删除!
    请输入要删除的ID(从1到127)。。。
    删除ID#8
    删除!
    请输入要删除的ID(从1到127)。。。
    删除ID#7
    删除!
    请输入要删除的ID(从1到127)。。。
    删除ID#6
    删除!
    请输入要删除的ID(从1到127)。。。
    删除ID#5
    删除!
    请输入要删除的ID(从1到127)。。。
    删除ID#4
    删除!
    请输入要删除的ID(从1到127)。。。
    删除ID#3
    删除!
    请输入要删除的ID(从1到127)。。。

    28.jpg

    实验之六:删除所有指纹模板

    Arduino实验开源代码

    /*
    
    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
    
     实验一百四十一:AS608光学指纹识别模块 智能锁/考勤门禁开发/指纹采集模块
    
      实验之六:删除所有指纹模板
    
      安装库:IDE—工具—管理库—搜索Adafruit-Fingerprint-Sensor-Library—安装
    
      实验接线:
    
      Vi    +3.3V(请勿接3.3V以上电源,否则烧毁模块!)
    
      TX    2
    
      RX    3
    
      GND  GND
    
    */
    
    
    
    #include <Adafruit_Fingerprint.h>
    
    // On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white
    
    // uncomment this line:
    
    // #define mySerial Serial1
    
    // For UNO and others without hardware serial, we must use software serial...
    
    // pin #2 is IN from sensor (GREEN wire)
    
    // pin #3 is OUT from arduino  (WHITE wire)
    
    // comment these two lines if using hardware serial
    
    SoftwareSerial mySerial(2, 3);
    
    Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
    
    void setup()  
    
    {
    
      Serial.begin(9600);
    
      while (!Serial);  // For Yun/Leo/Micro/Zero/...
    
      delay(100);
    
      Serial.println("\n\nDeleting all fingerprint templates!");
    
      Serial.println("ress 'Y' key to continue");
    
      while (1) {
    
      if (Serial.available() && (Serial.read() == 'Y')) {
    
        break;
    
      }
    
      }
    
      // 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);
    
      }
    
      finger.emptyDatabase();
    
      Serial.println("Now database is empty ");
    
    }
    
    void loop() {
    
    }
    

    正在删除所有指纹模板!
    按“Y”键继续

    29.jpg

    Found fingerprint sensor!
    Now database is empty

    找到指纹传感器!
    现在数据库为空:)

    30.jpg 14.jpg

    模块接口
    采用 8 芯 1.25 mm 间距单排插座,模块内部内置了手指探测电路,用户可读取状态引脚TCH(WAK)判断有无手指按下。

    引脚号 名称 类型 功能描述
    1 Vi In 模块电源正输入端+3.3V(请勿接3.3V以上电源,否则烧毁模块!)
    2 TX Out 串行数据输出,接MCU或TTL串口的RX。
    3 RX In 串行数据输入,接MCU或TTL串口的TX。
    4 GND - 信号地。内部与电源地连接。
    5 TCH Out 感应信号输出,默认高电平有效
    6 UA In 触摸感应电源输入端,3.3v供电
    7 D+ - USB D+
    8 D- - USB D-
    (7脚,8脚为USB信号线,使用串口控制模块时可以悬空不用)

    相关文章

      网友评论

          本文标题:【雕爷学编程】Arduino动手做(141)---AS608光学

          本文链接:https://www.haomeiwen.com/subject/ordeudtx.html