Kodelås på atmega8-ordningen. Kombinasjonslås på AVR ATTINY2313 mikrokontroller

En kombinasjonslås vil bidra til å begrense uautorisert tilgang til lokaler med verdisaker. Et av alternativene for å implementere en kombinasjonslås på PIC16F628A mikrokontrolleren er gitt i denne artikkelen.

Figuren under viser et diagram av en kombinasjonslås. Kjernen i kretsen er PIC16F628A mikrokontrolleren. Algoritmen for å utføre grunnleggende kommandoer er vist i figur 2. Programkoden er skrevet på assemblerspråk, se listen i CL\16F628ATEMP.ASM-mappen til prosjektarkivet. Enheten styres av én knapp. Ved å trykke på knappen oppnås en sekvensiell endring av driftsmodusene til enheten. Lyden av å trykke på knappen leveres av en piezolydgiver. Et display med innebygd kontroller brukes til å vise informasjon visuelt.

Hele syklusen av in-circuit programmering og feilsøking av PIC16F628A mikrokontrolleren ble utført ved bruk av MPLAB IDE v8.15 (integrert utviklingsmiljø), MPASM v5.22 kompilator (inkludert i MPLAB IDE v8.15) og MPLAB ICD 2 (in- kretsfeilsøker). For de som ikke har verktøyene som er oppført ovenfor, men har eget program for å jobbe med HEX-filer og en annen programmerer, kan du finne filen 16F628ATEMP.HEX i det tilsvarende prosjektet.

Mikrokontroller DD1 har funksjonelle pinner RA0, RB0 – RB7, CCP1, som brukes til å legge inn og ut informasjon. Mikrokontrolleren DD1 har ikke en tvungen tilbakestillingsfunksjon. Tilbakestillingspinnen er koblet gjennom motstand R1 til det positive forsyningspotensialet. En on-chip RC-oscillator brukes til å generere klokkefrekvensen.

Taktknapp SB1 er koblet til pinne RA0 gjennom strømbegrensende motstand R3. I den frigjorte posisjonen til SB1-klokkeknappen simulerer motstand R7 et lavt logisk nivå. Mikrokontrolleren DD1 gjenkjenner tre tilstander til SB1-klokkeknappen:

  1. Ikke trykket;
  2. Trykkes kort (mindre enn 1 s);
  3. Trykket og holdt (mer enn 1 s).

Piezo-lydsenderen P1 hjelper med å skille tilstandene til SB1-klokkeknappen. Så i tilstand 1 genereres ingen lyd, i tilstand 2 genereres lyd før mikrokontrolleren gjenkjenner tilstand 3, og i tilstand 3 genereres ingen lyd.

HG1 flytende krystallskjerm brukes til å vise informasjon. Tekniske spesifikasjoner for displayet finnes på nettsiden. Den har en kontroller som implementerer funksjonen for tegngenerering. Viser to linjer med seksten tegn hver. Skjermen styres gjennom mikrokontroller pinner RB0, RB1, RB4 – RB7. Data lastes inn i nibbles, gjennom pinnene RB4 – RB7. "Lås" - RB1. Vi velger signalregisteret på pinne RB0. Ved å bruke motstandene R5 og R6 setter vi kontrasten til skjermen HG1. Skjermens bakgrunnsbelysning er koblet til strøm via strømbegrensende motstand R4. HG1-skjermen er skrudd fast til brettet med 3 x 15 mm messingavstander og 3 x 6 mm skruer.

Ved å danne logikk på RB2 oppnår de åpning eller lukking av felteffekttransistoren VT1, som slår av og på den elektriske låsen koblet til X1-terminalblokken. Den elektriske låsen må være designet for en driftsspenning på 9-15 V og bruker en strøm på ikke mer enn 1 A. Når spenningen påføres den elektriske låsen, må den åpne hvis det ikke er spenning, er den blokkert (lukket; ).

En piezolydgiver P1 med en driftslydgenereringsfrekvens på 4 kHz er koblet til pinne CCP1 (maskinvareimplementering av PWM, frekvens 4 kHz, driftssyklus 2) gjennom strømbegrensende motstand R2.

Enheten får strøm fra en veksel- eller likespenningskilde koblet til kontakt X2. Den nominelle spenningen til strømforsyningen er 9 - 15 V. Merkestrømmen til strømforsyningen er 1 A. For å stabilisere strømforsyningen brukes en konvensjonell krets: en diodebro VD1, en lineær stabilisator DA1, filterkondensatorer C1 - C4.

