Code-Sperre auf pic16f628a-Firmware. Elektronisches Zahlenschloss auf dem Mikrocontroller PIC12F675

In diverser Amateurfunkliteratur findet man viele Möglichkeiten für elektronische Zahlenschlösser.

Ein Merkmal dieses Mikrocontroller-Kombinationsschlossschemas ist eine grundlegend neue Methode zum Lesen von Tastenanschlägen unter Verwendung von nur einem Port des PIC12F675-Mikrocontrollers. Diese Funktion kann nur mit Mikrocontrollern implementiert werden, die ein Analog-Digital-Wandler (ADC)-Modul enthalten, wie z. B. unser Mikrocontroller PIC12F675.

Dieser Mikrocontroller ist mit einem 10-Bit-ADC mit einem Umwandlungsbereich von 0 bis 1023 ausgestattet. Das Wesentliche der Methode ist, dass die Tastatur tatsächlich ein Spannungsteiler an den Widerständen R1-R12 ist und wenn eine bestimmte Tastaturtaste gedrückt wird, dem Eingang 7 des Mikrocontrollers wird eine Spannung zugeführt, deren Wert für diese Taste spezifisch ist.

Kombinationsschlossbetrieb auf PIC12F675

Um 4 Ziffern eines Geheimcodes zu schreiben, müssen Sie zuerst die „CODE“-Taste drücken und gedrückt halten, bis die LED aufleuchtet. Dann müssen Sie nacheinander 4 Ziffern des Geheimcodes wählen. Nach Abschluss der Eingabe, angegebenen Code werden in den nichtflüchtigen Speicher des Mikrocontrollers geschrieben.

Wenn Sie nun diesen Code auf der Tastatur eingeben, schaltet sich das Relais für 5 Sekunden ein. Mit einem zehnfachen Tippfehler Geheim Code ein Alarm ertönt.

Ich arbeite als Elektriker im Hohen Norden. Im Winter hatten wir immer ein Problem, das Schloss am Eingang zum Elektrogeschäft friert ein. Und dann fiel mir das Magazin „Radio“ Nr. 5 für 2008 ins Auge. Es wurde ein Artikel von E. Pereverzev "Digital Combination Lock" veröffentlicht.

Entschieden und fertig. Ein Siegel aus einer Zeitschrift neu gezeichnet. Diagramm gelötet.
Ich habe die Firmware hochgeladen und die Schaltung hat sofort funktioniert, obwohl dies meine erste Schaltung auf einem Mikrocontroller ist.

Über meinen Aufbau

Das Diagramm zeigt eine Batterie, aber ich habe sie nicht installiert.
Der Strommangel im Elektrogeschäft ist Unsinn, aber ich habe die Batterie auf dem Signet berücksichtigt.
Die Datei „1.hex“ ist die Flash-Firmware, die Datei „2.hex“ ist die EEPROM-Firmware.
Zunächst wird der Öffnungscode „1, 2, 3“ in das EEPROM eingetragen. Der Code wird am geöffneten Schloss geändert, nachdem die Taste „#“ gedrückt wurde. Der Code kann bis zu 125 Zeichen enthalten.

Signet-Version aus dem Artikel von E. Pereverzev

Der Stromkreis selbst, die Tasten „Öffnen“, „Schließen“, die Stromversorgung wurden unter der Steuereinheit des Vakuum-Leistungsschalters in die Box gelegt.

Netzteil von einem alten Scanner verwendet.
Ich habe den Magneten aus einem alten Elektrolabor verwendet, eins minus - der Magnet verbraucht 1,5 A.

Ich habe die Tastatur von einem alten Telefon genommen.


Gummikontakte mussten entfernt werden, da sie bei Kälte nicht funktionieren. An ihrer Stelle habe ich SWT-9-Tasten eingesetzt. Es ist noch nicht möglich, das Schloss (kalt) zu installieren. Aber das Schema ist voll funktionsfähig.

--
Vielen Dank für Ihre Aufmerksamkeit!
Igor Kotov, Chefredakteur der Zeitschrift Datagor

Originalartikel aus "Radio":
🕗 20.12.11 ⚖️ 512,66 Kb ⇣ 111 Hallo Leser! Mein Name ist Igor, ich bin 45 Jahre alt, Sibirier und begeisterter Hobbyelektroniker. Ich habe diese wunderbare Website seit 2006 entwickelt, erstellt und gepflegt.
Seit mehr als 10 Jahren existiert unser Magazin nur auf meine Kosten.

