O.K. ohne Garantie das alles richtig ist (habe gerade nix zum Testen) würde es bei mir so aussehen:
Signalanlage:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
; picaxe08m2 ; automatische Compilerauswahl für meine Skripte "1 kontrollieren" und "2 speichern"
; Dateiname: Signalanlage uB.axe
; Funktion: Signalanlage bei einfahrendem Zug einschalten und bei ausfahrendem Zug ausschalten
; Datum: Start 19.01.2020, Stand 19.01.2020
; Von: Naubaddi foto-schubser@arcor.de
;
; PICAXE 08M2 (B.0 nur Ausgang, C.3 nur Eingang)
;
; +---v---+
; +V |1 8| 0V
; RxD/ I C.5 |2 7| B.0 O /TxD/hserout/DAC
; Touch/ADC/ I/O C.4 |3 6| B.1 I/O /ADC/Touch/hserin/SRI/hi2c/scl
; I C.3 |4 5| B.2 I/O /ADC/Touch/pwm/tune/SRQ/hi2c sda
; +-------+
;
output B.1, B.2 ; Pin 1 und 2 als Ausgang setzen
input C.3 ; Pin 3 als Eingang setzen
symbol LED_1 = B.1 ; Signalampel, LED oben
symbol LED_2 = B.2 ; Signalampel, LED unten
symbol Signal = pin3 ; Eingang pin3 für den Zug
suspend 1 ; Multitask start1 stoppen, Signalanlage ausschalten
switch off LED_1 ; LED oben aus
switch off LED_2 ; LED unten aus
Signalanlage: ; Hauptschleife für die Signalanlage
if Signal = 1 then ; der Zug kommt :-)
restart 1 ; Multitask start1 starten, Signalanlage einschalten
pause 500 ; eine kleine Pause (Entprellzeit)
warten: ; warten bis der Zug über den zweiten read-Kontakt gefahren ist
if Signal = 1 then ; der Zug ist über den zweiten read-Kontakt gefahren
goto weiter ; dann kann es weitergehen
endif
goto warten ; weiter warten bis der Zug über den zweiten read-Kontakt gefahren
weiter: ; der Zug hat den zweiten read-Kontakt überfahren
pause 6000 ; 5 Sekunden als Sicherheit
suspend 1 ; Multitask start1 stoppen, Signalanlage ausschalten
switch off LED_1 ; LED oben aus
switch off LED_2 ; LED unten aus
endif
goto Signalanlage
end
start1: ' Signalanlage einschalten/ausschalten
switch on LED_1 ; LED oben ein
Pause 600
switch off LED_1 ; LED oben aus
switch on LED_2 ; LED unten ein
Pause 600
switch off LED_2 ; LED unten aus
goto start1
Grüßle, Naubaddi