Enheten kan brukes i temperaturområdet fra –20 °C til +70 °C.
Mikrokontrolleren er programmert på en slik måte at den har elleve driftstilstander.

  1. Når enheten er slått på, leses det ikke-flyktige EEPROM-dataminnet, hvor låsestatus og kodedata lastes ned. Enheten åpner eller lukker den elektriske låsen i henhold til leselåsstatusregisteret. Enheten går inn i en tilstand der den viser kodingsstatistikk, dvs. 2.
  2. I denne tilstanden viser enheten inskripsjonen "Stat. Stat." og på den nederste linjen viser kodingsstatistikk, nemlig antall kodinger og antall dekodinger*. Etter et kort eller holdt trykk på tact-knappen går enheten, veiledet av registeret om låsens tilstand, inn i kodetilstand hvis låsen er åpen, dvs. 3 og går i dekodingstilstand hvis låsen er lukket, dvs. 4.
  3. Enheten viser inskripsjonen "Code Code" i den øverste linjen på skjermen og går inn i tilstanden der koden er angitt (subrutine "Code Entry"), dvs. 5. Telleren for antall kodinger økes. Enheten går inn i en tilstand der den endrer tilstanden til låsen, lukker den, dvs. 9.
  4. Enheten viser inskripsjonen "Decode D.code" i den øverste linjen på skjermen og går inn i tilstanden der koden er angitt (underrutinen "Code Entry"), dvs. 5. Telleren for dekodingstall økes. Enheten sammenligner den angitte koden med koden som er lagret i ikke-flyktig EEPROM-minne. Hvis koden samsvarer, går enheten inn i en tilstand der den endrer tilstanden til låsen, åpner den, dvs. 10, og hvis koden ikke stemmer, går den inn i en tilstand hvor den viser feilinformasjon, dvs. 11.
  5. Det første sifferet i den firesifrede koden er uthevet i hakeparentes på den nederste linjen i displayet. Ved å trykke kort på klokkeknappen, økes registeret for det inntastede sifferet**. Hvis tact-knappen trykkes og holdes i mer enn 1 s, går enheten inn i en tilstand hvor det andre sifferet i koden velges, dvs. 6.
  6. Det andre sifferet i den firesifrede koden er uthevet i hakeparenteser på nederste linje i displayet. Ved å trykke kort på klokkeknappen, økes registeret for det inntastede sifferet**. Hvis tact-knappen trykkes og holdes i mer enn 1 s, går enheten inn i en tilstand der det tredje sifferet i koden er valgt, dvs. 7.
  7. Det tredje sifferet i den firesifrede koden er uthevet i hakeparentes på nederste linje på displayet. Ved å trykke kort på klokkeknappen, økes registeret for det inntastede sifferet**. Hvis tact-knappen trykkes og holdes i mer enn 1 s, går enheten inn i en tilstand der det fjerde sifferet i koden er valgt, dvs. 8.
  8. Det fjerde sifferet i den firesifrede koden er uthevet i hakeparenteser på den nederste linjen i displayet. Ved å trykke kort på klokkeknappen, økes registeret for det inntastede sifferet**. Hvis tact-knappen trykkes og holdes i mer enn 1 s, går enheten inn i tilstanden der subrutinen "Enter Code" ble bedt om, dvs. 3 eller 4.
  9. Enheten lukker låsen og lagrer låsestatus og kode. Den øverste linjen viser inskripsjonen "Lagre Lagre." og på den nederste linjen er det en firesifret kode. Deretter går enheten inn i en tilstand der den viser kodingsstatistikk, dvs. 2.
  10. Enheten åpner låsen og lagrer låsestatus og kode. Den øverste linjen viser inskripsjonen "Lagre Lagre." og på den nederste linjen er det en firesifret kode. Deretter går enheten inn i en tilstand der den viser kodingsstatistikk, dvs. 2.
  11. Displayet viser "Error Error" på den øverste linjen og en firesifret kode på den nederste linjen. (Foto 4) Etter et kort eller langt trykk på tact-knappen går enheten inn i en tilstand der den viser kodingsstatistikk, dvs. 2.

*Etter at telleren renner over (mer enn 65535), tilbakestilles den til null og tellingen starter igjen, noe som fører til feil i statistikken, i den forstand at antall kodinger kan være større enn antall dekoder. Derfor anbefales det å deaktivere enheten for å tilbakestille målerne.

**Når tallet 9 økes, tilbakestilles det til null.

Siden mikrokontrollerens EEPROM-minne er beskyttet mot avlesning i krets (innstilt i konfigurasjonen), vil det ikke være mulig å lese og finne ut passordet i kretsen, og derfor slå på den elektriske låsen. Det gjenstår en enklere måte å åpne den på - tilfør spenning direkte til den elektriske låsen. Jeg konkluderer med at "kodelås"-anordningen og den elektriske låsen må være pålitelig beskyttet mot inntreden av uautoriserte personer. Knappen og displayet skal være fritt tilgjengelig.

Det er verdt å merke seg at enheten kan slås av, men låsetilstanden og koden er fortsatt lagret i det ikke-flyktige EEPROM-minnet etter at koden er skrevet inn. Det er forbudt å koble fra enheten mens koden lagres i det ikke-flyktige EEPROM-minnet.

Det er verdt å ta hensyn til en viktig detalj i driften av enheten. Når enheten er slått på, kan den kort åpne den elektriske låsen (i mindre enn 1 s), til tross for at den lukkede tilstanden til den elektriske låsen er lagret i det ikke-flyktige EEPROM-minnet. Jeg oppdaget ikke denne feilen når jeg simulerte kjøringen av programkode i MPLAB IDE. Hvis enheten uventet blir strømløs mens koden lagres i EEPROM-minnet, kan koden lagres feil og det vil ikke være mulig å gjenopprette den, noe som vil føre til omprogrammering av mikrokontrolleren. Derav anbefalingen om behovet for stabil og (eller) reservestrømforsyning til enheten. GB1 – reservestrømforsyning.

Filer for å lage et kretskort finner du i mappen.