Gut! Das Freebie ist vorbei. Wenn Sie Dateien und nützliche Artikel wollen - helfen Sie mir!

Antworten

Lorem Ipsum ist einfach Blindtext der Druck- und Satzindustrie. Lorem Ipsum ist seit den 1500er Jahren, als ein unbekannter Drucker eine Galeere von Typen nahm und daraus ein Schriftmusterbuch machte, der Standard-Dummy-Text der Branche auch der Sprung in den elektronischen Satz, der im Wesentlichen unverändert bleibt.

Dieses Design zeichnet sich durch die Einfachheit des Schaltungsdesigns aus. Zur Eingabe des Codes wird nur eine Taste verwendet, die entsprechend der Codeziffer eine bestimmte Anzahl von Malen gedrückt werden muss, wobei bei der Eingabe der nächsten Ziffer eine Pause eingehalten wird. Die Anzahl der Ziffern im Code beträgt 4. Um die Geheimhaltung zu erhöhen, können Sie eine Tastatur platzieren, in der nur eine Taste zur Eingabe des Codes aktiv ist. Wenn der richtige Code eingegeben wird, aktiviert das System das Relais, es ist jedoch möglich, andere Funktionen zu konfigurieren, wenn das System aktiviert ist, dazu müssen Sie in den Programmiermodus des Geräts wechseln.

Das Gerät kann in Leitsystemen eingesetzt werden Garagentore, in der Lichtsteuerung, in Sicherheitssystemen.

Das Hauptelement der Schaltung ist der Mikrocontroller PIC16F628A, der das Drücken einer Taste überwacht, den Benutzer visuell über den Empfang eines Befehls benachrichtigt und den Zustand des Relais steuert. Zur Visualisierung wird eine LED verwendet, die parallel zum Taster zur Eingabe des Codes geschaltet ist, was es ermöglicht, den Taster mit nur zwei Drähten an der gewünschten Stelle zu installieren und anzuschließen.
Zur Stromversorgung des Geräts benötigen Sie ein 12-V-Netzteil, der Spannungsregler LM7805 ist in der Schaltung installiert. LED D3 zeigt Stromversorgung an.
Das System hat zwei Betriebsmodi: Normalmodus und Programmiermodus. Im normalen Modus führt das Gerät seine Hauptaufgabe aus - es überwacht Tastendrücke und reagiert, wenn der Code korrekt eingegeben wird. Im Programmiermodus werden die Hauptparameter des Systems konfiguriert: Code, Aktivierungszeit, Betriebsmodus.
Schalter JP1 dient zum Wechseln der Betriebsart (Normal/Programmierung). Wenn der Schalter ausgeschaltet ist, ist es der normale Betriebsmodus, wenn er eingeschaltet ist, ist es der Programmiermodus (Einstellungen). Es ist zu beachten, dass die Eingabe in einen bestimmten Modus durchgeführt wird, wenn Energie angelegt wird (der Schaltzustand wird durch den Mikrocontroller überprüft, wenn Energie angelegt wird). Um in den Einstellmodus zu gelangen, müssen Sie daher den Schalter einstellen und die Stromversorgung einschalten, um den Modus zu verlassen, den Schalter ausschalten, ausschalten und dann die Stromversorgung einschalten.

Um einen Code der Form 1234 einzugeben, ist die Reihenfolge der Aktionen wie folgt:
Drücken Sie die Taste 1 Mal;
Warten Sie auf die visuelle Bestätigung durch die LED auf der Taste (die LED blinkt einmal);
drücken Sie die Taste zweimal;

drücken Sie die Taste dreimal;
Warten Sie auf die visuelle Bestätigung durch die LED auf der Taste;
drücken Sie die Taste 4 mal.
Nach Eingabe der vierten Ziffer funktioniert das System entsprechend etabliertes Regime arbeiten. Wenn ein ungültiger Code eingegeben wurde, sieht der Benutzer eine visuelle Warnung (LED blinkt).
Der Programmiermodus dient zum Einstellen der Schlossparameter. In diesem Modus wird zum Umschalten zwischen den Optionen die Taste gedrückt und 3 Sekunden lang gehalten. Nach Loslassen der Taste erfolgt der Übergang zum nächsten Menüpunkt, wobei die Anzahl der Blitze anzeigt, in welchem ​​Menüpunkt man sich befindet (z.B. Blitz, Blitz, Pause, Blitz, Blitz, Pause, ... - bedeutet dass der zweite Menüpunkt ausgewählt ist).

