Ungewöhnliches Zahlenschloss für Arduino

Arduino ist das beste System zum Kopieren von Geräten. Die meisten Ideen wären ohne sie nicht möglich gewesen. Seit langem gibt es eine solche Idee: ein spezielles Zahlenschloss für Arduino zu schaffen. Um es zu öffnen, müssen Sie eine bestimmte Taste gedrückt halten. In diesem Fall sollte sich das Schloss nicht öffnen, auch wenn Sie den richtigen Knopf kennen. Um es zu öffnen, ist es notwendig, bestimmte Intervalle unter Verwendung des Muskelgedächtnisses zu überstehen. Ein solcher Verbrecher wird nicht begehen können. Dies ist jedoch nur eine Theorie.

Zum Zusammenbau benötigen Sie ein spezielles Gerät mit Rechteckimpulsen sowie mehrere Zähler und einen Haufen. Das fertige Gerät hätte jedoch große Gesamtabmessungen und wäre unpraktisch zu verwenden. In der Regel verfolgen solche Gedanken. Der erste Schritt zur Verwirklichung eines Traums war die Erstellung eines Programms für Arduino. Es wird als Zahlenschloss dienen. Um es zu öffnen, müssen Sie nicht eine, sondern mehrere Tasten drücken und gleichzeitig ausführen. Das fertige Schema sieht folgendermaßen aus:

Zahlenschloss

Die Bildqualität ist nicht die beste, aber die Verbindung wird zum Boden D3, D5, D7, D9 und D11 hergestellt.

Der Code wird unten dargestellt:

const int ina = 3;

const int inb = 5;

const int inc = 9;

const int ledPin = 13;

int i = 1000;

Byte a = 0;

Byte b = 0;

Byte c = 0;

Byte d = 0;

lange Zeit ohne Vorzeichen = 0; // Vergiss nicht alles, was einen millis () Wert annimmt

vorzeichenlose lange Temperatur = 0; // lange ohne Vorzeichen speichern

Byte keya [] = {0, 0, 0, 0, 0, 0, 0, 0}; // Codes eigentlich

Byte keyb [] = {1, 1, 1, 1, 0, 1, 0, 0};

Byte keyc [] = {1, 0, 1, 0, 1, 1, 1, 0};

Byte k = 0;

 

void setup () {

pinMode (ina, INPUT_PULLUP); // 3 Eingänge an Tasten angeschlossen

pinMode (inb, INPUT_PULLUP);

pinMode (inc, INPUT_PULLUP);

pinMode (ledPin, OUTPUT); // eingebaute LED am 13. Pin

PinMode (7, OUTPUT);

PinMode (11, OUTPUT);

digitalWrite (7, LOW); // Ersetze die Erde

digitalWrite (11, LOW);

Zeit = Millis (); // benötigt, um die Zeit zu zählen

}}

 

void blinktwice () {// doppelt blinkende LED

digitalWrite (ledPin, HIGH);

Verzögerung (100);

digitalWrite (ledPin, LOW);

Verzögerung (100);

digitalWrite (ledPin, HIGH);

Verzögerung (100);

digitalWrite (ledPin, LOW);

Verzögerung (200);

}}

 

void loop () {

if (k == 0) {

blinktwice (); // Eingabeaufforderung für Code

}}

if (k == 8) {

digitalWrite (ledPin, HIGH);

Verzögerung (3000);

k ist 0;

}}

a = digitalRead (ina); // Signalpegel von Tasten lesen - gedrückt / nicht gedrückt

b = digitalRead (inb);

c = digitalRead (inc);

Verzögerung (100); // next if - Schutz gegen Fehlalarme, den Sie nicht verwenden können

if ((digitalRead (ina) == a) && (digitalRead (inb) == b) && (digitalRead (inc) == c)) {

if (a == keya [k]) {

if (b == keyb [k]) {

if (c == keyc [k]) {

 

k ++;

}}

}}

}}

}}

if (k == 1) {

if (d == 0) {

Zeit = Millis ();

d ++;

}}

}}

temp = millis ();

temp = temp - Zeit;

if (temp> 10000) {

k ist 0;

d ist 0;

Zeit = Millis ();

}}

}}


Um unnötige Fragen zum Code zu vermeiden, sollten einige Punkte geklärt werden. Die Setup-Funktion wird zum Zuweisen von Ports verwendet. Die nächste Funktion ist Input_Pullup, die erforderlich ist, um die Pin-Spannung um 5 V zu erhöhen. Dies erfolgt über einen Widerstand. Aus diesem Grund treten verschiedene Kurzschlüsse nicht auf. Für mehr Komfort wird empfohlen, die Funktion blinktwice zu verwenden. Im Allgemeinen müssen Sie beim Erstellen verschiedener Programme andere Funktionen ausprobieren.

Nachdem die Funktionen zugewiesen wurden, wird das Signal von den Ports gelesen. Wenn die Taste gedrückt wird, wird sie durch die Nummer 1 angezeigt, und wenn nicht - 2. Als nächstes eine Analyse aller Werte. Zum Beispiel gab es eine Kombination wie 0,1,1. Dies bedeutet, dass die erste Taste gedrückt wird und die anderen beiden nicht. Wenn alle Werte wahr sind, ist auch Bedingung 8 wahr. Dies wird durch eine leuchtende LED an der Vorderseite angezeigt. Als nächstes müssen Sie einen bestimmten Code eingeben, der zum Öffnen der Tür dient.

Die letzten Codeelemente werden verwendet, um die Zählerwerte zurückzusetzen. Eine solche Funktion wird ausgeführt, wenn seit dem letzten Tastendruck mehr als 10 Sekunden vergangen sind.Ohne diesen Code könnten Sie alle möglichen Optionen durchgehen, obwohl es viele davon gibt. Nachdem Sie dieses Gerät erstellt haben, müssen Sie es testen.

 

(3 Stimmen)
Laden ...

Kommentar hinzufügen