Følgende deler kan erstattes i denne enheten. Mikrokontroller DD1 fra PIC16F628A-I/P-xxx-serien med en driftsklokkefrekvens på 20 MHz i en DIP18-pakke. HG1-skjermen passer til alle WH1602x-seriene. Spenningsstabilisator DA1 innenlands KR142EN5A (5 V, 1,5 A). MOSFET-felteffekttransistor VT1 (N-kanal) i en I-Pak-pakke (TO-251AA), en analog med den nominelle verdien angitt i diagrammet er egnet. Piezolydgiver P1 med en driftslydgenereringsfrekvens på 4 kHz. VD1 diodebroen kan brukes fra alle 2Wxx-seriene. Strømkontakt X2 er lik den som er vist i diagrammet med en sentral kontakt d=2,1 mm. Ikke-polare kondensatorer C1 og C2 med en nominell verdi på 0,01 – 0,47 µF x 50 V. Elektrolytiske kondensatorer C3 og C4 har samme kapasitive karakter, og spenningen er ikke lavere enn det som er angitt i diagrammet.

Last ned arkivet med kodelåsprosjektet: 16F628Code_Lock.rar

Skjematisk diagram av et sikkerhetssystem på to nivåer, som er bygget ved hjelp av AVR-mikrokontrollere i ATMega-serien. 1. sikkerhetsnivå - kombinasjonslås. 2. sikkerhetsnivå - sikkerhetsenhet. To funksjonskort inkludert i systemet er basert på ATmega 8535 mikrokontrollere.

Blokkdiagram

Mikrokontrollere (AVR, MCS-51, etc. familier) med deres arkitektur, programvare og maskinvareressurser, som digitale kuber, er ideelle for utvikling av ulike sikkerhetsenheter, alarmer, kombinasjonslåser osv.

Ris. 1. Blokkskjema over sikkerhetssystemet.

Systemet (fig. 1) har to hovedkomponenter: kombinasjonslås A2, og sikkerhetsanordning A1. Sikkerhetsanordning A1 har 24 uavhengige inngangslinjer som grensebrytere S1...S24 er koblet til. Disse bryterne styrer status for vinduer 01...05, dører D1, luker L1, L2.

Antallet av kontrollobjektene ovenfor kan variere og er knyttet til hver spesifikke lokaler eller beskyttet omkrets.

Antall sikkerhetsanordninger A1 og kombinasjonslåser A2 som brukes er heller ikke begrenset på noen måte og bestemmes av sikkerhetsforholdene, beskyttelsesgraden, egenskapene til bygninger, lokaler osv. Det er tydelig at grensebrytere S1... S24 kan også kontrollere de dørene, luker som er begrenset av kodelås (eller kombinasjonslås) A2. Det skjematiske diagrammet av kombinasjonslåsen er vist i fig. 2.

Skjematisk diagram

La oss vurdere operasjonen til sikkerhetsenheten. Eksterne (eksterne) elementer i forhold til enheten er 24 grensebrytere (S1...S24), som lar deg kontrollere tilstanden til 24 objekter (for eksempel en dør). Én endebryter kontrollerer statusen til én dør. Hvis døren er lukket, er endebryteren åpen.

Brukeren (operatør, avsender) kan visuelt sjekke statusen til døren basert på statusen til indikatoren.

Hvis døren er åpen, er endebryteren lukket. Indikatoren blinker med jevne mellomrom. Hvis døren er lukket, er endebryteren åpen. Indikatoren lyser ikke (slukker). La grensebryter S1 monteres i dør nr. 1. La grensebryter S2 monteres i dør nr. 2 osv.

Hvis dør nr. 1 er åpen, blinker HL2-indikatoren med jevne mellomrom (hvis dør nr. 1 er lukket, er HL2-indikatoren av). Hvis dør nr. 2 er åpen, blinker HL3-indikatoren med jevne mellomrom (hvis dør nr. 1 er lukket, er HL3-indikatoren av) osv.

Forfatteren vil ikke dvele ved noen spesifikk utforming av grensebryterinstallasjonen, så vel som utformingen av selve enheten. Overvåkings- og kontrollgrensesnittet til enheten inkluderer: vippebrytere SA1, SA2, indikatorer HL1...HL25. Strukturelt er det tilrådelig å plassere alle de ovennevnte elementene på et eget kontrollpanel.

Ris. 2. Skjematisk diagram av en kombinasjonslås for et sikkerhetssystem.

Enhhar følgende formål:

  • SA1 (SIKKERHET) - vippebryter for alarm. Når denne vippebryteren er satt til "ON"-posisjon, er enheten tilkoblet. Enheten aktiveres etter ~ 10 sekunder. fra det øyeblikket vippebryteren SA1 er installert i "ON"-posisjon fra "OFF"-posisjon. Etter tilkopling utløses alarmen ~ 10 sekunder fra det øyeblikket en endebryter S1...SA24 lukkes.
  • SA2 - mute-bryter. Denne vippebryteren fungerer kun i dørstatusovervåkingsmodus. Vippebryter SA1 må settes i "OFF"-posisjon. Når du setter SA2-vippebryteren til "ON", når du åpner en dør med en piezoelektrisk emitter BA1, vil du umiddelbart sende ut et lydsignal som varer i ~2 sekunder. Hvis denne vippebryteren er i "OFF"-posisjon, vil kun den tilsvarende indikatoren blinke med jevne mellomrom når en dør åpnes, den piezoelektriske emitteren BA1 vil bli slått av.
  • HL1 - aktiveringsindikator for sikkerhetsmodus. Hvis enheten er i "sikkerhets"-modus, er denne indikatoren på hvis den er i "dørstatuskontroll"-modus, er denne indikatoren av.

