Drošība ir nopietnas rūpes mūsu ikdienas dzīvē, un digitālās slēdzenes ir kļuvušas par nozīmīgu šo drošības sistēmu daļu. Mūsu vietas nodrošināšanai ir pieejamas daudz veidu tehnoloģijas, piemēram, uz PIR balstītas drošības sistēmas, uz RFID balstīta drošības sistēma, lāzera drošības trauksmes signāli, biomatricas sistēmas utt. Pat tagad ir digitālās slēdzenes, kuras var darbināt, izmantojot mūsu viedtālruņus, nozīmē, ka nē vairāk jāglabā dažādi taustiņi, tikai viens viedtālrunis var darbināt visas slēdzenes, šī koncepcija ir balstīta uz lietu internetu.
Šajā projektā mēs esam izskaidrojuši vienkāršu elektronisko kodu bloķēšanu, izmantojot 8051 Microcontorller, kuru var atbloķēt tikai ar iepriekš noteiktu kodu, ja mēs ievadām nepareizu kodu, sistēma brīdina ar sirēnas skaņas signālu. Mēs jau esam izveidojuši digitālo slēdzeni, izmantojot Arduino.
Darba skaidrojums:
Šī sistēma galvenokārt satur mikrokontrolleru AT89S52, tastatūras moduli, skaņas signālu un LCD. At89s52 mikrokontrolleris kontrolē visus procesus, piemēram, paroles formas tastatūras moduļa ņemšanu, iepriekš definētas paroles salīdzināšanu, skaņas signāla vadīšanu un sūtīšanas statusu LCD displejā. Tastatūru izmanto paroles ievietošanai mikrokontrollerī. Buzzer tiek izmantots nepareizas paroles norādīšanai, un LCD tiek izmantots statusa vai ziņojumu parādīšanai tajā. Buzzer ir iebūvēts draiveris, izmantojot NPN tranzistoru.
Komponenti:
- 8051 mikrokontrolleris (AT89S52)
- 4X4 tastatūras modulis
- Buzzer
- 16x2 LCD
- Rezistors (1k, 10k)
- Paceļamais rezistors (10K)
- Kondensators (10uf)
- Sarkans vadīja
- Maizes dēlis
- IC 7805
- 11,0592 MHz kristāls
- Enerģijas padeve
- Savienojošie vadi
Ieejas iegūšana no 4X4 tastatūras matricas, izmantojot multipleksēšanas tehniku:
Šajā shēmā mēs esam izmantojuši multipleksēšanas paņēmienu, lai tastatūru savienotu ar mikrokontrolleru 8051, lai ievadītu paroli sistēmā. Šeit mēs izmantojam 4x4 tastatūru, kurai ir 16 taustiņi. Ja mēs vēlamies izmantot 16 taustiņus, savienojumam ar 89s52 mums ir vajadzīga 16 kontaktu, bet multipleksēšanas tehnikā 16 taustiņu saskarnēm jāizmanto tikai 8 tapas. Tā, ka tas ir gudrs veids, kā saskarni papildināt ar tastatūru.
Multipleksēšanas tehnika ir ļoti efektīvs veids, kā samazināt ar mikrokontrolleru izmantoto tapu skaitu ievades vai paroles nodrošināšanai. Būtībā šo paņēmienu izmanto divējādi - viens ir rindu skenēšana, bet otrs - kolonnu skenēšana.
Šeit mēs izskaidrosim rindu skenēšanu:
Vispirms mums ir jānosaka tastatūras moduļa 8 kontakti. Kurās pirmajās 4 tapās ir kolonna un pēdējās 4 tapās ir rindas.
Rindu skenēšanai mums jāsniedz dati vai signāls kolonnu tapām un jāizlasa šie dati vai signāls no rindas tapas. Tagad pieņemsim, ka kolonnu tapām mēs sniedzam šādus datus:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
Un mēs šos datus lasījām pie rindu tapām (pēc noklusējuma rindu tapas ir AUGSTAS, pateicoties pievilkšanas rezistoram).
Ja lietotājs nospiež taustiņa numuru '1', tad R1 maina HIGH uz LOW nozīmē R1 = 0; un kontrolieris saprot, ka lietotājs ir nospiedis taustiņu '1'. Tas uz LCD drukās “1” un masīvā saglabās “1”. Tātad šī HIGH līdz LOW izmaiņa R1 ir galvenā lieta, ar kuru kontrolieris saprot, ka ir nospiests kāds taustiņš, kas atbilst 1. kolonnai.
Ja lietotājs nospiež taustiņa numuru '2', tad R1 paliek HIGH, jo C1 un R1 abi jau ir HIGH. Tādējādi izmaiņas nebūs, tas nozīmē, ka mikrokontrolleris saprot, ka pirmajā kolonnā nekas nav nospiests. Un tāpat šis princips attiecas uz visiem citiem tapām. Tātad šajā solī kontrolieris gaida tikai pirmās kolonnas atslēgas: '1', '4', '7' un '*'.
Tagad, ja mēs vēlamies izsekot taustiņus citās kolonnās (piemēram, 2. slejā), mums jāmaina dati kolonnu tapās:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Šis laika kontrolieris gaida taustiņus tikai otrajā kolonnā: '2', '5', '8' un '0', jo izmaiņas (HIGH to LOW) notiek tikai tad, kad tiek nospiesti divi kolonnas taustiņi. Ja nospiežam jebkuru taustiņu 1., 3. vai 4. kolonnā, izmaiņas nenotiks, jo šīs kolonnas atrodas HIGH un Rows jau ir HIGH.
Tātad arī C3 un C4 kolonnas taustiņus var izsekot, vienlaikus padarot tos 0. Šeit pārbaudiet detalizētu skaidrojumu: Tastatūras mijiedarbība ar 8051. Lai pareizi izprastu loģiku, apmeklējiet arī sadaļu Kods.
Ķēdes skaidrojums:
Šīs digitālās slēdzenes shēma, izmantojot 8051, ir parādīta zemāk un to var viegli saprast. Tastatūras moduļa kolonnas tapas ir tieši savienotas ar kontaktu P0.0, P0.1, P0.2, P0.3 un rindas tapas ir savienotas ar 89s52 mikrokontrollera porta 0 P0.4, P0.5, P0.6, P0.7 4x2 bitu režīmā 16x2 LCD ir savienots ar 89s52 mikrokontrolleru. Vadības tapa RS, RW un En ir tieši savienota ar tapām P1.0, GND un P1.2. Datu tapa D4-D7 ir savienota ar 89s52 tapām P1.4, P1.5, P1.6 un P1.7. Un viens zummeris ir savienots ar tapu P2.6 caur rezistoru.
Programmas skaidrojums:
Mēs programmā esam izmantojuši iepriekš noteiktu paroli, šo paroli lietotājs var definēt zemāk esošajā kodā. Kad lietotājs ievada sistēmā paroli, tad sistēma salīdzina lietotāja ievadīto paroli ar programmas Code saglabātu vai iepriekš noteiktu paroli. Ja notiek sakritība, LCD displejā būs redzams “Access Grated”, un, ja parole nesakrīt, LCD parādīs “Access Denied”, un skaņas signāls kādu laiku nepārtraukti pīkst. Šeit mēs izmantojām string.h bibliotēku. Izmantojot šo bibliotēku, mēs varam salīdzināt vai saskaņot divas virknes, izmantojot funkciju “strncmp”.
Programmā, pirmkārt, mēs iekļaujam galvenes failu un definējam mainīgos, kā arī ievades un izvades tapas tastatūrai un LCD.
# iekļaut
Ir izveidota funkcija 1 sekundes aizkaves izveidošanai, kā arī dažas LCD funkcijas, piemēram, LCD inicializēšanai, virknes drukāšanai, komandām utt. Tos var viegli atrast sadaļā Code. Pārbaudiet, vai šajā rakstā ir LCD saskarne ar 8051 un tā funkcijām.
Pēc tam galvenajā programmā mēs esam inicializējuši LCD un pēc tam mēs nolasījām ievadi no Tastatūras, izmantojot tastatūras () funkciju, un saglabājam ievades taustiņus masīvā un pēc tam salīdzinām to no iepriekš definētiem masīva datiem, izmantojot strncmp.
void main () {buzzer = 1; lcd_init (); lcdstring ("Elektroniskais kods"); lcdcmd (0xc0); lcdstring ("Bloķēšanas sistēma"); kavēšanās (400); lcdcmd (1); lcdstring ("Circuit Digest"); kavēšanās (400); kamēr (1) {i = 0; tastatūra (); ja (strncmp (piespēle, "4201", 4) == 0)
Ja ievadītā parole ir saskaņota, tiek izsaukta akceptēšanas () funkcija:
anulēt akceptēt () {lcdcmd (1); lcdstring ("Welcome"); lcdcmd (192); lcdstring ("Paroles pieņemšana"); kavēšanās (200); }
Ja parole ir nepareiza, tiek izsaukta nepareiza () funkcija:
anulēt nepareizi () {buzzer = 0; lcdcmd (1); lcdstring ("Nepareizs parole"); lcdcmd (192); lcdstring ("PLZ mēģiniet vēlreiz"); kavēšanās (200); skaņas signāls = 1; }
Pārbaudiet zemāk esošo tastatūras funkciju kodā, kas nolasa ievades formas tastatūras moduli.