色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Arduino構(gòu)建基于指紋的生物識別投票機

科技觀察員 ? 來源:circuitdigest ? 作者:薩達姆 ? 2023-01-06 16:13 ? 次閱讀

我們都非常熟悉電子投票機,您的投票以電子方式登記,您無需使用選票即可在選舉中投票。今天,安全性是一個主要問題,還需要確保某人不能投票兩次,因此可以通過引入基于指紋的投票來解決這個問題,在這種情況下,一個人可以根據(jù)他的指紋獲得授權(quán)。這也將阻止虛假投票。所以今天我們正在 使用Arduino構(gòu)建基于指紋的生物識別投票機

所需組件:

  1. Arduino Uno
  2. 指紋傳感器模塊
  3. 按鈕
  4. 指示燈 -2
  5. 1K 電阻器 -3
  6. 2.2K電阻
  7. 權(quán)力
  8. 連接線
  9. 蜂鳴器
  10. 16x2 液晶顯示器
  11. 面包板

投票機中的指紋傳感器模塊:

指紋 傳感器模塊或指紋掃描儀是一種模塊 ,用于捕獲手指的指紋圖像,然后將其轉(zhuǎn)換為等效模板,并將它們保存到Arduino所選ID(位置)上的內(nèi)存中。在這里,所有過程都由Arduino控制,例如拍攝指紋圖像,將其轉(zhuǎn)換為模板和存儲位置等。

指紋傳感器模塊

在這個指紋投票機電路中,我們使用指紋傳感器模塊通過在系統(tǒng)中輸入手指來驗證真正的選民。在這里,我們使用 5 個按鈕來匹配、注冊/返回、刪除/確定、向上和向下。注冊和德爾鍵在這里具有雙重功能。注冊鍵用于將新的手指印模注冊到系統(tǒng)和返回功能中。意味著當(dāng)用戶想要注冊新手指時,他/她需要按注冊鍵,然后LCD詢問用戶想要存儲指紋輸出的ID或位置。現(xiàn)在,如果此時用戶不想繼續(xù),那么他/她可以再次按注冊鍵返回(這次注冊鍵表現(xiàn)為后退鍵)。表示注冊密鑰同時具有注冊和返回功能。DEL/OK 鍵還具有相同的雙重功能,就像用戶注冊新手指時一樣,他/她需要使用另外兩個鍵(即向上和向下)選擇手指 ID 或位置,現(xiàn)在用戶需要按 DEL/OK 鍵(這次此鍵的行為類似于確定)以繼續(xù)使用選定的 ID 或位置。匹配鍵用于每當(dāng)選民想要投票時,他/她需要首先通過手指在指紋傳感器上對真正的選民進行身份驗證,如果他/她通過了此身份驗證,那么他/她就可以投票。

生物識別投票機中的指紋注冊

工作說明:

對于初學(xué)者來說,這個用于選舉的生物識別投票系統(tǒng)的工作有點復(fù)雜。首先,用戶需要在按鈕/鍵的幫助下注冊手指或投票者(在此代碼中,選民的最大限制為 25)。為此,用戶需要按REGISTER鍵,然后LCD要求輸入手指將成為商店的位置/ ID。所以現(xiàn)在用戶需要使用向上/向下鍵輸入ID(位置)。選擇位置/ID 后,用戶需要按確定鍵(DEL 鍵)。現(xiàn)在,液晶屏將要求將手指放在指紋模塊上。現(xiàn)在用戶需要將手指放在指紋模塊上。然后液晶屏將要求將手指從指紋模塊中取出,并再次要求放置手指。現(xiàn)在用戶需要再次將手指放在指紋模塊上。現(xiàn)在,指紋模塊獲取圖像并將其轉(zhuǎn)換為模板,并通過選定的ID將其存儲在指紋模塊的內(nèi)存中。現(xiàn)在選民將被登記,他/她可以投票。通過同樣的方法,所有選民都可以登記到系統(tǒng)中。

投票機框圖

現(xiàn)在,如果用戶想要刪除或刪除任何存儲的ID,那么他/她需要按DEL鍵,按DEL鍵后,LCD將要求選擇位置意味著選擇要刪除的ID。現(xiàn)在用戶需要選擇ID并按確定鍵(相同的DEL鍵)。現(xiàn)在LCD會讓您知道手指已成功刪除。