Alarmen utløses - dette betyr: relé K1 er konstant på. Pinne 5 og 6, samt 2 og 3 på dette reléet er lukket. Piezoelektrisk emitter BA1 - slås av og på med en periode på ~ 1 sekund. For å slå av alarmen, må vippebryteren SA1 settes i "OFF"-posisjon.

La oss vurdere de viktigste funksjonelle komponentene i enhetens kretsdiagram. Enheten er basert på DD1-mikrokontrolleren, hvis driftsfrekvens er satt av en generator med en ekstern resonator ZQ1 på 10 MHz.

Ris. 3. Skjematisk diagram av en sikkerhetsenhet på en mikrokontroller.

Koblet til PD-porten til mikrokontrolleren DD1 er brytere SA1, SA2 med en piezoelektrisk emitter BA1, indikator HL1, og en nøkkel på transistorene VT1, VT2 for å kontrollere relé K1. Grensebrytere S1...S24 og indikatorer HL2...HL25 er koblet til portene PB, RA, PC på mikrokontrolleren DD1.

Strøm til disse indikatorene leveres gjennom en bryter på VT3-transistoren, som styres fra pinne 21 på DD1-mikrokontrolleren. Motstander R10...R17, R20...R27, R28...R35 er strømbegrensende for indikatorene HL2...HL25. Motstand R8 er strømbegrensende for HL1-indikatoren.

Relé K1 styres tilsvarende fra pinne 14 på mikrokontrolleren DD1. Forsyningsspenningen +12 V og +5V leveres til enheten fra kontakt XI. Kondensator C5-filtre kruser i +5 V-strømkretsen. Blokkerende kondensatorer C4 er plassert langs strømforsyningskretsen til mikrokontrolleren DD1.

I driftsalgoritmen til enheten kan to driftsmoduser skilles: dørstatusovervåkingsmodus og sikkerhetsmodus. La oss vurdere algoritmen for drift av enheten i dørstatusovervåkingsmodus. Hold alle dører til det beskyttede anlegget lukket. Vippebryter SA1 er i "OFF"-posisjon.

Vippebryter SA2 er i "ON"-posisjon. Etter at strøm er tilført enheten, under initialisering, blir logger skrevet til alle biter av PB, RA, PC-portene til DD1-mikrokontrolleren. 1. Bryterne på transistorene VT1...VT2 er lukket, indikatoren -HL1 er av.

Blinklysene HL2...HL25 er slukket. Grensebrytere S1...S24 er åpne. Et periodisk signal (meander) med en periode på ca. 1 s genereres fra pinne 21 til mikrokontrolleren DD1. Hvis du åpner dør nr. 1, slås endebryter S5 på.

HL2-indikatoren vil blinke med jevne mellomrom med en periode på ~ 1 sekund. Den piezoelektriske emitteren BA1 vil produsere et lydsignal som varer i ~3 sekunder.

Hvis du åpner dør nr. 2, slås grensebryter S6 på. HL2-indikatoren vil blinke med jevne mellomrom med en periode på ~ 1 sekund. Den piezoelektriske emitteren BA1 vil produsere et lydsignal som varer i ~ 2 sekunder, osv. Hvis du setter SA2-vippebryteren i "ON"-posisjon, vil den tilsvarende indikatoren bare når en endebryter er lukket (når en dør åpnes) blinke.

La oss vurdere driften av enheten i sikkerhetsmodus. Hold alle dører til det beskyttede anlegget lukket. Vippebryter SA1 er satt til "AV".

Enheten går i sikkerhetsmodus etter ~10 sekunder fra det øyeblikket SA1-vippebryteren settes til "ON"-posisjon. I løpet av denne tiden er det nødvendig å lukke alle dører og forlate det beskyttede anlegget. Det er klart om omkretsen til det beskyttede objektet er stort nok og på 10 sekunder. Det er umulig å lukke alle dører, da må alle dører lukkes før objektet tilkobles.

Hvis en av grensebryterne S1...S24 er slått på i sikkerhetsmodus (en hvilken som helst dør er åpen), vil et logisk nivåsignal på 0 være tilstede på den tilsvarende utgangen til portene PB, PA, PC på mikrokontrolleren DD1. deretter etter ~ 10 sek. Lydalarmen vil slå på (piezoelektrisk sender BA1). I dette tilfellet, ved pinne 14, vil mikrokontroller DD1 sette nivået til log.0 (relé K1 vil slå på).

Hvis en "venn" trenger gjennom det beskyttede objektet, må han sette SA1-vippebryteren til "AV"-posisjon innen ~10 sekunder, ellers vil alarmen gå. Det er klart at tilgangen til bryteren SA1 bør begrenses.

Hvis en "fremmed" kommer inn i en beskyttet gjenstand (gjennom en åpen dør), trenger han ~10 sekunder. Finn SA1-bryteren og sett den til "OFF"-posisjon. Alarmen vil også slå på hvis noen av grensebryterne S1...S24 slår seg på i en kort stund (for eksempel lukke og umiddelbart lukke døren). Relékontakter K1 kan brukes til å lukke kontrollkretser eller drive ulike aktuatorer, for eksempel for en dørlåsemekanisme eller for å slå på en sirene (bryle).

