Arduino-Türschloss mit Tastatur & benutzerdefiniertem Code
Komponenten und Materialien
| Komponente | Menge | Hinweise |
|---|---|---|
| Arduino UNO | 1 | |
| 4x4 Tastenmatrix (Keypad) | 1 | |
| Taster (generic) | 1 | Innentaster zum Öffnen |
| LCD I²C (16x2) | 1 | Mit I²C-Adapter |
| Linearsolenoid (Türöffner) | 1 | 12V |
| IRF510N MOSFET | 1 | Solenoid-Ansteuerung |
| 1-Kanal Relaismodul | 1 | Alternative zum MOSFET |
Benötigte Werkzeuge
- Breadboard (170 Pins)
- Jumper-Kabel Set (5 cm)
Über dieses Projekt
Hallo und willkommen zu diesem Tutorial (klassisch, aber bewährt). Heute baue ich ein Türschloss basierend auf Arduino, Keypad, I²C-LCD, und wahlweise Solenoid+MOSFET oder Relais. Siehe auch mein Fingerprint-Türschloss-Tutorial (DC-Motor-Schloss) – je nach Schloss-Typ Verdrahtung und Code anpassen.
Hinweis: Für echte Projekte empfehle ich keinen Solenoid, sondern ein Schloss, das sowohl elektronisch als auch mechanisch öffnet – und das Projekt daran anpassen.
Bauteile im Detail
Zusätzlich: Jumper-Kabel, 12V-Netzteil für Solenoid (nicht in Liste).
Der Innentaster öffnet von innen (entfernbar). Vorwiderstand zur Entprellung.
4×4 Keypad genutzt; 3×4 geht auch, aber Code anpassen (Bestätigung: 'A' → '*' oder '#').
Solenoid wird mit 12V extern versorgt, über IRF510N MOSFET geschaltet. MOSFET als Schalter: 5V an Gate-Source → Durchlass Drain-Source (wie geschlossener Schalter). Kein Gate-Widerstand nötig (anders als Bipolar). Ohne Gate-Spannung = sperrend (offener Schalter). So steuern wir das Solenoid.
Alternative: 1-Kanal-Relaismodul (3,3V/5V logik). Eingang wie MOSFET steuern, nur invertierte Logik (LOW = an, HIGH = aus). Code zeigt beide Varianten.
Algorithmus-Flowchart
(Bild im Original) Überblick über Code-Logik. Relais kann jedes Elektroschloss bis 250VAC steuern, auch Solenoid. Codes sind identisch, nur LOW/HIGH zum Öffnen getauscht.
Wichtig beim ersten Flashen: Code hochladen, Passcode ändern, dann Zeilen 62-64 auskommentieren (EEPROM lesen) und neu flashen. Nur einmal nötig!
Codelänge anpassbar: Standard 4 Stellen. sizeof(code) statt fester '4' verwendet. Nicht einfach 4-stellig auf 6-stellig ändern – erst Initial-Code im Quelltext anpassen.
Test
Testbilder im Original (Schritt für Schritt: Standby → Code eingeben → Falsch → Richtig → Öffnen → Code ändern → Neuer Code → Innentaster). Gleich für Solenoid und Relais.
Bei Fragen: Kommentar hinterlassen.
Code
Keypad_doorlock_solenoid.ino (Arduino)
/* 4x4 Keypad, LCD I2C, IRF510N, Taster
* Öffnen per Code oder Innentaster
* Code änderbar per Keypad, im EEPROM gespeichert
* www.surtrtech.com
*/
#include <Keypad.h>
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>
#define Solenoid 11 // Gate des MOSFET
#define O_Button 10 // Innentaster
#define I2C_ADDR 0x27 // I2C-Adresse (scannen!)
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
const byte numRows = 4;
const byte numCols = 4;
char keymap[numRows][numCols] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
char keypressed;
char code[] = {'6','6','0','1'}; // Default-Code (anpassbar)
char code_buff1[sizeof(code)];
char code_buff2[sizeof(code)];
short a=0, i=0, s=0, j=0;
byte rowPins[numRows] = {9,8,7,6};
byte colPins[numCols] = {5,4,3,2};
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
void setup() {
lcd.begin(16,2);
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);
lcd.home();
lcd.print("Standby");
pinMode(Solenoid, OUTPUT);
pinMode(O_Button, INPUT);
/* ERSTES FLASHEN: auskommentiert lassen!
for(i=0; i
Keypad_doorlock_relay.ino (Arduino – Relais-Variante)
/* Identisch zur Solenoid-Version, nur:
* #define Relay 11
* OpenDoor(): digitalWrite(Relay, LOW); delay(3000); digitalWrite(Relay, HIGH);
* Innentaster: digitalWrite(Relay, LOW); delay(3000); digitalWrite(Relay, HIGH);
* (Relais: LOW=an, HIGH=aus)
*/
Schaltpläne
Zwei Schaltplan-Bilder im Original: MOSFET-Variante & Relais-Variante.
Herstellungsprozess
- Banktresore: Geschichte, Design und Zukunft der Sicherheit
- Smartes Auto-Lock-Türschloss per Smartphone-Bluetooth-Nähe bauen
- Multi-Position Temperatursensor-System für Smart-Home-Integration
- MotionSense: Smarte Einbruchserkennung mit Arduino & ESP8266
- 3D-Drucker Brandschutz: Intelligentes Sensorsicherheitssystem
- Sicheres Passwort-Türschloss mit Arduino, Keypad & Linearaktuator
- Web-fähigen IoT-Messer mit Arduino, Yaler und IFTTT bauen
- Arduino-basierte abstoßende Magnetschwebung: Einfache Schaltung & DIY-Anleitung
- Fortgeschrittener ferngesteuerter Greifer-Roboter für präzises Handling
- CoroFence Thermaldetektor: PIR-Sensor & IoT-Integration mit Panasonic GridEye