投票流程:

現(xiàn)在,當(dāng)用戶想要投票時,他/她需要按匹配鍵,然后蜂鳴器將發(fā)出嗶嗶聲,LED也會發(fā)光,LCD將要求將手指放在指紋模塊上。現(xiàn)在Arduino會給你三次嘗試把你的手指。將手指放在指紋模塊上后,指紋模塊捕獲手指圖像,發(fā)現(xiàn)其ID存在于系統(tǒng)中。如果檢測到手指 ID,則 LCD 將顯示授權(quán)選民。這意味著用戶有權(quán)投票。然后系統(tǒng)進入下一階段進行投票。現(xiàn)在綠色LED會亮起,這意味著現(xiàn)在選民可以通過按重新當(dāng)選的鍵(來自本演示中的紅色面包板)為他們的候選人投票。現(xiàn)在,如果同一選民想再次投票,那么系統(tǒng)將顯示它 “已投票”。 表示同一選民無法再次投票,蜂鳴器將發(fā)出 5 秒的嗶嗶聲。如果任何非注冊用戶想要投票,則指紋模塊將不會在系統(tǒng)中檢測到其ID,LCD將顯示“未找到指紋”。

使用Arduino的生物識別投票機中的投票按鈕

這里的CAN1,CAN2,CAN3代表候選人1,候選人2和候選人3,他們參加了選舉。

電路說明:

這個基于指紋的投票機項目的電路非常簡單,其中包含用于控制整個項目過程的Arduino,用于注冊,刪除,選擇ID和投票目的的按鈕,用于警報的蜂鳴器,用于指示的LED和用于指示選民并顯示結(jié)果的16x2 LCD。黃色 LED 表示指紋模塊已準(zhǔn)備好拍攝手指圖像,綠色 LED 表示系統(tǒng)已準(zhǔn)備好進行投票或查看結(jié)果。

1.png

按鈕直接連接到 Arduino 的引腳 A0(注冊)、A1(DEL)、A2(向上)、A3(向下)和 A4(匹配)、D5(Can1)、D4(Can2)、D3(Can3)、D2(結(jié)果)相對于接地。黃色 LED 通過 1k 電阻連接到 Arduino 的數(shù)字引腳 D7 相對于接地,綠色 LED 以相同的方法連接到 Arduino 的 D6。指紋模塊的 Rx 和 Tx 直接連接到 Arduino 的串行引腳 Tx 和 Rx。5v 電源用于為取自 Arduino 板的指紋模塊供電。A5 處還連接了一個蜂鳴器。16x2 LCD 配置為 4 位模式,其 RS、EN、D4、D5、D6 和 D7 直接連接到 Arduino 的數(shù)字引腳 D13、D12、D11、D10、D9 和 D8。

程序說明:

在設(shè)置功能中,我們已經(jīng)給出了定義引腳的方向,并啟動了LCD和指紋模塊。

之后,在 void loop() 函數(shù)中,我們等待檢查鍵并按匹配鍵開始指紋進行輸入并將捕獲的圖像ID與存儲的ID進行比較。如果發(fā)生匹配,則繼續(xù)下一步。