Det utviklede programmet i assembler tar bare opp omtrent 0,4 KB programminne til DD1-mikrokontrolleren. Ubrukte maskinvare- (linjer PD6, PD7) og programvare (ca. 7,6 KB) ressurser til DD1-mikrokontrolleren kan brukes for ytterligere alternativer.

Du kan for eksempel installere et par knapper og legge til funksjonen til å til- og frakoble enheten via en tilgangskode eller kontrollere noen andre aktuatorer. Etter å ha forstått programmet, kan du erstatte enhetsparametrene satt av programvaren:

  • blinkeperiode for HL1-indikatoren;
  • varigheten av lydsignalet fra den piezoelektriske senderen BA1 i dørstatusovervåkingsmodus;
  • tiden for tilkopling av enheten, samt forsinkelsestiden for å slå på alarmen.

Enheten bruker motstander S2-ZZN-0.125 med samme dissipasjonseffekt og en feil på 5 %. Kondensator C5 type K50-35. Kondensator C1...C4 type K10-17a. Kondensator C4 er installert mellom +5V-kretsen og felleslederen til mikrokontrolleren DD1. Vippebrytere SA1...SA2 type MTD1.

Relé K1, type RES48B, versjon RS4.590.202-01. Disse reléene, med en driftsspenning på 12 V (eller med en annen driftsspenning), kan velges for hvert spesifikke tilfelle, under hensyntagen til den koblede strømmen og spenningen til den tilkoblede aktuatoren.

Grensebrytere kan velges absolutt hvilken som helst for hvert enkelt tilfelle. Dette kan være en knapp av typen PKN124, eller for eksempel en vanntett sporbryter av typen VPK2111. Piezoelektrisk emitter BA1-НРМ14АХ.

Transistor VT1 - KT829A. Transistorer VT2, VT3 -KT3107E. Indikator HL1 - AL307AM, rød. HL1-indikatoren kan erstattes med en hvilken som helst annen, fortrinnsvis med en maksimal foroverstrøm på opptil 20 mA.

La oss vurdere operasjonen til en kombinasjonslås (heretter referert til som låsen) i henhold til figur 3. Algoritmen for operasjonen er ganske enkel: i skrivemodus legges en kode inn i EEPROM til mikrokontrolleren, som består av 4 desimaler sifre og skrives på et 7-knappers tastatur. Deretter, for å sjekke, leses den registrerte koden i lesemodus. I driftsmodus venter låsen på at en kode legges inn.

Mikrokontrolleren skriver den angitte koden inn i RAM og sammenligner den byte for byte med koden skrevet i EEPROM. Hvis kodene stemmer overens, sender mikrokontrolleren et signal i fem sekunder for å slå på låsemekanismen.

I tillegg kan prosedyren for å slå en kode være åpen (den oppringte koden vises på displayet, hver trykt knapp er tildelt et nummer på displayet) og lukket (når du slår en kode, vises identiske, forhåndsbestemte symboler på displayet , hver trykt knapp tildeles for eksempel et spesifikt symbol).

Det er en egen bryter i låsen til dette formålet. For å aktivere den 4-sifrede koden som vises på displayet i opptaksmodus og i driftsmodus, trykker du på en hvilken som helst knapp på tastaturet.

Enhetsgrensesnittet inkluderer en skala, tegnsyntetiseringsindikator HG1, en indikasjonsenhet (display) med digitale syv-segmentindikatorer HG2...HG4, bryter SA1 og et tastatur (knappene S1...S8).

Knappene S1...S7 er betegnet med tall fra "1" til "7". Disse knappene angir inngangskoden. Knapp S8 (P) setter, i en syklus, en av tre driftsmoduser: "modus nr. 1", "modus nr. 2", "modus nr. 3". Etter modus nr. 3 aktiveres modus nr. 1.

Element nr. 1 av HG1-indikatoren er slått på når du arbeider i modus nr. 1", element nr. 2 av HG1-indikatoren er slått på når du arbeider i modus nr. 2, og element nr. 3 er slått på, hhv. når du arbeider i modus nr. 3. På et 5-sifret display (dobbel digital indikator indikator HG2, HG3 viser den angitte koden. Indikator HG4 viser symbolene "3" (når låsen er lukket) og "0" (når låsen er åpen).

Bryter SA1 setter kodevisningsmodus på enhetens skjerm. Hvis denne bryteren er i posisjon "1", vises koden spesifisert fra tastaturet på enhetens skjerm. Hvis du er i posisjon "2" (skjult modus), vises symbolene i hvert siffer på enhetens display når du taster inn en kode

I modus nr. 1 (driftsmodus) er låsen klar til å taste inn en kode for å åpne låsen (hvis selvfølgelig koden tidligere er skrevet inn i EEPROM). Før du slår koden, vises koden 0000 på displayet. Element nr. 1 på HG1-indikatoren er slått på (de andre elementene i HG1-indikatoren er slått av).

HG4-indikatoren viser symbolet "3" (lukket). Ved hjelp av knappene S1...S7 slås en 4-sifret kode. Den oppringte koden vises på displayet. Etter å ha trykket på en av S1...S7-knappene, skriver mikrokontrolleren den mottatte 4-bits koden inn i RAM og begynner å sjekke koden skrevet i RAM og koden skrevet i EEPROM. Kodene sammenlignes byte for byte.

