4 4鍵盤密碼鎖

2021-09-02 13:49:24 字數 1883 閱讀 8687

繼上次關於4*4矩陣式鍵盤學習之後,於是乎,我就想為何不將他製作成乙個簡單的類似於密碼鎖的小玩意。

首先,我們先構思這個密碼鎖應該有什麼功能,當然最重要的是,他能夠輸入數字,其次我們得要乙個初始密碼,如果輸入值與初始密碼相匹配,列印出「welcome」,如果不匹配則輸入清零並且提示輸入錯誤,總共有四次錯誤機會,如果超過四次,則需要等待30秒直到顯示「try again"時才能再次輸入。

首先我們需要準備的材料有:

4*4矩陣式鍵盤

arduino 板

lcd1602液晶顯示器

對於初始密碼的設定,我們需要用到eeprom。在這裡,簡單介紹一下eeprom

eeprom(帶電可擦寫可程式設計讀寫儲存器)是使用者可更改的唯讀儲存器(rom),其可通過高於普通電壓的作用來擦除和重程式設計(重寫)。不像eprom晶元,eeprom不需從計算機中取出即可修改。eeprom是一種特殊形式的快閃儲存器,其應用通常是個人電腦中的電壓來擦寫和重程式設計

electrically erasable programmable read only memory(eeprom)

電氣可拭除可程式設計唯讀儲存器

lcd1602的接線圖忘記了的可以看這個

之後就是我們的原密碼**部分,當然,大家可以按照自己的喜好隨意更改。

#include void setup() 

void loop()

碼先燒錄到 arduino中為0306,之後我們就能開始編寫密碼鎖。(燒錄完初始密碼後,再燒錄密碼鎖程式並不會清除原來的密碼)

#include #include #include #include liquidcrystal mylcd(0, 1, 9, 10, 11, 12);

const byte rows = 4;

const byte cols = 4;

int a;

char keys[rows][cols] = ,,,

};byte rowpins[rows] = ;

byte colpins[cols] = ;

keypad keypad = keypad( makekeymap(keys), rowpins, colpins, rows, cols );

string opw = ""; //oldpassword

string npw = ""; //這裡可以在修改密碼使用到

int falsh = 0; //記錄輸入錯誤次數

string input = ""; //輸入

void setup()

serial.println("the oldpassword is "); //串列埠列印出初始密碼

serial.println(opw);

delay (5000);

serial.flush(); //清除串列埠的資料

mylcd.setcursor(0, 0);

mylcd.print("input");

}void loop()

if (input == opw) //當密碼匹配

else if (input.length() == 4 && input != opw)}}

串列埠經過實驗可以完成他的功能,但是lcd1602 的部分,大家需按照自己的需求更改,在這裡我的1602一直顯示亂碼,其原因還未找出,如果是程式的問題還請大家指出。

利用矩陣鍵盤製作密碼鎖

本週學習了關於矩陣鍵盤的知識,並利用矩陣鍵盤製作了密碼鎖。矩陣鍵盤利用矩陣式的連線減少了io口的使用,並用掃瞄的方式保證每乙個按鍵的響應。下面是 main include include lcd1602.h include delay.h include matrixkey.h unsigned c...

電子密碼鎖

最近剛寫乙個電子密碼鎖的程式,使用verilog語言實現的。剛剛學這個語言,練習一下。感覺這個語言不是很難,而且通過學這個語言,感覺自己還能通過自學掌握一門語言,挺有成就感的。雖然現在只懂verilog最基本的一些語法,但是通過不斷練習我會不加深入的掌握它,也有信心自學更多的。加油!密碼輸入 刪除模...

實用密碼鎖

unsigned char num,i,j unsigned char passwordtemp 16 最大輸入16個 unsigned char inputtimes 密碼輸入錯誤次數 unsigned char passwordlength,plen 輸入密碼長度,實際密碼長度 bit flag...