void loop() 
{
 lcd.setCursor(0,0);
 lcd.print("Press Match Key ");
 lcd.setCursor(0,1);
 lcd.print("to start system");
 
 digitalWrite(indVote, LOW);
 digitalWrite(indFinger, LOW);
 if(digitalRead(match)==0)
 {
  digitalWrite(buzzer, HIGH);
  delay(200);
  digitalWrite(buzzer, LOW);
  digitalWrite(indFinger, HIGH);
  for(int i=0;i<3;i++)
..... .....
....... ....

給定 void checkKeys() 函數(shù)用于檢查是否按下注冊或 DEL 鍵以及按下時該怎么做。如果按下 ENROL 鍵,則調(diào)用 Enroll( ) 函數(shù)并按下 DEL 鍵,則調(diào)用 delete() 函數(shù)。

void checkKeys()
{
   if(digitalRead(enroll) == 0)
   {
    lcd.clear();
    lcd.print("Please Wait");
    delay(1000);
    while(digitalRead(enroll) == 0);
    Enroll();
   }

   else if(digitalRead(del) == 0)
   {
    lcd.clear();
    lcd.print("Please Wait");
    delay(1000);
    delet();
   }  
}

給定函數(shù)用于輸入要刪除的 ID 并調(diào)用uint8_t *deleteFingerprint(uint8_t id) *函數(shù),該函數(shù)將從記錄中刪除手指。

void delet()
{
   int count=0;
   lcd.clear();
   lcd.print("Delete Finger    ");
   lcd.setCursor(0,1);
   lcd.print("Location:");
   while(1)
   {
     lcd.setCursor(9,1);
     lcd.print(count);
     if(digitalRead(up) == 0)
     {
       count++;
       if(count>25)
       count=0;
       delay(500);
     }
.... .....
..... .....

給定功能用于從所選ID的記錄中刪除指紋。

uint8_t deleteFingerprint(uint8_t id) 
{
  uint8_t p = -1;  
  lcd.clear();
  lcd.print("Please wait");
  p = finger.deleteModel(id);
  if (p == FINGERPRINT_OK) 
  {
    Serial.println("Deleted!");
    lcd.clear();
    lcd.print("Figer Deleted");
    lcd.setCursor(0,1);
    lcd.print("Successfully");
    delay(1000);
  } 
  
  else 
  {
    Serial.print("Something Wrong"); 
    lcd.clear();
    lcd.print("Something Wrong");
    lcd.setCursor(0,1);
    lcd.print("Try Again Later");
    delay(2000);
    return p;
  }   
}

給定功能用于獲取指紋圖像并將其轉(zhuǎn)換為模板,并通過選定的ID將其保存到指紋模塊存儲器中。

uint8_t getFingerprintEnroll() 
{
  int p = -1;
  lcd.clear();
  lcd.print("finger ID:");
  lcd.print(id);
  lcd.setCursor(0,1);
  lcd.print("Place Finger");
  delay(2000);
  while (p != FINGERPRINT_OK)
  {
    p = finger.getImage();
..... .....
....... ....

給定函數(shù)用于投票和顯示結(jié)果:

void Vote()
{
  lcd.clear();
  lcd.print("Please Place");
  lcd.setCursor(0,1);
  lcd.print("Your Vote");
  digitalWrite(indVote, HIGH);
  digitalWrite(indFinger, LOW);
  digitalWrite(buzzer, HIGH);
  delay(500);
  digitalWrite(buzzer, LOW);
  delay(1000);
  while(1)
  {
        if(digitalRead(sw1)==0)

#include

#include

LiquidCrystal lcd(13,12,11,10,9,8);

#include

uint8_t id;

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial);

#define enroll 14

#define del 15

#define up 16

#define down 17

#define match 18

#define indVote 6

#define sw1 5

#define sw2 4

#define sw3 3

#define resultsw 2

#define indFinger 7

#define buzzer 19

#define records 25

int vote1,vote2,vote3;

int flag;

void setup()

{

delay(1000);

pinMode(enroll, INPUT_PULLUP);

pinMode(up, INPUT_PULLUP); 

pinMode(down, INPUT_PULLUP); 

pinMode(del, INPUT_PULLUP);

pinMode(match, INPUT_PULLUP);

pinMode(sw1, INPUT_PULLUP); 

pinMode(sw2, INPUT_PULLUP);

pinMode(sw3, INPUT_PULLUP);

pinMode(resultsw, INPUT_PULLUP);

pinMode(buzzer, OUTPUT);

pinMode(indVote, OUTPUT);

pinMode(indFinger, OUTPUT);

lcd.begin(16,2);

if(digitalRead(resultsw) ==0)

{

for(int i=0;iEEPROM.write(i+10,0xff);

   EEPROM.write(0,0);

   EEPROM.write(1,0);

   EEPROM.write(2,0);

   lcd.clear();

   lcd.print("System Reset");

   delay(1000);

}

lcd.clear();

lcd.print("Voting Machine");

lcd.setCursor(0,1);

lcd.print("by Finger Print");

delay(2000);

lcd.clear();

lcd.print("Circuit Digest");

lcd.setCursor(0,1);

lcd.print("Saddam Khan");

delay(2000);

if(EEPROM.read(0) == 0xff)

EEPROM.write(0,0);

if(EEPROM.read(1) == 0xff)

EEPROM.write(1,0);

if(EEPROM.read(1) == 0xff)

EEPROM.write(1,0);

//finger.begin(57600);

Serial.begin(57600);

lcd.clear();

lcd.print("Finding Module");

lcd.setCursor(0,1);

delay(1000);

if (finger.verifyPassword()) 

{

  //Serial.println("Found fingerprint sensor!");

  lcd.clear();

  lcd.print("Found Module ");

  delay(1000);

} 

else 

{

//Serial.println("Did not find fingerprint sensor :(");

lcd.clear();

lcd.print("module not Found");

lcd.setCursor(0,1);

lcd.print("Check Connections");

while (1);

}

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Cn1");

lcd.setCursor(4,0);

lcd.print("Cn2");

lcd.setCursor(8,0);

lcd.print("Cn3");

lcd.setCursor(12,0);

lcd.print("Cn4");

lcd.setCursor(0,1);

vote1=EEPROM.read(0);

lcd.print(vote1);

lcd.setCursor(6,1);

vote2=EEPROM.read(1);

lcd.print(vote2);

lcd.setCursor(12,1);

vote3=EEPROM.read(2);

lcd.print(vote3);

delay(2000);

}

void loop()

{

lcd.setCursor(0,0);

lcd.print("Press Match Key ");

lcd.setCursor(0,1);

lcd.print("to start system");

digitalWrite(indVote, LOW);

digitalWrite(indFinger, LOW);

if(digitalRead(match)==0)

{

digitalWrite(buzzer, HIGH);

delay(200);

digitalWrite(buzzer, LOW);

digitalWrite(indFinger, HIGH);

for(int i=0;i<3;i++)

{

lcd.clear();

lcd.print("Place Finger");

delay(2000);

int result=getFingerprintIDez();

if(result>=0)

{

  flag=0;

    for(int i=0;i
    {

      if(result == EEPROM.read(i+10))

      {

         lcd.clear();

          lcd.print("Authorised Voter");

          lcd.setCursor(0,1);

          lcd.print("Please Wait....");

          delay(1000);

          Vote();

          EEPROM.write(i+10, 0xff);

          flag=1;

          return;

      }

    }



    if(flag == 0)

    {

    lcd.clear();

    lcd.print("Already Voted");

    //lcd.setCursor(0,1);

    //lcd.print("")

    digitalWrite(buzzer, HIGH);

    delay(5000);

    digitalWrite(buzzer, LOW);

    return;

    }

 }

}

lcd.clear();

}

checkKeys();

delay(1000);

}

void checkKeys()

{

if(digitalRead(enroll) == 0)

{

lcd.clear();

lcd.print("Please Wait");

delay(1000);

while(digitalRead(enroll) == 0);

Enroll();

}

else if(digitalRead(del) == 0)

{

lcd.clear();

lcd.print("Please Wait");

delay(1000);

delet();

}

}

void Enroll()

{

int count=0;

lcd.clear();

lcd.print("Enter Finger ID:");

while(1)

{

lcd.setCursor(0,1);

 lcd.print(count);

 if(digitalRead(up) == 0)

 {

   count++;

   if(count>25)

   count=0;

   delay(500);

 }



 else if(digitalRead(down) == 0)

 {

   count--;

   if(count<0)

   count=25;

   delay(500);

 }

 else if(digitalRead(del) == 0)

 {

      id=count;

      getFingerprintEnroll();

      for(int i=0;iif(EEPROM.read(i+10) == 0xff)

        {

          EEPROM.write(i+10, id);

          break;

        }

      }

      return;

 }



   else if(digitalRead(enroll) == 0)

 {        

      return;

 }

}

}

void delet()

{

int count=0;

lcd.clear();

lcd.print("Enter Finger ID");

while(1)

{

lcd.setCursor(0,1);

 lcd.print(count);

 if(digitalRead(up) == 0)

 {

   count++;

   if(count>25)

   count=0;

   delay(500);

 }



 else if(digitalRead(down) == 0)

 {

   count--;

   if(count<0)

   count=25;

   delay(500);

 }

 else if(digitalRead(del) == 0)

 {

      id=count;

      deleteFingerprint(id);

      for(int i=0;iif(EEPROM.read(i+10) == id)

        {

          EEPROM.write(i+10, 0xff);

          break;

        }

      }

      return;

 }

   else if(digitalRead(enroll) == 0)

 {        

      return;

 }

}

}

uint8_t getFingerprintEnroll()

{

int p = -1;

lcd.clear();

lcd.print("finger ID:");

lcd.print(id);

lcd.setCursor(0,1);

lcd.print("Place Finger");

delay(2000);

while (p != FINGERPRINT_OK)

{

p = finger.getImage();

switch (p)

{

case FINGERPRINT_OK:

  //Serial.println("Image taken");

  lcd.clear();

  lcd.print("Image taken");

  break;

case FINGERPRINT_NOFINGER:

  //Serial.println("No Finger");

  lcd.clear();

  lcd.print("No Finger");

  break;

case FINGERPRINT_PACKETRECIEVEERR:

  //Serial.println("Communication error");

  lcd.clear();

  lcd.print("Comm Error");

  break;

case FINGERPRINT_IMAGEFAIL:

  //Serial.println("Imaging error");

  lcd.clear();

  lcd.print("Imaging Error");

  break;

default:

  //Serial.println("Unknown error");

   lcd.clear();

  lcd.print("Unknown Error");

  break;

}

}

// OK success!

p = finger.image2Tz(1);

switch (p) {

case FINGERPRINT_OK:

  //Serial.println("Image converted");

  lcd.clear();

  lcd.print("Image converted");

  break;

case FINGERPRINT_IMAGEMESS:

  //Serial.println("Image too messy");

   lcd.clear();

   lcd.print("Image too messy");

  return p;

case FINGERPRINT_PACKETRECIEVEERR:

  //Serial.println("Communication error");

        lcd.clear();

  lcd.print("Comm Error");

  return p;

case FINGERPRINT_FEATUREFAIL:

  //Serial.println("Could not find fingerprint features");

        lcd.clear();

  lcd.print("Feature Not Found");

  return p;

case FINGERPRINT_INVALIDIMAGE:

  //Serial.println("Could not find fingerprint features");

              lcd.clear();

  lcd.print("Feature Not Found");

  return p;

default:

  //Serial.println("Unknown error");

              lcd.clear();

  lcd.print("Unknown Error");

  return p;

}

//Serial.println("Remove finger");

lcd.clear();

lcd.print("Remove Finger");

delay(2000);

p = 0;

while (p != FINGERPRINT_NOFINGER) {

p = finger.getImage();

}

//Serial.print("ID "); //Serial.println(id);

p = -1;

//Serial.println("Place same finger again");

lcd.clear();

lcd.print("Place Finger");

  lcd.setCursor(0,1);

  lcd.print("   Again");

while (p != FINGERPRINT_OK) {

p = finger.getImage();

switch (p) {

case FINGERPRINT_OK:

  //Serial.println("Image taken");

  break;

case FINGERPRINT_NOFINGER:

  //Serial.print(".");

  break;

case FINGERPRINT_PACKETRECIEVEERR:

  //Serial.println("Communication error");

  break;

case FINGERPRINT_IMAGEFAIL:

  //Serial.println("Imaging error");

  break;

default:

  //Serial.println("Unknown error");

  return;

}

}

// OK success!

p = finger.image2Tz(2);

switch (p) {

case FINGERPRINT_OK:

  //Serial.println("Image converted");

  break;

case FINGERPRINT_IMAGEMESS:

  //Serial.println("Image too messy");

  return p;

case FINGERPRINT_PACKETRECIEVEERR:

  //Serial.println("Communication error");

  return p;

case FINGERPRINT_FEATUREFAIL:

  //Serial.println("Could not find fingerprint features");

  return p;

case FINGERPRINT_INVALIDIMAGE:

  //Serial.println("Could not find fingerprint features");

  return p;

default:

  //Serial.println("Unknown error");

  return p;

}

// OK converted!

//Serial.print("Creating model for #"); //Serial.println(id);

p = finger.createModel();

if (p == FINGERPRINT_OK) {

//Serial.println("Prints matched!");

} else if (p == FINGERPRINT_PACKETRECIEVEERR) {

//Serial.println("Communication error");

return p;

} else if (p == FINGERPRINT_ENROLLMISMATCH) {

//Serial.println("Fingerprints did not match");

return p;

} else {

//Serial.println("Unknown error");

return p;

}

//Serial.print("ID "); //Serial.println(id);

p = finger.storeModel(id);

if (p == FINGERPRINT_OK) {

//Serial.println("Stored!");

lcd.clear();

lcd.print("Stored!");

delay(2000);

} else if (p == FINGERPRINT_PACKETRECIEVEERR) {

//Serial.println("Communication error");

return p;

} else if (p == FINGERPRINT_BADLOCATION) {

//Serial.println("Could not store in that location");

return p;

} else if (p == FINGERPRINT_FLASHERR) {

//Serial.println("Error writing to flash");

return p;

}

else {

//Serial.println("Unknown error");

return p;

}

}

int getFingerprintIDez()

{

uint8_t p = finger.getImage();

if (p != FINGERPRINT_OK)

return -1;

p = finger.image2Tz();

if (p != FINGERPRINT_OK)

return -1;

p = finger.fingerFastSearch();

if (p != FINGERPRINT_OK)

{

lcd.clear();

lcd.print("Finger Not Found");

lcd.setCursor(0,1);

lcd.print("Try Later");

delay(2000);

return -1;

}

// found a match!

//Serial.print("Found ID #");

//Serial.print(finger.fingerID);

return finger.fingerID;

}

uint8_t deleteFingerprint(uint8_t id)

{

uint8_t p = -1;

lcd.clear();

lcd.print("Please wait");

p = finger.deleteModel(id);

if (p == FINGERPRINT_OK)

{

//Serial.println("Deleted!");

lcd.clear();

lcd.print("Figer Deleted");

lcd.setCursor(0,1);

lcd.print("Successfully");

delay(1000);

}

else

{

//Serial.print("Something Wrong"); 

lcd.clear();

lcd.print("Something Wrong");

lcd.setCursor(0,1);

lcd.print("Try Again Later");

delay(2000);

return p;

}

}

void Vote()

{

lcd.clear();

lcd.print("Please Place");

lcd.setCursor(0,1);

lcd.print("Your Vote");

digitalWrite(indVote, HIGH);

digitalWrite(indFinger, LOW);

digitalWrite(buzzer, HIGH);

delay(500);

digitalWrite(buzzer, LOW);

delay(1000);

while(1)

{

if(digitalRead(sw1)==0)

    {

      vote1++;

      voteSubmit(1);

      EEPROM.write(0, vote1);

      while(digitalRead(sw1)==0);

      return;

    }

    if(digitalRead(sw2)==0)

    {

      vote2++;

        voteSubmit(2);

        EEPROM.write(1, vote2);

      while(digitalRead(sw2)==0);

      return;

    }

    if(digitalRead(sw3)==0)

    {

      vote3++;

         voteSubmit(3);

         EEPROM.write(2, vote3);

      while(digitalRead(sw3)==0);

      return;

    }

    

     if(digitalRead(resultsw)==0)

     {

          lcd.clear();

          lcd.setCursor(0,0);

          lcd.print("Can1");

          lcd.setCursor(6,0);

          lcd.print("Can2");

          lcd.setCursor(12,0);

          lcd.print("Can3");

          for(int i=0;i<3;i++)

          {

            lcd.setCursor(i*6,1);

            lcd.print(EEPROM.read(i));

          }

          delay(2000);

       int vote=vote1+vote2+vote3;

       if(vote)

       {

        if((vote1 > vote2 && vote1 > vote3))

        {

         lcd.clear();

         lcd.print("Can1 Wins");

         delay(2000);

         lcd.clear();

        }

        else if(vote2 > vote1 && vote2 > vote3)

        {

         lcd.clear();

         lcd.print("Can2 Wins");

         delay(2000);

         lcd.clear();

        }

        else if((vote3 > vote1 && vote3 > vote2))

        {

         lcd.clear();

         lcd.print("Can3 Wins");

         delay(2000);

         lcd.clear();

        }

       

       else

       {

         lcd.clear();

         lcd.print("   Tie Up Or   ");

         lcd.setCursor(0,1);

         lcd.print("   No Result   ");

         delay(1000);

         lcd.clear();

       }

       

      }      

       else 

       {

         lcd.clear();

         lcd.print("No Voting....");

         delay(1000);

         lcd.clear();

       }

       vote1=0;vote2=0;vote3=0;vote=0;

       lcd.clear();

       return;

     }

}

digitalWrite(indVote, LOW);

}

void voteSubmit(int cn)

{

lcd.clear();

if(cn == 1)

lcd.print("Can1");

else if(cn == 2)

lcd.print("Can2");

else if(cn == 3)

lcd.print("Can3");

lcd.setCursor(0,1);

lcd.print("Vote Submitted");

digitalWrite(buzzer , HIGH);

delay(1000);

digitalWrite(buzzer, LOW);

digitalWrite(indVote, LOW);

return;

}


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 生物識別
    +關(guān)注

    關(guān)注

    3

    文章

    1210

    瀏覽量

    52518
  • 指紋傳感器
    +關(guān)注

    關(guān)注

    6

    文章

    195

    瀏覽量

    63470
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6468

    瀏覽量

    186952
收藏 人收藏

    評論

    相關(guān)推薦

    DIY一個屬于你的Arduino投票

    這個項目是教你如何使用簡單的組件,如按鈕和LCD打造一個基于Arduino投票,本系統(tǒng)的突出亮點是串行監(jiān)視器中的Arduino IDE用于執(zhí)行輪詢操作,不需要其他外部應(yīng)用程序。
    的頭像 發(fā)表于 11-05 09:18 ?1.1w次閱讀

    虹膜/指紋/人臉識別 誰是生物識別黑科技?

    識別方式來看,生物識別可以分為指紋識別、人臉識別、聲音識別、虹膜
    發(fā)表于 10-15 08:58 ?2263次閱讀

    如何使用Arduino指紋模塊制作生物識別考勤系統(tǒng)

    ,8051和樹莓派的其他電子考勤系統(tǒng)項目。在這個項目中,我們使用指紋模塊和Arduino來獲取和保存考勤數(shù)據(jù)和記錄。通過使用指紋傳感器,系統(tǒng)對用戶來說將變得更加安全。以下部分介紹了**使用 A
    的頭像 發(fā)表于 01-25 15:54 ?3436次閱讀
    如何使用<b class='flag-5'>Arduino</b>和<b class='flag-5'>指紋</b>模塊制作<b class='flag-5'>生物</b><b class='flag-5'>識別</b>考勤系統(tǒng)

    指紋識別在新型學(xué)籍管理系統(tǒng)中的應(yīng)用

    動態(tài)信息的有效性和真實性識別能力,目前還是采用傳統(tǒng)的書面簽字方法.為此,結(jié)合廈門大學(xué)新型教務(wù)管理系統(tǒng)的開發(fā),采用指紋識別技術(shù),構(gòu)建了針對學(xué)籍信息管理系統(tǒng)模塊的遠程簽到系統(tǒng).引入指紋考勤
    發(fā)表于 04-24 09:47

    指紋識別電子鎖(單片+集成指紋模塊)

    些力不從心。隨著生物識別技術(shù)逐漸興起,傳統(tǒng)的安全防盜系統(tǒng)面臨極大的挑戰(zhàn)。基于這種現(xiàn)狀,我們提出了一套項目旨在通過對Atmeg16單片的學(xué)習(xí),以安全防盜為目的,設(shè)計出一款基于單片指紋
    發(fā)表于 12-05 01:06

    新唐指紋識別

    指紋識別技術(shù)是一種生物識別技術(shù)。指紋識別系統(tǒng)是一套包括指紋圖像獲取、處理、特征提取和比對等模塊的模式識別系統(tǒng)。
    發(fā)表于 01-27 15:06

    如何開發(fā)嵌入式指紋識別系統(tǒng)?

    生理測定技術(shù)是當(dāng)前研究的熱點之一。目前,有很多技術(shù)等生物測定技術(shù)可用于身份認(rèn)證,包括:虹膜識別、視網(wǎng)膜識別、面部識別、簽名識別、聲音
    發(fā)表于 09-20 07:19

    生物識別技術(shù)可靠嗎?

    其實,生物識別技術(shù)還可以稱之為生物特征識別技術(shù)。這種技術(shù)是通過利用生物本身具備唯一性的特征來進行身份識別的技術(shù)手段,然而具備
    發(fā)表于 11-02 07:13

    怎樣去設(shè)計一種基于單片指紋識別電子密碼鎖

    文末下載完整資料1.1指紋識別簡介1.1.1指紋識別原理??指紋識別技術(shù)的原理和其它生物識別技術(shù)的原理相似。它是利用人體的指紋特征對個體身份
    發(fā)表于 07-13 09:04

    求一種指紋識別方案

    指紋識別技術(shù)是眾多生物特征識別技術(shù)中的一種,指紋識別是將識別對象的指紋進行分類比對從而進行判別。
    發(fā)表于 07-21 09:08

    絕對實用的ARM指紋識別系統(tǒng)方案

    最為實用、應(yīng)用最為廣泛的生物識別技術(shù),尤其在民用生物識別技術(shù)中。    傳統(tǒng)的指紋識別系統(tǒng)都是基于PC的,這種系統(tǒng)具有識別速度快、樣本存儲
    發(fā)表于 11-09 06:02

    生物識別三大技術(shù)(指紋、人臉、虹膜)趨勢分析

    全球生物識別市場結(jié)構(gòu)中,指紋識別份額達到58%,人臉識別的份額為18%,緊隨其后的是新興的虹膜識別,份額為7%,此外還有與
    發(fā)表于 07-22 11:50 ?6659次閱讀

    生物識別如何應(yīng)對AI生成的指紋

    基于指紋的身份驗證仍然是保護設(shè)備或系統(tǒng)的一種有效方法,但大多數(shù)系統(tǒng)都不會驗證指紋或其他生物識別特征是來自真人還是復(fù)制品。
    發(fā)表于 07-30 11:33 ?1042次閱讀

    如何使用Arduino制作生物特征投票

    電子發(fā)燒友網(wǎng)站提供《如何使用Arduino制作生物特征投票.zip》資料免費下載
    發(fā)表于 11-22 10:59 ?0次下載
    如何使用<b class='flag-5'>Arduino</b>制作<b class='flag-5'>生物</b>特征<b class='flag-5'>投票</b><b class='flag-5'>機</b>

    生物識別有哪些方式?

    。 1、指紋識別技術(shù) 指紋識別技術(shù)是數(shù)字生物識別技術(shù)中最為普及的技術(shù)之一,它可通過光學(xué)、電容、超聲波等不同的方式來確定指紋圖案。指紋識別技術(shù)
    的頭像 發(fā)表于 08-11 19:22 ?2032次閱讀
    主站蜘蛛池模板: 国产麻豆精品久久一二三 | 日本精品久久久久中文字幕| japanese幼儿videos| 奇米精品一区二区三区在线观看| 超碰97av 在线人人操| 少妇连续高潮抽搐痉挛昏厥| 国产伦精品一区二区三区| 亚洲黄色录像片| 久久精品久久精品| 95国产精品人妻无码久| 欧美一区二区视频在线观看| 古风一女N男到处做高H| 亚洲AV久久无码精品九九软件 | 久久性综合亚洲精品电影网| 99re6久久在热线视频| 日本红怡院亚洲红怡院最新| 国产精品美女久久久久浪潮AV| 亚洲精品成人AV在线观看爽翻| 久久久无码精品一区二区三区 | 免费精品美女久久久久久久久| 阿片在线播放| 武汉美女洗澡| 久久精品国产欧美成人| younv 学生国产在线视频| 午夜福利视频极品国产83| 久久青青草原| 超碰公开在线caopon| 亚洲国产成人在线| 巨乳中文无码亚洲| 爆操日本美女| 亚洲VA欧美VA天堂V国产综合| 黄页网址大全免费观看| 99国产强伦姧在线看RAPE| 揉抓捏打抽插射免费视频| 国产人妻精品午夜福利免费不卡| 亚洲免费无码中文在线| 狂操空姐电影| 波多野结衣 无码片| 小黄飞二人转| 久久re这里视频只有精品首页| 97国产精品久久精品国产|