luftzylinder_festo_verkabelt


Google-Suche auf MEINE-SCHALTUNG.de :





Dauerkalender


Tresor mit Zahlenschloss
(Tastatur, Arduino)


Mit einem Elektromagneten kann nach Eingabe eines Codes ein Tresor geöffnet werden. Die Eingabe des Codes erfolgt über eine Matrix-Folientastatur, die an Arduino angeschlossen ist. Der Code (Passwort) besteht aus vier Zeichen. Nach Eingabe des richtigen Codes wird ein Relais eingeschaltet, das den Elektromagneten steuert. Der Elektromagnet entriegelt daraufhin den Schließmechanismus des Tresors und Tresor kann geöffnet werden. Wird bei der Eingabe ein Fehler begangen, muss die Eingabe des Codes erneut durchgeführt werden. Erfolgen nacheinander drei falsche Eingaben, wird die Schaltung für eine eingestellte Zeit gesperrt. Erst nach Ablauf dieser Zeit kann der Code erneut eingegeben werden.

Das Eingabefeld


Für diese Schaltung wird eine Matrix-Folientastatur (4x4) verwendet, die über 16 Tastenfelder verfügt. Wären die Eingabe-Felder direkt abgefragt, würde man 17 Anschluss-Adern für diese Tastatur benötigen. Um die Anzahl der Verbindungen zu reduzieren, sind die Tastenfelder intern speziell verschaltet. Das führt dazu, dass nur acht Verbindungen zu Arduino benötigt werden. Die interne Verschaltung der Tastenfelder sieht wie folgt aus:


Elektromagnet

Das Einschalten des Elektromagnets erfolgt über ein Relais. Dies ist notwendig, da der Elektromagnet für 24 VDC ausgelegt ist. Mit einem Relais werden die Spannungen, 24 VDC von Elektromagnet und 5 VDC Betriebsspannung von Arduino, sicher getrennt. Das Relais tritt hier in Form eines Moduls mit einem Transistor und Freilaufdiode auf. Das Modul kann bedenklos an Arduino angeschlossen werden. Soll ein anderes Relais direkt an Arduino angeschlossen werden, muss man auf die Spulenspannung und Stromaufnahme achten. Bei Überlastung kann ein Arduino-Ausgang zerstört werden.



Elektromagnet

Elektromagnet 24 VDC

Der Schaltplan

Schaltplan

Schaltplan

Testschaltung

Testschaltung

Das Programm

Damit das Programm funktioniert, muss die Bibliothek „Keypad.h“ installiert werden (Infos unter https://github.com/Chris--A/Keypad). Die Bibliothek übernimmt die Ansteuerung der Folientastatur.
Das Programm wartet in der Hauptschleife auf Tastatureingaben. Jede in Empfang genommene Eingabe wird mit einem kurzen Aufleuchten der LED bestätigt. Nach Eingabe von vier Zeichen wird geprüft, ob der richtige Code eingegeben wurde. Der richtige Code lautet in dem Beispiel: „756A“. Bei falscher Eingabe wiederholt sich der Vorgang. Erfolgen drei falsche Eingaben, werden weitere Eingaben blockiert. Erst nach Ablauf einer bestimmten Zeit (Sperrzeit) können weitere Eingaben getätigt werden. Wird richtiger Code eingegeben, wird der Elektromagnet für 0,5 Sek. eingeschaltet und so das Schloss des Tresors entriegelt. Das Einschalten des Elektromagnetes wird mit der blauen LED signalisiert.

// ********************************************************************************
// Tresor mit einem Codeschloss
// 4x4 Matrix-Folientastatur + Elektromagnet 24 VDC
// Arduino Mega2560, IDE 1.8.13
// ********************************************************************************

#include <Keypad.h>

const byte ROWS = 4;                        // 4 Reihen
const byte COLS = 4;                        // 4 Spalten
int Relais = 23;                            // Pin Relais
int RGB_LED_rot = 43;                       // Pin LED rot
int RGB_LED_gelb = 45;                      // Pin LED gelb
int RGB_LED_blau = 47;                      // Pin LED blau
                                            // Zeichen und Symbole auf der Tastatur
char hexaKeys[ROWS][COLS] = {
    {'1','2','3','A'},
    {'4','5','6','B'},
    {'7','8','9','C'},
    {'*','0','#','D'} };
byte rowPins[ROWS] = {9, 8, 7, 6};          // Arduino Pins (Reihen)
byte colPins[COLS] = {5, 4, 3, 2};          // Arduino Pins (Spalten)
                                            // Initialisierung
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 
                                            // Variablen
String Code = "756A";
String Eingabe = "";
int Versuch = 1;

                                            // SetUp ******************************
void setup(){
    pinMode(Relais, OUTPUT);
    pinMode(RGB_LED_rot, OUTPUT);
    pinMode(RGB_LED_gelb, OUTPUT);
    pinMode(RGB_LED_blau, OUTPUT);
}

                                            // Hauptprogramm **********************
void loop(){
    char customKey = customKeypad.getKey();

    if ((customKey) && (Versuch < 4)) { 
        Eingabe = Eingabe + customKey; 
        digitalWrite(RGB_LED_gelb,HIGH);
        delay (100);
        digitalWrite(RGB_LED_gelb,LOW);

        if (Eingabe == Code) {              // Code richtig eingegeben
            digitalWrite(Relais,HIGH);
            digitalWrite(RGB_LED_blau,HIGH);
            delay(1000);
            digitalWrite(Relais,LOW);
            digitalWrite(RGB_LED_blau,LOW);
            Versuch = 0;
            Eingabe = ""; }
        
        if (Eingabe.length() == 4) {        // falsche Code-Eingabe
            Versuch++;
            Eingabe = ""; }

        if (Versuch == 4) {                 // 3 falsche Versuche = Blockade
            digitalWrite(RGB_LED_rot,HIGH);
            delay(5000);
            digitalWrite(RGB_LED_rot,LOW);
            Versuch = 1; }
    }
}
// ********************************************************************************
    

Kurzvideo

Kurzvideo: Tresor mit Zahlenschloss


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz