Безбедност је главна брига у нашем свакодневном животу, а дигиталне браве постале су важан део ових безбедносних система. Једна таква дигитална кодна брава имитира се у овом пројекту помоћу ардуино плоче и матричне тастатуре.
Компоненте
- Ардуино
- Модул тастатуре
- Зујалица
- ЛЦД 16к2
- БЦ547 Транзистор
- Отпорник (1к)
- Даска за хлеб
- Снага
- Повезивање жица
У овом колу смо користили технику мултиплексирања за повезивање тастатуре за унос лозинке у систем. Овде користимо 4к4 тастатуру која садржи 16 тастера. Ако желимо да користимо 16 кључева, тада нам је потребан 16 пински за везу са ардуином, али у техници мултиплексирања морамо да користимо само 8 пинских за повезивање 16 кључева. Тако да је то паметан начин повезивања модула тастатуре.
Техника мултиплексирања: Техника мултиплексирања је врло ефикасан начин да се смањи број пинова који се користе са микроконтролером за пружање уноса или лозинке или бројева. У основи се ова техника користи на два начина - један је скенирање редова, а други скенирање дебелог црева. Али у овом пројекту који се заснива на ардуину користили смо библиотеку тастатуре, тако да не морамо да правимо никакав код за мултиплексирање за овај систем. За унос података морамо користити само библиотеку тастатуре.
Опис кола
Склоп овог пројекта је врло једноставан који садржи Ардуино, модул тастатуре, зујалицу и ЛЦД. Ардуино контролише комплетне процесе попут узимања лозинке из модула тастатуре, поређења лозинки, вожње зујалицом и слања статуса на ЛЦД екран. Тастатура се користи за преузимање лозинке. Звучни сигнал се користи за индикације, а ЛЦД се користи за приказ статуса или порука на њему. Зујалица се покреће помоћу НПН транзистора.
Прибадаче ступаца модула тастатуре директно су повезане на пинове 4, 5, 6, 7, а редне прибадаче 3, 2, 1, 0 ардуино уно. ЛЦД од 16к2 повезан је са ардуином у 4-битном режиму. Контролни пин РС, РВ и Ен су директно повезани са ардуино пином 13, ГНД и 12. А пин за податке Д4-Д7 повезан је са пиновима 11, 10, 9 и 8 ардуина. А један зујалица је повезан на пин 14 (А1) ардуина кроз БЦ547 НПН транзистор.
Рад
Користили смо уграђени ардуино-ов ЕЕПРОМ за спремање лозинке, па када први пут покренемо овај круг, програм чита податке о смећу из уграђеног ардуиновог ЕЕПРОМ-а и упоређује их са улазном лозинком и на ЛЦД-у даје поруку Одбијен приступ јер се лозинка не подудара. Да бисмо решили овај проблем, морамо први пут да поставимо подразумевану лозинку користећи доле наведени програм:
за (инт ј = 0; ј <4; ј ++) ЕЕПРОМ.врите (ј, ј + 49);
лцд.принт ("Унесите лозинку за ур:"); лцд.сетЦурсор (0,1); фор (инт ј = 0; ј <4; ј ++) пасс = ЕЕПРОМ.реад (ј);
Ово ће поставити лозинку „1234“ на ЕЕПРОМ од Ардуино.
Након првог покретања, ово морамо уклонити из програма и поново написати код у ардуино и покренути. Сада ће ваш систем радити добро. И ваша друга лозинка је сада „1234“. Сада га можете променити притиском на дугме #, а затим унесите тренутну лозинку, а затим унесите нову лозинку.
Када унесете лозинку, систем ће је упоредити са лозинком која се чува у ЕЕПРОМ-у ардуина. Ако се догоди подударање, на ЛЦД-у ће се приказати „приступ одобрен“, а ако је лозинка погрешна, тада ће ЛЦД „Приступ одбијен“ и зујало ће непрекидно оглашавати неко време. Зујалица се такође оглашава једанпут кад год корисник притисне било које дугме са тастатуре.
Опис програмирања
У коду смо користили библиотеку тастатуре за повезивање тастатуре са ардуином.
#инцлуде
цонст бите РОВС = 4; // четири реда цонст бите ЦОЛС = 4; // четири колоне цхар хекаКеис = {{'1', '2', '3', 'А'}, {'4', '5', '6', 'Б'}, {'7', ' 8 ',' 9 ',' Ц '}, {' * ',' 0 ',' # ',' Д '}}; бајт ровПинс = {3, 2, 1, 0}; // повезивање са линијама извода бајтова тастатуре цолПинс = {4, 5, 6, 7}; // повезивање са пиноутима колоне на тастатури // иницијализација инстанце класе НевКеипад Кеипад цустомКеипад = Кеипад (макеКеимап (хекаКеис), ровПинс, цолПинс, РОВС, ЦОЛС);
Укључили смо ЛЦД библиотеку за повезивање ЛЦД-а, а за повезивање ЕЕПРОМ-а укључили смо библиотеку ЕЕПРОМ.х., А затим иницијализовали променљиву и дефинисане пинове за компоненте.
#дефине зумер 15 ЛикуидЦристал лцд (13,12,11,10,9,8); цхар лозинка; цхар пасс, пасс1; инт и = 0; цхар цустомКеи = 0;
А онда смо иницијализирали ЛЦД и дали смер пиновима у функцији подешавања
воид сетуп () {лцд.бегин (16,2); пинМоде (лед, ИЗЛАЗ); пинМоде (зујалица, ИЗЛАЗ); пинМоде (м11, ИЗЛАЗ); пинМоде (м12, ИЗЛАЗ); лцд.принт („Електронски“); лцд.сетЦурсор (0,1); лцд.принт („Закључавање тастатуре“); кашњење (2000); лцд.цлеар (); лцд.принт ("Унесите лозинку за ур:"); лцд.сетЦурсор (0,1);
Након тога читамо тастатуру у функцији петље
цустомКеи = цустомКеипад.гетКеи (); иф (цустомКеи == '#') цханге (); иф (цустомКеи) {лозинка = цустомКеи; лцд.принт (цустомКеи); бип (); }
А затим упоредите лозинку са лозинком за спремање помоћу методе упоређивања стрингова.
иф (и == 4) {кашњење (200); фор (инт ј = 0; ј <4; ј ++) пасс = ЕЕПРОМ.реад (ј); иф (! (стрнцмп (лозинка, пролаз, 4))) {дигиталВрите (лед, ХИГХ); бип (); лцд.цлеар (); лцд.принт ("Пасскеи Аццептед"); кашњење (2000); лцд.сетЦурсор (0,1); лцд.принт ("#. Цханге Пасскеи"); кашњење (2000); лцд.цлеар (); лцд.принт ("Унесите лозинку:"); лцд.сетЦурсор (0,1); и = 0; дигиталВрите (лед, ЛОВ); }
Ово је функција промене лозинке и звучни сигнал
промена воид () {инт ј = 0; лцд.цлеар (); лцд.принт ("УР Цуррент Пасск"); лцд.сетЦурсор (0,1); вхиле (ј <4) {цхар кеи = цустомКеипад.гетКеи (); иф (кључ) {пасс1 = кључ; лцд.принт (кључ); воид бееп () {дигиталВрите (зујалица, ВИСОКО); кашњење (20); дигиталВрите (зујалица, ЛОВ); }