Menüpunkte:

Codeänderung– zum Ändern des Benutzercodes. Zum Ändern wird der Code wie im Normalbetrieb eingegeben. Wenn der neue Code gespeichert wurde, zeigt dies die LED durch häufiges Blinken an;
Ändern der Aktivierungszeit– wird verwendet, um die aktive Statuszeit zu ändern. Durch einmaliges Drücken der Taste in diesem Menü ändert sich diese Zeit um 1 s. Wenn Sie beispielsweise eine Zeit von 10 Sekunden benötigen, müssen Sie die Taste 10 Mal drücken. Wenn die Parameter gespeichert sind, zeigt dies die LED durch häufiges Blinken an.
Auswahl der Betriebsart– wird verwendet, um den Relaissteuerungsmodus zu ändern. Es gibt zwei Betriebsmodi: Aktivierung des Relais bei Eingabe des richtigen Codes und Änderung des Relaiszustands (Aktivierung/Deaktivierung) bei Eingabe des richtigen Codes. Wenn der zweite Modus ausgewählt wird, verhält sich das Gerät wie folgt: Wenn das Relais aktiviert und der richtige Code eingegeben wird, wird das Relais deaktiviert, bei der nächsten Eingabe des richtigen Codes wird das Relais aktiviert. So ändern Sie den Betriebsmodus: Drücken Sie die Taste einmal, um den ersten Modus auszuwählen, und zweimal, um den zweiten Modus auszuwählen.

Alle Parameter werden im nichtflüchtigen Speicher des Mikrocontrollers abgelegt.

Die Schaltung ist auf einer doppelseitigen Leiterplatte aufgebaut.

Mit diesem elektronischen Zahlenschloss kann ein elektromechanischer Verschluss geöffnet werden. Funktionalität implementiert in Software. Das Schlosssteuerrelais schaltet sich für einige Sekunden ein (normalerweise zum Öffnen der Tür), wenn jemand den richtigen Code eingibt.

Der Stromverbrauch der Schaltung ist gering, da der Mikrocontroller die meiste Zeit schläft und nur zur Verarbeitung von Tastenanschlägen aufwacht. Der 16F628A-Controller wird bereits von einem internen RC-Oszillator gespeist, sodass keine externen Quarze erforderlich sind. Jeder Tastendruck wird dupliziert Tonsignal BM1-Summer. Der Summer wird mit einem internen Generator verwendet. Der Status des Geräts wird auf dem LCD-Anzeiger Typ 16x02 mit dem Controller HD44780 angezeigt. Das Schloss verwendet eine Standard-Matrix-Tastatur mit 3 Spalten und 4 Zeilen. Das Schema des Schlosses ist in der Abbildung unten dargestellt.

Um das Schloss zu öffnen, geben Sie den richtigen Code ein und verwenden Sie „#“ als „Enter“-Taste. Der Originalcode lautet 623342. Der Code kann nach Eingabe des aktuellen Codes jederzeit geändert werden. Mit der Taste „*“ wird der Code geändert. Geben Sie den tatsächlichen Code ein und drücken Sie "*". Wenn der Code richtig eingegeben wurde, leuchtet die Codeänderungsanzeige HL1, geben Sie einen neuen Code ein und bestätigen Sie die Eingabe zweimal mit der Taste "#". Sie können auch die Länge des Codes ändern.

Das Gerät dient dem Schutz von Räumen, Schränken und Tresoren vor unbefugtem Öffnen.

Alle Einstellungen und Codes werden im nichtflüchtigen Speicher des Mikrocontrollers gespeichert.

Dieses einfache Schema liegt durchaus in der Macht vieler Funkamateure.

Ein durchdachter Arbeitsalgorithmus wird Ihnen das Vergnügen bereiten, dieses Schema zu bedienen.

Das Gerät basiert auf einem Mikrocontroller. PIC16F628A(DD1 im Diagramm von Fig. 1).

Nach dem Anlegen der Stromversorgung konfiguriert das Mikrocontroller-Programm seine Ports und deaktiviert auch die Referenzspannungsquelle, das SHI / Vergleichserfassungsmodul, Timer, Komparatoren und Hardware-USART - diese Module werden nicht benötigt, damit die Sperre funktioniert. Dann beginnt die Tastaturabfrage. Es besteht aus zwei Teilen. Die erste - Tasten SB3-SB14 - befindet sich außerhalb des geschützten Objekts. Die zweite - Tasten SB1, SB2 und Schalter SA1 - befindet sich im Innenbereich. Die Tasten SB3-SB13 des ersten Teils der Tastatur sind in einer Matrix kombiniert. Die Taste SB 14 ist nicht in der Matrix enthalten, sie dient dazu, den Mikrocontroller im Falle eines Fehlers im Programm sowie in einer Reihe anderer Fälle neu zu starten, auf die weiter unten eingegangen wird.