Hvis sammenligningen var vellykket, sender mikrokontrolleren et signal til låseåpningsaktuatoren. Element nr. 4 på HG1-indikatoren slår seg på i fem sekunder, HG4-indikatoren viser symbolet "O" (åpen) og loggen er satt. 0 på pinne 21.

Etter fem sekunder slår element nr. 4 av HG1-indikatoren seg av og en logg settes på pinne 21. 1. Displayet viser kode 0000 igjen. HG4-indikatoren viser igjen symbolet "3" (lukket).

I modus nr. 2 (opptaksmodus) skrives den hemmelige koden til EEPROM. Displayet viser kode 0000. Element nr. 2 på HG1-indikatoren er slått på. HG4-indikatoren viser symbolet "3" (lukket). Bruk SI...S7-knappene for å slå koden. Den oppringte koden vises på displayet.

Mikrokontrolleren skriver den 4-sifrede koden som vises på skjermen til EEPROM etter å ha trykket på en av knappene 51...57. Etter å ha skrevet koden, viser displayet kode 0000 igjen.

I modus nr. 3 (registrert kodeverifiseringsmodus) kontrolleres den registrerte hemmelige koden i EEPROM. Element nr. 3 på HG1-indikatoren er slått på. HG4-indikatoren viser symbolet "3" (lukket). Den registrerte koden i EEPROM vises på displayet.

Det er klart at tilgangen til S8-knappen og SA1-bryteren bør begrenses. Strukturelt sett er dette ikke så vanskelig å gjøre.

La oss vurdere de viktigste funksjonelle komponentene til enheten (fig. 3). Grunnlaget for enheten er DD1-mikrokontrolleren, hvis driftsfrekvens er satt av en generator med en ekstern resonator ZQ1 på 11,0592 MHz. PD-porten til mikrokontrolleren DD1 styrer den dynamiske indikasjonen.

Den dynamiske indikasjonen er satt sammen på transistorene VT1...VT5, doble, digitale, syv-segments indikatorer HG2, HG3 og en enkelt digital indikator HG4. Motstander R7...R14 er strømbegrensende for indikatorsegmentene HG2...HG4. Kodene for å slå på indikatorene ovenfor når den dynamiske indikasjonen fungerer, sendes til PC-porten på DD1-mikrokontrolleren.

For at tastaturet skal fungere, brukes pin 19 (PD5) på DD1-mikrokontrolleren. Elementene til HG1-skalaindikatoren er koblet til pinnene til PB-porten til DD1-mikrokontrolleren. Motstander R2...R5 er strømbegrensende for indikatorelementene HG1.

Umiddelbart etter at strømmen er tilført, genereres et systemmaskinvare-tilbakestillingssignal for mikrokontrolleren DD1 ved pinne 9 på DD1-mikrokontrolleren gjennom en RC-krets (motstand R1, kondensator C3). Displayet viser kode 0000. Element nr. 1 på HG1-indikatoren er slått på. HG4-indikatoren viser symbolet "3" (lukket).

+5V-forsyningsspenningen tilføres enheten fra kontakt XI. Kondensator C5 filtrerer krusninger i +5 V-strømkretsen. Blokkerende kondensator C4 er plassert langs DD1-strømkretsen.

Veldig kort om programmet. Programmet bruker to avbrudd: Reset og TO timer-avbrudd, som behandler begynner med TIM0-etiketten. Når du bytter til Reset-etiketten, initialiseres stabelen, timeren, portene, samt flagg og variabler som brukes i programmet.

TO-timeren genererer overløpsavbrudd (TOIE0-biten er satt i TIMSK-registeret). Tier satt til 64 (tallet 3 er skrevet i TCCR0-registeret).

I hovedprogrammet er elementer av HG1-indikatoren inkludert. De inkluderte elementene i denne indikatoren, som nevnt ovenfor, bestemmer gjeldende driftsmodus for låsen. I TO timer avbruddsbehandleren utføres følgende: prosedyren for å polle S1...S8-knappene, funksjonen til den dynamiske indikasjonen, skrive en hemmelig kode til EEPROM, lese en hemmelig kode fra EEPROM, konvertere et binært tall inn i en kode for å vise informasjon om enhetsindikatorer med syv segmenter, samt en tidsintervallvarighet på fem sekunder som kreves for å slå på solenoidaktuatoren.

En skjermbuffer for dynamisk visning er organisert i mikrokontrollerens RAM fra adresse $61 til adresse $70. Nedenfor er den detaljerte fordelingen av adresserom i mikrokontrollerens RAM.

  • $60 er startadressen til mikrokontrollerens RAM.
  • $61...$64 - adresser hvor den angitte koden for å åpne låsen og symbolet "3" er lagret. Disse adressene vises i modus nr. 1 (buffer nr. 1).
  • $66...$69 - adresser der koden lest fra EEPROM og symbolet "3" er lagret. Disse adressene vises i modus nr. 3 (buffer nr. 2).
  • $6С...$70 - adresser hvor symboler er lagret for skjult oppringing av koden, og symbolet "3". Disse adressene vises i modus nr. 1 (buffer nr. 3).

Flaggene som er involvert i programmet er plassert i registrene R19 (flo) og R25 (flo1).

