Aus den einzelnen Grundlagen kannst du dein eigenes Programm zusammensetzen und mit Hilfe der Schemen die Tresorsteuerung selbst entwickeln. Damit du eine Vorstellung davon bekommst, wie dein Endprodukt aufgebaut werden kann, gibt es schon 3 Vorschläge. Lass dich inspirieren!
In diesem Vorschlag wird die Steuerung über 2 Taster gemacht, mit 2 LEDs wird der Zustand angezeigt und mit einem Servo wird geöffnet und geschlossen.
///////////////////////////////////*DEFINITIONEN*/////////////////////////////////// /*SERVO-DEFINITIONEN*/ #include <Servo.h> //Bibliotheke des Servo wird eingefügt #define SERVOPIN1 2 //Hier wird der Pin definiert, wo der Servo1 angeschlossen ist Servo servo1; //Der Servo1 muss auch definiert werden /*TASTER-DEFINITIONEN*/ #define TASTER_AUF 7 //Der Begriff TASTER_AUF hat den Wert 7 #define TASTER_ZU 8 //Der Begriff TASTER_ZU hat den Wert 8 /*Zustandsanzeige*/ #define LED_GREEN 5 //Die grüne LED wird am Pin5 angesteuert #define LED_RED 6 //Die rote LED wird am Pin6 angesteuert ///////////////////////////////////*SETUP*/////////////////////////////////// void setup() { Serial.begin(9600); //Startet die serielle Kommunikation /*SERVO*/ servo1.attach(SERVOPIN1); //Definition, welcher Pin (SERRVOPIN1) den Servo1 steuert servo1.write(0); //Startposition des Servo1 wird eingestellt (0°) /*TASTER*/ pinMode(TASTER_AUF, INPUT); //Definiert den TASTER_AUF als Input, wo Daten gelesen werden pinMode(TASTER_ZU, INPUT); //Definiert den TASTER_ZU als Input, wo Daten gelesen werden /*Zustandsanzeige*/ pinMode(LED_GREEN, OUTPUT); //Definerte den PIN der grünen LED als Ausgang pinMode(LED_RED, OUTPUT); //Definiert den PIN der roten LED als Ausgang Schliessen(); //Der Tresor soll bei einem Neustart immer zuerst geschlossen werden } ///////////////////////////////////*LOOP*/////////////////////////////////// void loop() { /*TASTER*/ Taster_auf(); //Führt ein Programm aus, welches prüft, ob der Taster1 gedückt wurde Taster_zu(); //Führt ein Programm aus, welches prüft, ob der Taster2 gedückt wurde } ///////////////////////////////////*WEITERE FUNKTIONEN*/////////////////////////////////// /*TASTER*/ void Taster_auf(){ if (digitalRead(TASTER_AUF) == HIGH){ Oeffnen(); //Wenn der Auf-Taster gedrück wird, soll der Tresor oeffnen } } void Taster_zu(){ if (digitalRead(TASTER_ZU) == HIGH){ Schliessen (); //Wenn der Zu-Taster gedürckt wird, soll der Tresor schliessen } } void Oeffnen(){ servo1.write(90); //Servo1 wird auf 90° gedreht /*Dieser Abschnitt lässt die grüne LED leuchten und löscht die rote LED*/ digitalWrite(LED_GREEN, HIGH); digitalWrite(LED_RED, LOW); Serial.println("Taster zum Oeffnen wurde Gedrückt"); delay(2000); //2 Sekunden Pause, damit der Servo genügend Zeit zum Drehen hat } void Schliessen (){ servo1.write(0); //Servo1 wird auf Startposition (0°) gedreht /*Dieser Abschnitt lässt die rote LED leuchten und löscht die grüne LED*/ digitalWrite(LED_GREEN, LOW); digitalWrite(LED_RED, HIGH); Serial.println("Taster zum Schliessen wurde Gedrückt"); delay(2000); //2 Sekunden Pause, damit der Servo genügend Zeit zum Drehen hat }