Moin zusammen o/
Nachdem ich ja nun schon ein paar mal nach gewissen Sachen gefragt habe, hier nun ein konkretes Statusupdate zu dem Projekt "Gartentor mittels RFID öffnen".
Grundsätzlich habe ich mich erstmal an die Arbeit eines tollen Menschen gehalten da ich es selber so sicher nie hinbekommen hätte Door Lock RFID . Dafür sind die 6 Wochen die ich bisher mit dem Arduino verbracht habe wohl auch etwas wenig ![]()
In meinem Fall sieht die Situation wie folgt aus: Ich habe vor zwei Jahren aus alten Bahnschwellen und Stabmatten meinen Gartenzaun gebaut. Alles schön aufgearbeitet, Fundament gegossen, Bahnschwellen halbiert und als Pfosten eingesetzt, Stabmatten dazwischen, fertig. Sieht hübsch aus und bietet in den Schwellen reichlich Platz für etwaige Installationen. Die erste ist nun besagte Schließanlage. Nachdem ich den Code etwas modifiziert habe um ihn für meine Zwecke anzupassen und die ganze Technik voll verkabelt in Plastikzigarettenschachtel gepackt habe, ging es daran den Raum in der Bahnschwelle zu schaffen. Also mit Fuchsschwanz und einem Sägedraht eine Scholle herrausgesägt, diese fungiert jetzt als Deckel um eine möglichst geschlossene Optik zu erhalten, mit derr Oberfräse, Forstnerbohrern und Stechbeitel ein ausreichend großes Loch ausgearbeitet, mit sehr langen Bohrern (glaubt mir: 50cm reicht dafür noch lange nicht ^^) einen Kanal zur Sohle geschaffen und Strom hineingelegt und letztlich die ganze Installation verbaut. Und welch Überraschung: meine Laienarbeit ist funktionabel \o/
Nun dachte ich mir "der kleine Nano hat doch noch genügend Speicher und das Netzteil auch noch ausreichend Leistung. Was machen wir daraus jetzt noch?"
Zur Erklärung: Ich habe auf der Suche nach einem passenden Netzteil letztlich in den Untiefen meiner Bastelschränke ein altes PlayStation 2 Netzteil mit 8,5V und 5,56A gefunden. Bietet sich an da der verbaute E-Schließer zw. 6 und 12V zu betreiben ist, ähnlich wie der verbaute Nano, aber 1,6A benötigt. Das ist so viel das die Standard Bastelnetzteile die man normal so in die Hände bekommt leider nicht im Ansatz soviel Leistung haben. In meinem Fall habe ich die ganzen Testinstallationen mit alten Handynetzteilen geprüft... da hört es irgendwo zw 0,8 und 1,2A auf.
Ich entschloss mich nun also die restliche Leistung zu nutzen und habe mich auf eine kleine Wegbeleuchtung festgelegt. Nicht so eine riesige mit der man das halbe Grundstück beleuchtet sondern so ca 40 LEDs die einfach dafür sorgen sollen das ich Nachts nach der Spätschicht überhaupt etwas sehe. Diese steuere ich nun, in Kombination mit einem Fotowiderstand über ein Zweites Relais an. Funktioniert auch grundsätzlich nur bringt es ein kleines Problem mit sich: der Arduino kann kein Multithreading. Heißt: Wenn die Tür aufgeht sollen, bei entsprechenden Lichtverhältnissen, die LEDs mit angehen. Tun sie auch nur muss ich dann warten bis sie wieder aus sind, der Teil des Programms also durchlaufen ist, ehe ich die Tür erneut öffnen kann. Etwas ungünstig wenn man mal nicht schnell genug ist.
Und das ist jetzt der Punkt wo ich euch bitten möchte mir mit einer zündenden Idee unter die Arme zu greifen. Wie bekomme ich es gelöst das beides "zeitgleich" funktioniert? Delay entfällt ja logischerweise, also bin ich jetzt bei millis().
void granted (int setDelay) {
digitalWrite(blueLed, LED_OFF); // Turn off blue LED
digitalWrite(redLed, LED_OFF); // Turn off red LED
digitalWrite(greenLed, LED_ON); // Turn on green LED
digitalWrite(relay, LOW); // Unlock door! //////////////////////////////////////////////////////////
delay(3000); // Hold door lock open for given seconds
digitalWrite(relay, HIGH); // Relock door
delay(1000); // Hold green LED on for a second
int sensorVal = analogRead(7)/4;
if (sensorVal < 220) {
while ( milli2-milli1 >5) {
milli1 = millis();
milli2 = milli1;
digitalWrite(relayLED, LOW);
}
digitalWrite(relayLED, HIGH);
}
}
Das scheint aber irgendwie auch nicht die Lösung zu sein. Wo liegt hier mein Denkfehler?
Liebe Grüße,
-mahlwerkende-