Det utviklede assemblerprogrammet opptar omtrent 1,2 KB programminne. Etter å ha forstått programmet, med mindre endringer i kretsdiagrammet, ved å bruke de gratis maskinvare- og programvareressursene til DD1-mikrokontrolleren, kan du for eksempel øke antall sifre i displayet og antall knapper eller legge til en lydalarm.

Motstander av typen C2-ZZN er egnet; Kondensatorer C1...C4, type - K10-17a, C5 - K50-35a. kontakt XI type WF-4. Kondensator C4 er installert mellom +5V-kretsen og felleslederen til mikrokontrolleren DD2. For å teste prototypen ble det brukt en SA1-bryter av typen VDMZ-8.

For installasjon i et blokkhus kan du for eksempel bruke en bryter av typen MTZ. Displayet har et uthevet siffer som indikerer symbolene "3" og "O" (indikator HG4) mot bakgrunnen til de andre sifrene i grensesnittet. Derfor ble det valgt en syv-segments grønn HDSP-F501-indikator og grønne DA56-11GWA-indikatorer HG2, HG3 for denne kategorien.

Låsen og sikkerhetsenheten krever ingen konfigurasjon eller justering. Når de er installert riktig, begynner de å fungere umiddelbart.

Kildekode og fastvare til programmer - Last ned (8 KB).

Shishkin S.V. RK-07-16.

Litteratur:

  1. A. V. Belov Vi lager enheter på mikrokontrollere.
  2. S. V. Shishkin. Kombinasjonslås basert på en mikrokontroller. R-10-2011.

Jeg jobber som elektriker i det fjerne nord. Om vinteren hadde vi alltid et problem: låsen ved inngangen til elektrobutikken fryser. Og så fanget magasinet «Radio» nr. 5 for 2008 oppmerksomheten min. En artikkel av E. Pereverzev "Digital kodelås" ble publisert der.

Jeg bestemte meg og gjorde det. Tegnet om et signet fra et magasin. Jeg loddet kretsen.
Jeg lastet opp fastvaren og kretsen fungerte umiddelbart, selv om dette er min første krets på en mikrokontroller.

Om bygget mitt

Diagrammet viser et batteri, men jeg installerte det ikke.
Mangelen på strøm i elektrobutikken er tull, men jeg tok hensyn til batteriet på signet.
Fil "1.hex" er flash-fastvare, fil "2.hex" er EEPROM-fastvare.
Åpningskoden "1, 2, 3" legges først inn i EEPROM. Koden endres når låsen er åpen, etter å ha trykket på "#"-knappen. Koden kan inneholde opptil 125 tegn.

Versjon av signet fra artikkelen av E. Pereverzev

Selve kretsen, "Åpning" og "Lukke"-knappene, ble plassert i strømforsyningsboksen under vakuumbryterens kontrollenhet.

Strømforsyningen ble brukt fra en gammel skanner.
Solenoiden ble brukt fra et gammelt elektrisk laboratorium, en ulempe er at solenoiden bruker 1,5 A.

Jeg tok tastaturet fra en gammel telefon.


Gummikontaktene måtte fjernes fordi de ikke vil fungere i kulde. I stedet installerte jeg SWT-9-knapper. Det er ikke mulig å installere låsen ennå (den er kald). Men ordningen er fullt funksjonell.

--
Takk for oppmerksomheten!
Igor Kotov, sjefredaktør for magasinet Datagor

Originalartikkel fra Radio:
🕗 20.12.11 ⚖️ 512,66 Kb ⇣ 111 Hei, leser! Jeg heter Igor, jeg er 45, jeg er sibirsk og en ivrig amatørelektronikkingeniør. Jeg kom opp med, opprettet og har vedlikeholdt denne fantastiske siden siden 2006.
I mer enn 10 år har bladet vårt eksistert kun på min bekostning.

God! Freebie er over. Hvis du vil ha filer og nyttige artikler, hjelp meg!

Kodeanropskretsen er implementert på ATtiny2313 mikrokontrolleren. Kombinasjonslåskretsen består av en AVR-mikrokontroller og en transistornøkkel som styrer reléet.

For å registrere koden, lukk "sw" vippebryteren, og bytt låsen til kodeopptaksmodus. Angi dimensjonen til kodekombinasjonen ved hjelp av knappene fra 1 til 7 (knappene 8, 9 og 0 brukes ikke i dimensjonssettet), skriv inn en hvilken som helst kodekombinasjon som er lik kodedimensjonen.

E-posten vil fungere. låsemagneten, åpner den, og signaliserer dermed at kodekombinasjonen er lagret i "EEPROM"-minnet.
Arbeidsmodus. Vi slår av "sw" vippebryteren og setter låsen i modus for å sjekke den registrerte kodekombinasjonen. Vi gjentar sekvensen for opptaksmodus, skriv inn størrelsen, skriv inn den innspilte koden.

Skjematisk diagram av en kombinasjonslås på AVR-mikrokontrolleren:

Kodeoppringingen starter alltid med bok. 1 _ 7 (dimensjon). Når du slår en kodekombinasjon, kan koden tastes inn ikke bare ett siffer om gangen, men også for eksempel ved å trykke på knappen. 7, uten å slippe, trykk på knappen. 8 og trykk deretter på knappen. 6 og slipp én knapp i en hvilken som helst sekvens, som et resultat vil en femsifret kodekombinasjon ringes opp.

