Arduino Projekt: Türsicherheitssystem: Unterschied zwischen den Versionen
Zeile 237: | Zeile 237: | ||
* Für das Öffnen der Tür wird die Taste '''(#)''' verwendet und zum Tür verriegeln die Taste '''(*)'''. | * Für das Öffnen der Tür wird die Taste '''(#)''' verwendet und zum Tür verriegeln die Taste '''(*)'''. | ||
* Wenn die Tür offen ist, leuchtet die LED Grün und Rot, wenn sie geschlossen ist. | * Wenn die Tür offen ist, leuchtet die LED Grün und Rot, wenn sie geschlossen ist. | ||
* Der Motor soll ich zu 90 Grad drehen beim Schließen und zu 0 Grad beim Öffnen.<br> | * Der Motor soll ich zu 90 Grad drehen beim Schließen und zu 0 Grad beim Öffnen. | ||
* Überprüfe vor dem Öffnen, ob das Passwort korrekt ist.<br> | |||
'''Tipp: ''' | '''Tipp: ''' | ||
# Benötigt werden | # Benötigt werden if-Else Funktionen, die nach der bestimmten Taste abfragen und die Anweisung dann ausführen. | ||
'''Quelltext 5: ''' <code>TSS.ino</code> | ['''Quelltext 5: ''' <code>TSS.ino</code>] | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>Lösung  </strong> | | <strong>Lösung  </strong> | ||
Zeile 258: | Zeile 259: | ||
Serial.println("Tuer verriegelt"); | Serial.println("Tuer verriegelt"); | ||
delay(2000); | delay(2000); | ||
Servo_blau.write(90); //Servo zum | Servo_blau.write(90); //Servo zum Verriegeln auf 90 Grad ansteuern | ||
digitalWrite(ROTE_LED, HIGH); | digitalWrite(ROTE_LED, HIGH); | ||
digitalWrite(GRUENE_LED, LOW); | digitalWrite(GRUENE_LED, LOW); |
Version vom 15. August 2023, 09:54 Uhr
Autor: Justin Frommberger
Aufgabenstellung
- Ziel des Projektes ist eine Tür Sicherheitssystem zu simulieren.
- Die Aufgabe ist, mit einem vierstelligen Zahlen Code die Tür zu öffnen (LED grün).
- Wenn der Code 3-mal Falsche eingegeben wurde, ertönt ein Warnsignal und die LED leuchtet rot auf.
- Alle Eingaben sollen auf dem seriellen Monitor angezeigt werden.
Benötigte Materiallien
Tabelle 1: Materialliste
Nr. | Anz. | Beschreibung | Bild |
---|---|---|---|
① | 1 | Funduino Arduino UNO R3 | |
② | 1 | USB A zu USB B | |
③ | 20+ | Jumperkabel, männlich/männlich | |
④ | 1 | Steckbrett | |
⑤ | 2 | LED Rot/Grün | |
⑥ | 3 | Widerstand 120 Ω |
|
⑦ | 1 | TowerPro SG90 Servomotor | |
⑧ | 1 | Piezo Lautsprecher | |
⑨ | 1 | 4x4 Tastenfeld |
Vorab wichtig zu wissen!
Servomotor Kabel
Schwarz oder Braun | Masse (GND) |
Rot | VCC/+ 5 V |
Orange, Gelb oder Weiß | PWM-Signal |
Tastenfeld
Anleitung zum Tastenfeld siehe: [klicken]
Aufbau Schaltung
In Abb. 3 wird die Schaltung für das Projekt "Tür Sicherheitssystem" dargestellt.
Bevor mit der Programmierung begonnen werden kann, muss die Schaltung des Projekts aufgebaut werden.
Programmierung
Es ist wichtig, die [Programmierrichtlinien] beim Programmieren einzuhalten.
1) Bibliotheken einfügen
Lade, für das Projekt, die Bibliothek für das Tastenfeld 4x4 herunter.
Benötigt werden die Bibliotheken Servo.h
und Keypad.h
.
[Quelltext 1: TSS.ino
]
AusklappenLösung |
2) Initialisierung Arduino
Im nächsten Schritt sollen die verbundenen Hardwarebauteile im Programm initialisiert werden.
1. Tastenfeld initialisieren
Ziel ist, alle benötigten Variablen für die Funktion: Keypad Tastenfeld = Keypad(makeKeymap(Hexa_Keys), Row_Pins, Col_Pins, ROWS, COLS);
festzulegen.
- ROWS sind die Anzahl der Spalten und COLS sind die Anzahl der Zeilen, diese werden als Variable festgelegt.
- Daraufhin müssen Row_Pins und Col_Pins ihren Ziffern zugeordnet werden über eine Array-Zuweisung.
- Zum Schluss muss die Hexa_Keys Matrix aufgebaut werden, hier wird jede Ziffer für das Tastenfeld festgelegt.
[Quelltext 2: TSS.ino
]
AusklappenLösung |
2. Tastenfeld Variablen
Benötigte Variablen zum:
- Festlegen des Passwortes, jeder Buchstabe einzeln.
- Speichern der aktuell gedrückten Taste.
- Speichern der vier gedrückten Tasten.
- Verhindern einer falschen Position bei der Eingabe.
[Quelltext 2: TSS.ino
]
AusklappenLösung |
3. Motor, Buzzer und RGB initialisieren
Zum Schluss werden LED, Motor und Buzzer initialisiert und mit dem jeweiligen Pin verbunden.
Pin Belegung: LED (12,13), Motor (11) und Buzzer (10).
⇒ pinMode();
⇒ Servo.h
Quelltext 3: TSS.ino
AusklappenLösung |
3) Richtige Reihenfolge der Eingabe
Wichtig ist, dass die Ziffern richtig eingegeben werden.
- So muss sich eine Funktion überlegt werden, welches dies ermöglicht.
- Zur Verwendung kommen nun die Variablen für die falsche Position.
- Auch muss die Variable Taste ihre Werte erhalten.
- Die gedrückte Taste wird in der C1-4 Variable abgespeichert, um später das Passwort zu überprüfen.
Tipp:
- Nachdem die erste Ziffer gedrückt wurde, öffnet sich die Eingabe für die zweite Ziffer usw.
- Benötigt wird hierfür eine
if-Bedingung
und einegoto
Funktion. - Die Taste bekommt mit der Funktion
Tastenfeld.getKey();
ihre Ziffer.
[Quelltext 4: TSS.ino
]
AusklappenLösung |
4)Tür öffnen und schließen
- Nachdem nun die richtige Eingabe programmiert wurde, fehlt noch das öffnen und schließen der Tür.
- Für das Öffnen der Tür wird die Taste (#) verwendet und zum Tür verriegeln die Taste (*).
- Wenn die Tür offen ist, leuchtet die LED Grün und Rot, wenn sie geschlossen ist.
- Der Motor soll ich zu 90 Grad drehen beim Schließen und zu 0 Grad beim Öffnen.
- Überprüfe vor dem Öffnen, ob das Passwort korrekt ist.
Tipp:
- Benötigt werden if-Else Funktionen, die nach der bestimmten Taste abfragen und die Anweisung dann ausführen.
[Quelltext 5: TSS.ino
]
AusklappenLösung |
5) Einbrecher Warnung!
Als Zusatzaufgabe wurde sich überlegt, einen Buzzer ertönen zu lassen, wenn das Passwort 3-mal Falsche eingegeben wurde.
Tipp:
- Bei einer falschen Eingabe wird die Variable hochgezählt.
- Wenn die Variable 3 erreicht, ertönt der Buzzer.
Quelltext 6: TSS.ino
AusklappenLösung |
Musterlösung
Quelle: Link
AusklappenLösung Code |
→ zurück zum Hauptartikel: BA: Arduino-Projekte für die Lehre