Schatzkiste - Montage Anleitung
Die Schatzkiste lässt sich mit dem Betätigen von vier Tasten in der richtigen Reihenfolge öffnen. Wird eine Taste betätigt, leuchtet die darüber liegende LED. Ist der Tasten-Code richtig eingegeben, gehen die vier weißen LEDs über den Tasten aus, eine grüne LED leuchtet und die beiden Servo-Motoren öffnen die Verschlüsse. Ist die Schatzkiste geöffnet, kann mit jeder beliebigen Taste die Schatzkiste wieder verschlossen werden. Ist der Code falsch eingegeben, erlöschen die vier LEDS und die Schatzkiste bleibt verschlossen.
Im inneren der Schatzkiste ist ein Reed-Kontakt versteckt. Nur der Eigentümer der Schatzkiste weiß, wo sich der Reed-Kontakt befindet. Wird an diesen Reed-Kontakt ein Magnet gehalten, blinken die vier Taster-LEDs und der Code kann neu programmiert werden. Nach erfolgreicher Programmierung blinken die vier Taster-LEDs erneut. Der Code wird in das EEPROM des NANO geladen, so dass auch bei Spannungsausfall der Code erhalten bleibt.
Die Schatzkiste
Hardware
Die Stückliste für die Schatzkiste
- 1 x NANO
- 1 x NANO-Shield
- 2 x Buchsenleisten
- 2 x Stiftleisten
- 2 x Servo Motore SG90
- 2 x 90° Verschluss Winkel
- 1 x Reed-Kontakt mit Magnet
- 4 x Taster
- 4 x LEDs weiß
- 1 x LED grün
- 5 x 1kOhm Widerstand
- 1 x 9V Batterie
- 1 x 9V Batterie-Clip
- 1 x Gelaserte Schatzkiste (4mm Sperrholz 600x300)
Aufbau und Montage
Der Aufbau und die Montage der Schatzkiste ist in mehrere Schritte unterteilt.
Schritt 1: Das Gehäuse
- Erstelle auf Boxes.PY eine "Kiste mit eingebundenen Schanier" mit den Abmessungen x=160, y=100 und h=80, Deckelhöhe 28.
- Füge in die erstellte SVG-Grafik die Löcher für die LEDs und Taster ein
- Füge in die erstellte SVG-Grafik deine Grafik für die Verziehrung der Schatzkiste ein
- Schneide das Gehäuse mit dem Lasercutter aus
- Klebe die Servo-Motoren in den Gehäusedeckel
- Klebe die Winkel an die Frontplatte
- Klebe den Reed-Kontakt in das Gehäuse
- Montiere die LEDs und die Taster an die Gehäuse-Front
- Verklebe die Gehäuseteile. Die untere Rückwand wird nicht verklebt
Schritt 2: 3D-Druck
Zeichne und drucke 4 Platinen Füße für den NANO, D=5mm x 5mm
Klebe die Füße auf die Unterseite des NANO-Shields
Schritt 3: Verdrahtung und Lötarbeiten
Bestücke das NANO-Shield mit den Buchsenleisten und den beiden Stiftleisten für die Servo-Motore
Biege an einem Ende der Widerstände und am +Pol der LEDs eine Öse
Führe Anschlussdrähte für die Widerstände und der LEDs durch die Öse und Löte sie an
Verdrahte das Shield, die LEDs, Taster und den Reed-Kontakt nach den Verdrahtungsplan
Schritt 4: Inbetriebnahme
- Kontrolliere alle Verbindungen
- Lade das Servo-Test Programm in den NANO
- Versorge die Schatzkiste mit Spannung
- Teste den Verschluss-Mechanismus mit den Servo-Motoren
- Wenn der Verschluss ok ist, lade das Haupt-Programm in den NANO
- Das Programm befindet sich auf deinen Laptop unter Nextcloud/Schatzkiste
- Aktiviere mit einen Magneten über den Reed-Kontakt die Programmierung des Codes
- Gibt über die Taster deinen Code ein
- Teste deinen Code
- Ist der Code richtig, öffen die Servo-Motor die Verschluss-Einrichtung
Servo -Text Programm
/*************************************************************************************************
PROGRAMMINFO
**************************************************************************************************
Funktion: Schatzkiste Servo Test
Die Servos muessen sich zum oeffnen der Schazkiste entgegengesetzt bewegen
Servo links D9
Servo rechte D10
Taster D7 betaetigt/geschlossen => GND,
**************************************************************************************************
Version: 28.01.2023
**************************************************************************************************
Board: NANO 1.6.21
**************************************************************************************************
Libraries:
https://github.com/espressif/arduino-esp32/tree/master/libraries
C:\Users\User\Documents\Arduino
D:\gittemp\Arduino II\A156_Wetterdaten_V3
**************************************************************************************************
C++ Arduino IDE V1.8.19
**************************************************************************************************
Einstellungen:
https://dl.espressif.com/dl/package_esp32_index.json
http://dan.drown.org/stm32duino/package_STM32duino_index.json
http://arduino.esp8266.com/stable/package_esp8266com_index.json
**************************************************************************************************/
#include <Servo.h>
Servo myservo_li; //Servo links
Servo myservo_re; //Servo rechts
int pos = 0;
int button = 7; //button = LOW -> Schatzkiste zu
void setup()
{
myservo_li.attach(9); // Servo links
myservo_re.attach(10); // Servo rechts
pinMode(pos, OUTPUT);
pinMode(button, INPUT);
digitalWrite (button, HIGH);
}
void loop()
{
//******* Servo links ********************
if (digitalRead(button) == LOW)
for (pos = 0; pos < 90; pos += 90)
{
myservo_li.write(pos);
}
if (digitalRead(button) == HIGH)
for (pos = 90; pos >= 90; pos -= 90)
{
myservo_li.write(pos);
delay(50);
}
//******* Servo rechts ********************
for (pos = 90; pos >= 90; pos -= 90)
{
myservo_re.write(pos);
}
if (digitalRead(button) == HIGH)
for (pos = 0; pos < 90; pos += 90)
{
myservo_re.write(pos);
delay(50);
}
}
Fertig!