Arduino Projekt: Türsicherheitssystem: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 6: Zeile 6:
== '''Aufgabenstellung''' ==
== '''Aufgabenstellung''' ==
* Ziel des Projektes ist eine Tür Sicherheitssystem zu simulieren.
* Ziel des Projektes ist eine Tür Sicherheitssystem zu simulieren.
* Die Aufgabe ist, mit einem vierstelligen Zahlen Code die Tür zu öffnen.
* 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.
* 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.
* Alle Eingaben sollen auf dem seriellen Monitor angezeigt werden.



Version vom 15. August 2023, 08:59 Uhr

Abb. 1: Tür Sicherheitssystem

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 Software

  • Aktuellste Arduino IDE mit der Version für ihren PC. (Download link)
  • Bibliotheken für das 4x4 Tastenfeld downloaden: (Link)
    • Klicke oben rechts in GitHub auf Code und dann downloade die Zip-Datei.
    • Um die Zip-Datei in ihre Arduino Bibliothek einzubinden, folgen diese Schritte: (Link)

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!

Abb. 2: LED

Arduino Uno R3:

  • Der Arduino besitzt unterschiedliche Schnittstellen, weil der Arduino ein digitaler Mikrocontroller ist, kann er nur  5 Volt ausgeben oder annehmen.
  • Bei einer konstanten  5 V Spannung, ist die LED immer gleich hell, so ist das Ziel die Spannung zur LED zu reduzieren.
  • Dafür wird eine Pulsweitenmodulation (PWM) Schnittstelle benötigt, denn bei den anderen Schnittstellen ist dies nicht möglich.
  • Bei einem geringen PWM-Wert ist das  5 V Signal kaum noch vorhanden und bei einem hohen PWM-Wert liegt das  5 V Signal nahezu durchgehend am Pin an.
  • Durch die PWM Schnittstelle kann nun die LED unterschiedlich hell leuchten, da die Spannung anpassbar ist.
  • Die [PWM] Schnittstellen sind ganz einfach zu erkennen an diesem Zeichen (~)

LED:

  • Beachte beim Arbeiten mit der LED, die Anode und Kathode nicht zu vertauschen.
  • In die Anode fließt der Strom hinein (lange Seite), danach fließt der Strom wieder durch die Kathode hinaus (kurze Seite) siehe Abb. 2.
  • Wenn die LED am Ende des Projektes nicht leuchtet, wurde dies vertauscht, einfach umdrehen und sie leuchtet!

Steckbrett:
Erklärung zum Arbeiten mit einem Steckbrett: (Link)

Servomotor:

  • Schwarz oder Braun = Masse (GND)
  • Rot = + 5 V
  • Orange, Gelb oder Weiß = PWM-Signal

Tastenfeld:
Anleitung zum Tastenfeld siehe: (Link)

Aufbau Schaltung

Abb.3 Schaltung Tür Sicherheitssystem

In Abb. 3 wird die Schaltung für das Projekt " Tür Sicherheitssystem" dargestellt.

Arduino Datei erstellen

Erstellen der ersten Arduino Datei (Link zum Tutorial).

Programmierung Vorkenntnisse

  • Kenntnisse in den Programmierrichtlinien für die Erstellung von Software. (Link)
  • Grundkenntnisse von Projekt 1-4 verstanden haben. (Link)
  • Grundkenntnisse für das Projekt "Tür Sicherheitssystem" verstehen. (Link)

Programmierung Anleitung

Nachdem alle Schritte abgeschlossen sind, kann mit der Programmierung des Projektes gestartet werden.

1) Bibliotheken einfügen

Zuerst muss, für das Projekt Tür Sicherheitssystem, die heruntergeladenen Bibliotheken eingefügt werden.
Benötigt wird die Bibliothek für den Servomotor und für das Tastenfeld.

Quelltext 1: TSS.ino

2) Initialisierung Arduino

Im nächsten Schritt wird das Projekt mit den verbundenen Hardwarebauteilen im Programm initialisiert.

2.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

2.2) Tastenfeld Variablen

Benötigt werden Variablen zum:

  • Festlegen des Passwortes
  • Speichern der aktuell gedrückten Taste
  • Speichern der vier gedrückten Tasten
  • verhindern einer falschen Position bei der Eingabe

Quelltext 2: TSS.ino

2.3) Motor, Buzzer und RGB initialisieren

Zum Schluss wird die externe Hardware initialisiert und mit dem jeweiligen Pin verbunden.
Pin belegung: RGB (12,13), Motor (11) und Buzzer (10).

Tipp:

  1. Bei Fragen zum Code, kann in den anderen Projekten nachgeschaut werden. (Link)

Quelltext 3: TSS.ino

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:

  1. Nachdem die erste Ziffer gedrückt wurde, öffnet sich die Eingabe für die zweite Ziffer usw.
  2. Benötigt wird hierfür eine If-Anweisung und eine goto Funktion.
  3. Die Taste bekommt mit der Funktion Tastenfeld.getKey(); ihre Ziffer.

Quelltext 4: TSS.ino

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.

Tipp:

  1. Benötigt werden If-Else Funktionen, die nach der bestimmten Taste abfragen und die Anweisung dann ausführen.

Quelltext 5: TSS.ino

5) Einbrecher Warnung!

Als Zusatzaufgabe wurde sich überlegt, einen Buzzer ertönen zu lassen, wenn das Passwort 3-mal Falsche eingegeben wurde.

Tipp:

  1. Bei einer falschen Eingabe wird die Variable hochgezählt.
  2. Wenn die Variable 3 erreicht, ertönt der Buzzer.

Quelltext 6: TSS.ino

Musterlösung

Quelle: Link



→ zurück zum Hauptartikel: BA: Arduino-Projekte für die Lehre