Der Taster SB1 „Öffnen“ wird im Innenbereich in der Nähe der Tür installiert. Durch Drücken können Sie die Tür von innen öffnen, ohne den Code zu wählen. SB2 - Programmneustarttaste; Tasten SB2 und SB And parallel geschaltet. Matrixtasten sind Bezeichnungen zugeordnet: SB3 - "1", SB4 - "4", SB5 - "7", SB6 - "Open". SB7 – „2“, SB8 – „5“, SB9 – „8“, SB10 – „0“, SB11 – „3“, SB12 – „6“. SB13 - "9". Der SAI-Kippschalter wählt den Schließmodus des Schlosses aus. Die Codeeingabe erfolgt durch abwechselndes kurzzeitiges Drücken der Zifferntasten. Als Bestätigung des Drückens ertönt ein kurzes Tonsignal des Piezosenders HA1. gesteuert durch den Transistor VT2.

Vor dem Öffnen der Tür wird ein vierstelliger Code mit Pausen zwischen aufeinanderfolgenden Drücken von nicht mehr als 3 s eingegeben. und dann muss innerhalb von 3 s kurz die Taste SB6 gedrückt werden. Nach 2 s wird der RAO-Ausgang des Mikrocontrollers DD1 auf gesetzt hohes Niveau, der Transistor VT1 öffnet und der Elektromagnet funktioniert!, wodurch der Riegel in Bewegung gesetzt wird, seine Feder zusammengedrückt wird und die Tür geöffnet wird.

Wenn die Pause zwischen aufeinanderfolgenden Drücken länger als 3 s ist, ertönt ein Signal mit abnehmender Frequenz. Das bedeutet, dass das Programm wieder gestartet wurde und der Code von vorne eingegeben werden muss. Die Diode VD1 soll den Transistor VT1 vor einem Spannungsstoß der Selbstinduktion der Elektromagnetwicklung Y1 schützen. Vor dem Auslösen des Elektromagneten ertönt ein Signal mit der gleichen Frequenz wie beim Drücken der Zifferntasten, jedoch mit längerer Dauer, das das Öffnen der Tür signalisiert.

Wenn die Kontakte des Schalters SA1 geöffnet sind, schließt der Elektromagnet das Schloss durch bestimmte Zeit(Standard - 12 s). Diese Zeit wird beim Programmieren des Mikrocontrollers eingestellt. In dem Programm, das in die Steuerung geladen werden muss, müssen Sie im Feld für die Arbeit mit EEPROM in der Zelle mit der Adresse 0x06 (siebte in Folge) eine Zahl von 0x01 bis OxFF mit einer Rate von 1 einfügen Einheit = 2,5 s. Die minimal mögliche Pause beträgt 2,5 s, die maximal 10 Minuten.

Sind die Kontakte des SA1-Schalters geschlossen, d. h. am RA4-Eingang des DD1-Mikrocontrollers liegt ein Low-Pegel an, so wird die Verriegelung nach Drücken der Taste SB 14 oder SB2 geschlossen. Nach dem Schließen des Transistors VT1 wird der Elektromagnet stromlos und die Verriegelungsfeder drückt den Riegel zurück - die Tür wird wieder verriegelt.

Um die Tür von innen zu öffnen, drücken Sie die Taste SB1 und halten Sie sie gedrückt, bis der Elektromagnet ausgelöst wird, was durch ein 2-Sekunden-Tonsignal angezeigt wird. Sie können die Tür jederzeit von innen öffnen. Wenn sich die Tür nicht öffnet, müssen Sie die Taste SB2 drücken (Programm neu starten) und erneut die Taste SB 1 drücken.

Wenn der Code geändert werden muss, wird zunächst der alte Code wie beim Türöffnen eingegeben, dann aber die Taste SB6 nicht kurz gedrückt, sondern gehalten, bis drei Töne zu hören sind. Dann müssen Sie die SB6-Taste sofort loslassen, einen neuen vierstelligen Code eingeben und sofort erneut die SB6-Taste drücken, um die Eingabe zu bestätigen. Als nächstes ertönt ein Signal mit zunehmender Frequenz, das anzeigt, dass der neue Code akzeptiert wurde. Es wird in den ersten vier Zellen des nichtflüchtigen Speichers des Mikrocontrollers DD1 gespeichert.