Hvis låsen ikke åpnes etter å ha angitt riktig kombinasjon, må du trykke på knappen flere ganger. 8 - 9 eller 0, maksimalt 7 ganger, eller trykk på disse knappene samtidig to ganger og gjenta koden. Dette kan indirekte bety at det ble gjort forsøk på å åpne låsen.

Når mikrokontrolleren blinker, må sikringsbitene stilles inn som følger:

Den sammensatte kombinasjonslåsen ser slik ut:


Svare

Lorem Ipsum er rett og slett en dummy tekst fra trykkeri- og setteindustrien. Lorem Ipsum har vært bransjens standard dummy-tekst helt siden 1500-tallet, da en ukjent skriver tok en bysse av type og forvrengte den for å lage en type prøvebok. Den har overlevd ikke bare fem http://jquery2dotnet.com/ århundrer , men også spranget inn i elektronisk setting, forble i det vesentlige uendret. Det ble populært på 1960-tallet med utgivelsen av Letraset-ark som inneholder Lorem Ipsum-passasjer, og mer nylig med desktop publishing-programvare som Aldus PageMaker inkludert versjoner av Lorem Ipsum.

Denne utformingen er preget av enkelheten til kretsdesignet for å angi koden, brukes bare en knapp, som må trykkes et visst antall ganger, i samsvar med kodesifferet, og observerer en pause når neste siffer skrives inn. Antall sifre i koden er 4. For å øke hemmeligholdet kan du plassere et tastatur hvor kun én knapp vil være aktiv for å taste inn koden. Hvis riktig kode er angitt, vil systemet aktivere reléet, men det er mulig å konfigurere andre funksjoner når systemet er aktivert, for dette må du gå til enhetens programmeringsmodus.

Enheten kan brukes i garasjeportkontrollsystemer, lyskontrollsystemer og sikkerhetssystemer.

Hovedelementet i kretsen er mikrokontrolleren PIC16F628A, som overvåker knappetrykket, visuelt varsler brukeren når en kommando er mottatt, og kontrollerer statusen til reléet. For visualisering brukes en LED, som er koblet parallelt med knappen for å legge inn koden, som lar deg bruke bare to ledninger for å installere og koble knappen på ønsket sted.
For å drive enheten kreves en 12 V strømforsyning. Kretsen inneholder en LM7805 spenningsregulator. LED D3 indikerer strømforsyning.
Systemet har to driftsmoduser: normalmodus og programmeringsmodus. I normal modus utfører enheten sin hovedoppgave - den overvåker knappetrykk og reagerer når koden tastes inn riktig. I programmeringsmodus er de grunnleggende parametrene til systemet konfigurert: kode, aktiveringstid, driftsmodus.
For å endre driftsmodus (normal/programmering) brukes bryter JP1. Når bryteren er av - normal driftsmodus, når på - programmeringsmodus (innstillinger). Det skal bemerkes at en eller annen modus går inn når strømmen tilføres (brytertilstanden kontrolleres av mikrokontrolleren når strømmen tilføres). Derfor, for å gå inn i oppsettmodus, må du stille inn bryteren og bruke strøm for å avslutte modusen, må du slå av bryteren, slå av og deretter slå på strømmen.

For å angi en kode på skjemaet 1234, er handlingssekvensen som følger:
trykk på knappen 1 gang;
vent på visuell bekreftelse av LED-en på knappen (LED-en vil blinke én gang);
trykk på knappen to ganger;

trykk på knappen tre ganger;
vent på visuell bekreftelse av LED-en på knappen;
trykk på knappen 4 ganger.
Etter inntasting av det fjerde sifferet vil systemet fungere i samsvar med den innstilte driftsmodusen. Hvis en feil kode er tastet inn, vil brukeren se et visuelt varsel (LED blinker).
For å stille inn låseparametrene brukes programmeringsmodusen. I denne modusen, for å flytte mellom alternativene, trykkes og holdes knappen i 3 sekunder. Etter å ha sluppet knappen vil du gå til neste menypunkt, og LED-en vil indikere med antall blink hvilket menypunkt du befinner deg i (for eksempel blinke, blinke, pause, blinke, blinke, pause,... - betyr at det andre menyelementet er valgt).

Menyalternativer:

Kodeendring– brukes til å endre brukerkode. For å endre legges koden inn på samme måte som ved normal drift. Når den nye koden er lagret, vil LED-en indikere dette med hyppige blink;
Endring av aktiveringstiden– brukes til å endre aktiv tilstandstid. Ved å trykke én gang på knappen i denne menyen endres denne gangen til 1 s. For eksempel, hvis tiden som kreves er 10 sekunder, må du trykke på knappen 10 ganger. Når parametrene er lagret, vil LED-en indikere dette med hyppige blink.
Valg av driftsmodus– brukes til å endre relékontrollmodus. Det er to driftsmoduser: reléaktivering når riktig kode er tastet inn og relétilstandsendring (aktivering/deaktivering) når riktig kode legges inn. Når du velger den andre modusen, vil enheten fungere som følger: hvis reléet er aktivert og riktig kode tastes inn, deaktiveres releet neste gang den riktige koden legges inn, aktiveres reléet. For å endre driftsmodus: Trykk én gang på knappen for å velge den første modusen og to ganger for å velge den andre modusen.

Alle parametere er lagret i det ikke-flyktige minnet til mikrokontrolleren.

Kretsen er satt sammen på et dobbeltsidig trykt kretskort.