
Zitat von
funky34
Da der Dämmerungsschalter Hochspannung liefert, muss da erst noch ein Relais her.
Das ist keine Hochspannung, Hochspannung ist über 1000V. Nennen wir diese Spannung einfach Netzspannung. Gefährlich ist diese Spannung aber trotzdem.
Wenn du es mit einem Relais machen willst (am Einfachsten), achte darauf das du ein Signalrelais verwendest und kein Leistungsrelais, sonst kann es zu Problemen kommen.
Ich würde eine Flankenerkennung einbauen und auf diese Flanke reagieren. Hier als Pseudocode (mit teilweise C-Code weil ich in C programmiere):
Bewegungsmelder = BM
"Sollwert" ist die Pause zwischen den beiden Impulsen
!= bedeutet "ist nicht"
== bedeutet "ist gleich"
++ bedeutet "erhöhen um 1"
Code:
Dauerschleife
{
BM einlesen
Flankenerkennung: (BM != BM_alt) & (BM == geschalten) => dadurch hast du eine Flankenerkennung auf eine positive Flanke
{
Status = 1
}
switch (Status)
{
case 1:
Ausgang setzen
Status = 2
"switch" Abbruch
case 2:
Ausgang löschen
Status = 3
"switch" Abbruch
case 3:
Zähler ++
Wenn Zähler >= Sollwert: Status = 4, Zähler = 0
"switch" Abbruch
case 4:
Ausgang setzen
Status = 5
"switch" Abbruch
case 5:
Ausgang löschen
Status = 0
"switch" Abbruch
}
BM_alt = BM
Pause (1s)
}
Zuerst wird erkannt ob der BM geschalten hat (Flankenerkennung), wenn ja wird in "case 1" der Ausgang gesetzt, durch die Pause am Ende der Dauerschleife wird der Ausgang 1s später wieder gelöscht (case 2). Die eigentliche Zeit zwischen den beiden Impulsen wird mit "case 3" gemacht, der Zähler wird bei jedem Schleifendurchlauf um 1 erhöht (dadurch hast du ein vielfaches des Schleifendurchlaufes). Wenn der Zähler den Sollwert erreicht wird in case 4 und case 5 der Impuls erzeugt.
Beim switch kannst du noch nach "case 5" ein "default" einfügen, das wird immer ausgeführt wenn bei Status keine der cases zutrifft (z.B. nach "case 5" da dort Status auf 0 gesetzt wird).
Du kannst auch die Pausenzeit ändern (z.b. 100ms), dann musst du aber eventuell noch zwischen den beiden Cases für Ausgang setzen bzw löschen ein weiteres Case einsetzen und mit einem Zähler versehen (wie bei case 3). Dann hast du:
Case 1 Ausgang setzen
Case 2 Zähler (Impulslänge)
Case 3 Ausgang löschen
Case 4 Zähler (Pause zwischen Impulsen)
Case 5 Ausgang setzen
Case 6 Zähler (Impulslänge)
Case 7 Ausgang löschen
MfG Hannes
Lesezeichen