Das Gerät ist mit einem Verriegelungssystem ausgestattet. Jedes Mal, wenn Sie einen falschen Code eingeben, gibt das Schloss zwei Pieptöne mit 1000 Hz und einen mit 500 Hz aus. Der Controller hält es für falsch, die SB6-Taste zu einem Zeitpunkt zu drücken, an dem sich der falsche Code in den Arbeitsregistern befindet, und fünf Ziffern des Codes einzugeben. Nach drei aufeinander folgenden Fehlern setzt der DD1-Mikrocontroller den RA2-Ausgang auf einen hohen Pegel. Dadurch wird der Transistor VT3 geöffnet, der das Alarmgerät einschaltet. Dieses Gerät kann eine Sirene oder ein Telefonwählgerät sein.

Gleichzeitig leuchtet die auf dem Tastaturfeld installierte HL1-LED auf, was anzeigt, dass die Tastaturabfrage (mit Ausnahme des SA1-Kippschalters und der Tasten SB1, SB2, SB14) deaktiviert ist. Danach folgt eine zehnminütige Pause, in der das Alarmgerät arbeitet und die HL1-LED leuchtet. Während dieser Zeit kann das Schloss nur von innen geöffnet werden. Wenn Sie die Tasten SB 14 und SB2 (Tasten zum Neustarten des Mikrocontroller-Programms) drücken, beginnt der Zehn-Minuten-Countdown erneut. Nach der Pause bietet der Controller nur eine Gelegenheit, den Code einzugeben, und wenn er falsch ist, wird die zehnminütige Pause mit der Aktivierung des Alarmgeräts erneut wiederholt. Und so wird es fortgesetzt, bis der richtige Code eingegeben wird. Nach jeder Eingabe des korrekten Codes wird der Fehlerzähler auf Null zurückgesetzt.

Versorgt die Gerätequelle mit Strom Gleichstrom Spannung 10 ... 15 V. Bei einem Stromausfall im 220-V-Netz arbeitet das Schloss über die Batterie weiter. Ein Diagramm der einfachsten Version eines solchen Netzteils ist in Abb. 1 dargestellt. 2.

Der Transformator T1 senkt die Netzspannung von 220 V auf 15 ... 20 V. Der maximale Strom der Sekundärwicklung des Transformators sollte 1,5 A nicht unterschreiten. DA1 ist ein einstellbarer Spannungsregler. Durch Ändern des Widerstandswerts des Konstruktionswiderstands R2 wird am Ausgang des Stabilisators DA1 eine Spannung eingestellt, bei der der Ladestrom der geladenen Batterie GB1 100 ... 200 μA nicht überschreitet. Gleichzeitig gibt während eines hohen Stromverbrauchs, wenn der Elektromagnet Y1 arbeitete, der Hauptteil des Stroms ab Akkumulator, wodurch der Stabilisator DA1 nicht überlastet werden kann. Die Diode VD5 soll den Stabilisator DA1 bei fehlender Spannung an seinem Eingang schützen.

Die Batterie muss einen Strom von 300 ... 600 mA (Kapazität - 7 Ah) liefern. Der Stabilisator DA1 sollte auf einem Kühlkörper mit einer Fläche von 30...40 cm2 installiert werden.

Die Tastatur kann aus einzelnen Tasten bestehen. Geeignet ist beispielsweise DIPTRONICS DTSMW-66N. Sie können aber auch eine fertige Tastatur aus einem Taster verwenden Telefonapparat oder Taschenrechner. In der Regel können Sie eine solche Tastatur einfach an das Gerät anschließen, indem Sie die Tasten in einer geeigneten Matrix zusammenbauen. Es ist auch notwendig, die HL1-LED auf dem Tastaturfeld zu platzieren.

Der Piezo-Emitter ist für alle ZP-Serien geeignet. Der Elektromagnet Y1 wird vom Bandantriebsmechanismus des Tonbandgeräts verwendet, aber jeder andere geeignete Größe und mit einem maximalen Wicklungsstrom von nicht mehr als 1,3 A. Wenn der vom Elektromagneten verbrauchte Strom mehr als 1 A beträgt, dann Der Transistor VT1 sollte auf einem Kühlkörper mit einer Fläche von 30 .. .40 cm2 installiert werden.

Archiv mit Firmware



Wird geladen...
Spitze