Morjen, habe mit der Hilfe von BBM und mit "Picaxe Befehle (deutsch)" noch mal das Programm verbessert (hoffe ich wenigstens), auf jeden Fall ist es kürzer und kompakter geworden. Da nur die LOK einen Magnet hat können keine außergewöhnlichen Situationen berücksichtigt werden!
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 Bahnübergang.axe
; Funktion: Signalanlage bei einfahrendem Zug einschalten und bei ausfahrendem Zug ausschalten
; Datum: Start 19.01.2020, Stand 20.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 ; Signalanlage, LED oben
symbol LED_2 = B.2 ; Signalanlage, LED unten
symbol Signal = pin3 ; Eingang pin3 für den Zug
symbol an = b0 ; Signalanlage an/aus, 0 = aus und 1 = an
symbol sv = b1 ; eine Variable für swap
switch off LED_1 ; LED oben aus
switch off LED_2 ; LED unten aus
an = 0 ; die Signalanlage ist aus
sv = 1 ; damit swap was zum wechseln hat für die Variable an ;-)
Signalanlage: ; Hauptschleife für die Signalanlage
if Signal = 1 then ; ein Signal liegt an, der Zug fährt rein oder der Zug fährt raus
pause 50 ; 50ms Entprellzeit für den Kontakt
do : loop until Signal = 0 ; wenn das Signal 0 ist die Warteschleife verlassen
swap an , sv ; den Zustand der Signalanlage an/aus für das nächste Signal wechseln
endif
goto Signalanlage
end
start1:
if an = 1 then ; die Signalanlage ist an
switch on LED_1
switch off LED_2
Pause 600
switch on LED_2
switch off LED_1
Pause 600
else ; die Signalanlage ist aus
switch off LED_1
switch off LED_2
endif
goto start1
Grüßle, Naubaddi