TRICONEX 9661-610? ? 模塊
TRICONEX 9661-610按鈕直接連接到Arduino相對于地的A0(登記)、A1(刪除)、A2(上)、A3(下),黃色LED通過1k電阻連接到Arduino相對于地的數字引腳D7。指紋模塊的Rx和Tx直接連接在Arduino的串行引腳D2和D3(軟件串行)上。5v電源用于為取自Arduino板的指紋模塊供電。蜂鳴器也連接在引腳A5上。在中配置了一個16×2的LCD4位模式其RS、EN、D4、D5、D6和D7直接連接在Arduino的數字引腳D13、D12、D11、D10、D9和D8上。
代碼解釋:
這TRICONEX 9661-610的指紋考勤系統代碼在隨后的章節中給出。雖然代碼用注釋解釋得很好,但我們在這里討論的是代碼的幾個重要部分。我們將指紋庫用于指紋模塊與Arduino板的接口。
首先,我們包括頭文件,定義輸入和輸出引腳,定義宏和聲明變量。之后,在設置功能中,我們給定義的pin指令,并啟動LCD和指紋模塊
之后我們還要寫代碼下載考勤數據。
void setup(){delay(1000);lcd.begin(16,2);serial.begin(9600);pinMode(enroll,INPUT _ pull up);pinMode(up,INPUT _ pull up);pinMode(down,INPUT _ pull up);pinMode(del,INPUT _ pull up);pinMode(match,INPUT _ pull up);pinMode(蜂鳴器,輸出);pinMode(indFinger,OUTPUT);digitalWrite(蜂鳴器,低);if(digital read(enroll)==0){digital write(蜂鳴器,高);延遲(500);digitalWrite(蜂鳴器,低);LCD.clear();lcd.print(“請稍候”);lcd.setCursor(0,1);lcd.print(“下載數據”);
之后,我們必須編寫代碼來清除EEPROM中的考勤數據。
if(digital read(del)==0){LCD.clear();lcd.print(“請稍候”);lcd.setCursor(0,1);lcd.print(“重置…..”);for(int I=1000;i%3C1005i++)EEPROM.write(i,0);for(int I=0;i%3C841i++)EEPROM.write(i,0x ff);LCD.clear();lcd.print(“系統復位”);延時(1000);}
之后,我們啟動指紋模塊,在LCD上顯示歡迎信息,并啟動RTC模塊。
之后,在循環功能中,我們讀取RTC時間并在LCD上顯示
void loop(){now=RTC.now();lcd.setCursor(0,0);lcd.print(“時間-%3E”);lcd.print(now.hour(),DEC);LCD.print(‘:’);lcd.print(now.minute(),DEC);LCD.print(‘:’);lcd.print(now.second(),DEC);LCD.print(“”);lcd.setCursor(0,1);lcd.print(“日期-%3E”);lcd.print(now.day(),DEC);LCD.print(‘/’);lcd.print(now.month(),DEC);LCD.print(‘/’);lcd.print(now.year(),DEC);
TRICONEX 9661-610之后,等待指紋輸入,并將捕獲的圖像ID與存儲的ID進行比較。如果出現匹配,則繼續下一步。并檢查注冊刪除鍵
int result=getFingerprintIDez();if(結果%3E0){digitalWrite(indFinger,低);digitalWrite(蜂鳴器,高);延遲(100);digitalWrite(蜂鳴器,低);LCD.clear();LCD.print(“ID:”);lcd.print(結果);lcd.setCursor(0,1);lcd.print(“請稍候…”);延時(1000);出勤率(成績);LCD.clear();lcd.print(“考勤”);lcd.setCursor(0,1);LCD.print(“Registed”);延時(1000);digitalWrite(食指,高);返回;}
給定空隙checkKeys()該功能用于檢查是否按下了注冊或刪除鍵,以及如果按下了該怎么辦。如果登記鍵被按下注冊()函數被調用,然后按DEL鍵刪除()函數被調用。
void delet()功能用于輸入要刪除的ID和調用uint8_t刪除指紋(uint8_t id)將從記錄中刪除手指的功能。
給定函數用于獲取指紋圖像,并將其轉換為模板,以及通過選定的ID保存到指紋模塊存儲器中。
uint 8 _ t getFingerprintEnroll(){int p=-1;LCD.clear();lcd.print(“手指ID:”);LCD.print(id);lcd.setCursor(0,1);lcd.print(“放置手指”);延遲(2000年);而(p!=finger _ OK){p=finger.getimage();…………………
給定函數用于將考勤時間和日期存儲在EEPROM的分配槽中
void考勤(int id){int user=0,eep loc=0;if(id==1){eepLoc=0;user=user 1++;}else if(id==2){eepLoc=210;user=user 2++;}else if(id==3)………….
給定函數用于從EEPROM讀取數據并發送到串行監視器
void download(int eep index){if(EEPROM.read(eep index)!=0x ff){serial.print(“T-%3E”);if(EEPROM.read(eepIndex)%3c 10)serial.print(‘