Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück


So ein PICAXE kann schon was ;-)

#1 von Naubaddi , 09.02.2020 22:20

Nabend, um mal die Lanze für einen 14M2 zu brechen, so langsam ist der nicht.
Da ist z.B. der Kettenkessel von Werner der nur einen Empfänger hat, alles was der Kettenkessel kann macht ein 14M2:

* 2 Kettenantriebe unabhängig voneinander steuern: vorwärts/stopp/rückwärts
* eine Motorattrappe ein/aus schalten
* einen Lüfter für den Kühler gezielt nach der Belastung der Motoren ein/aus schalten
* Licht ein/aus schalten
* Blinklicht bei Rückwärtsfahrt
* einen mp3 Player ein/aus schalten

und das mit nur 3 Kanälen, was nicht über die Fernbedienung zu erledigen war berechnet der 14M2 im Hintergrund .

Es gibt keine Verzögerungen oder verschluckte Signale, egal wie schnell man an den Steuerhebeln rührt .

Ein Video aus den ersten Tagen des Kettenkessels:



und das Programm mit vielen unnützen Zeilen (meine Eselsbrücken halt).

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
 
; picaxe14m2 ;	automatische Compilerauswahl für gedit
; Dateiname: Werners Kettenkessel.axe
; Funktion: Werners Kettenkessel steuern, V8 Motor, Ventilator, Ketten, Licht, Blinklicht und Kassettendeck
; Datum: Start 14.04.2017, Stand 29.05.2017
; Von: Naubaddi foto-schubser@arcor.de
;
; PICAXE 14M Alle Pin Funktionen (w0=b0+b1, w1=b2+b3, w2=b4+b5, w3=b6+b7, w4=b8+b9...)
;
; +---v---+
; +V |1 14| 0V
; Serial In C.5 |2 13| B.0 OUT/Serial Out let pins = %00000001
; In/Out C.4 |3 12| B.1 IN/Out let pins = %00000010
; In C.3 |4 11| B.2 IN/Out let pins = %00000100
; In/Out C.2 |5 10| B.3 IN/Out let pins = %00001000
; In/Out C.1 |6 9| B.4 IN/Out let pins = %00010000
; In/Out C.0 |7 8| B.5 IN/Out let pins = %00100000
; +-------+
;
; die ca. Werte vom Empfänger-Signal sind: 75, Mitte = 150, 225
;
input C.1, C.2, C.3 ; Eingänge setzen
output B.0, B.1, B.2, B.3, B.4, B.5, C.0, C.4 ; Ausgänge setzen
;
symbol Licht = B.0 ; Ausgang für das Licht bzw. Blinklicht beim rückwärts Fahren
symbol Kette_rechts_r = B.1 ; Ausgang für die Kette rechts rückwärts
symbol Kette_rechts_v = B.2 ; Ausgang für die Kette rechts vorwärts
symbol Kette_links_r = B.3 ; Ausgang für die Kette links rückwärts
symbol Kette_links_v = B.4 ; Ausgang für die Kette links vorwärts
symbol Kassettendeck = B.5 ; Ausgang für das Kassettendeck
symbol V8_Motor = C.0 ; Ausgang für den V8 Motor
symbol RC_rechts = C.1 ; Eingang RC-Signal Steuerhebel rechts rauf/runter
symbol RC_links = C.2 ; Eingang RC-Signal Steuerhebel links rauf/runter
symbol RC_Licht_Musik = C.3 ; Eingang RC-Signal Steuerhebel rechts rechts/links
symbol Ventilator = C.4 ; Ausgang für den Ventilator
;
symbol Laufzeit = w0 ; die Laufzeit der Motoren 0 - 65535 (Variable b0 und b1)
symbol Standzeit = w1 ; Kettenkessel Standzeit 0 - 65535 (Variable b2 und b3)
;
symbol Toleranz = b4 ; eine kleine Toleranz für die Mittelstellung rauf/runter (Leerlauf)
symbol rechts_0 = b5 ; RC-Signal Steuerhebel rechts Mittelstellung für rauf/runter
symbol links_0 = b6 ; RC-Signal Steuerhebel links Mittelstellung für rauf/runter
symbol Toleranz_r = b7 ; rückwärts mit Toleranz
symbol Toleranz_v = b8 ; vorwärts mit Toleranz
symbol r_fahren_r = b9 ; rückwärts fahren rechts, 0 = nein, 1 = ja
symbol r_fahren_l = b10 ; rückwärts fahren links, 0 = nein, 1 = ja
symbol Licht_an = b11 ; Licht an, 0 = nein, 1 = ja
symbol Licht_b = b12 ; Licht blinken, 0 = aus, 1 = an
symbol Kassettendeck_an = b13 ; Kassettendeck, 0 = aus, 1 = an
symbol V8_Motor_an = b14 ; V8 Motor, 0 = aus, 1 = an
;
symbol dumm_r = b25 ; eine Variable für alles Mögliche
symbol dumm_l = b26 ; eine Variable für alles Mögliche
symbol dumm = b27 ; eine Variable für alles Mögliche, und auch die letzte Variable :-(
;
Laufzeit = 0 ; die Laufzeit der Motoren auf 0 setzen
Standzeit = 0 ; Kettenkessel Standzeit auf 0 setzen
Toleranz = 10 ; die Toleranz für die Mittelstellung rauf/runter (Leerlauf)
pulsin RC_rechts, 1, rechts_0 ; die Mittelstellung vom rechten Steuerhebel für rauf/runter übernehmen
pulsin RC_links, 1, links_0 ; die Mittelstellung vom linken Steuerhebel für rauf/runter übernehmen
r_fahren_r = 0 ; Rückwärts fahren rechts auf 0 setzen
r_fahren_l = 0 ; Rückwärts fahren links auf 0 setzen
Licht_an = 0 ; Licht an auf 0 setzen
Licht_b = 0 ; Licht blinken auf 0 setzen
Kassettendeck_an = 0 ; Kassettendeck auf 0 setzen
V8_Motor_an = 0 ; V8 Motor auf 0 setzen
;
Kettenkessel_steuern: ; Hauptschleife Kettenkessel steuern
;
pulsin RC_Licht_Musik, 1, dumm ; --> Licht <-- RC-Signal vom Steuerhebel rechts rechts/links abfragen
If dumm > 175 then ; wenn der Steuerhebel rechts nach rechts bewegt wurde
if Licht_an = 0 then ; wenn das Licht aus ist
high Licht ; Licht einschalten
Licht_an = 1 ; Licht an hinterlegen
else ; sonst
low Licht ; Licht ausschalten
Licht_an = 0 ; Licht aus hinterlegen
endif
pause 200 ; eine kleine Pause als Schaltzeit
endif
;
pulsin RC_Licht_Musik, 1, dumm ; --> Kassettendeck <-- RC-Signal vom Steuerhebel rechts rechts/links abfragen
If dumm < 125 then ; wenn der Steuerhebel rechts nach links bewegt wurde
if Kassettendeck_an = 0 then ; wenn das Kassettendeck aus ist
high Kassettendeck ; Kassettendeck einschalten
Kassettendeck_an = 1 ; Kassettendeck an hinterlegen
else ; sonst
low Kassettendeck ; Kassettendeck ausschalten
Kassettendeck_an = 0 ; Kassettendeck aus hinterlegen
endif
pause 200 ; eine kleine Pause als Schaltzeit
endif
;
pulsin RC_rechts, 1, dumm_r : pulsin RC_links, 1, dumm_l ; --> V8 Motor <-- RC-Signal vom Steuerhebel rechts/links rauf/runter abfragen
if V8_Motor_an = 0 then ; wenn der V8 Motor aus ist
if dumm_r > 175 or dumm_l > 175 then ; wenn der Leerlaufbereich nach oben verlassen wurde den V8 Motor einschalten
high V8_Motor ; V8 Motor starten
V8_Motor_an = 1 ; V8 Motor an hinterlegen
pause 1000 ; eine Pause damit der Kettenkessel nicht sofort losfährt
Standzeit = 0 ; Standzeit auf 0 setzen
endif
;
else ; wenn der V8 Motor läuft kann man auch fahren ;-)
;
pulsin RC_rechts, 1, dumm ; --> Kette rechts <-- RC-Signal vom Steuerhebel rechts rauf/runter abfragen
Toleranz_v = dumm + Toleranz ; Leerlaufbereich für vorwärts
Toleranz_r = dumm - Toleranz ; Leerlaufbereich für rückwärts
if Toleranz_r > rechts_0 then ; wenn der Leerlaufbereich nach oben verlassen wurde vorwärts
high Kette_rechts_v ; Kette rechts, vorwärts ein
low Kette_rechts_r ; Kette rechts, rückwärts aus
r_fahren_r = 0 ; rückwärts fahren auf 0 setzen
Standzeit = 0 ; Standzeit auf 0 setzen
if Laufzeit < 222 then ; wenn die Laufzeit < ist
Laufzeit = Laufzeit + 2 ; die Laufzeit anheben
endif
endif
if Toleranz_v > rechts_0 and Toleranz_r < rechts_0 then ; wenn der Leerlaufbereich nicht verlassen wurde stoppen
low Kette_rechts_v ; Kette rechts, vorwärts aus
low Kette_rechts_r ; Kette rechts, rückwärts aus
r_fahren_r = 0 ; rückwärts fahren auf 0 setzen
if Laufzeit > 0 then : dec Laufzeit : endif ; wenn die Laufzeit > ist absenken
if Standzeit < 333 then : inc Standzeit : endif ; wenn die Standzeit < ist anheben
endif
if Toleranz_v < rechts_0 then ; wenn der Leerlaufbereich nach unten verlassen wurde rückwärts
high Kette_rechts_r ; Kette rechts, rückwärts ein
low Kette_rechts_v ; Kette rechts, vorwärts aus
r_fahren_r = 1 ; es wird rückwärts gefahren
Standzeit = 0 ; Standzeit auf 0 setzen
if Laufzeit < 222 then ; wenn die Laufzeit < ist
Laufzeit = Laufzeit + 2 ; die Laufzeit anheben
endif
endif
;
pulsin RC_links, 1, dumm ; --> Kette links <-- RC-Signal vom Steuerhebel links rauf/runter abfragen
Toleranz_v = dumm + Toleranz ; Leerlaufbereich für vorwärts
Toleranz_r = dumm - Toleranz ; Leerlaufbereich für rückwärts
if Toleranz_r > links_0 then ; wenn der Leerlaufbereich nach oben verlassen wurde vorwärts
high Kette_links_v ; Kette links, vorwärts ein
low Kette_links_r ; Kette links, rückwärts aus
r_fahren_l = 0 ; rückwärts fahren auf 0 setzen
Standzeit = 0 ; Standzeit auf 0 setzen
if Laufzeit < 222 then ; wenn die Laufzeit < ist
Laufzeit = Laufzeit + 2 ; die Laufzeit anheben
endif
endif
if Toleranz_v > links_0 and Toleranz_r < links_0 then ; wenn der Leerlaufbereich nicht verlassen wurde stoppen
low Kette_links_v ; Kette links, vorwärts aus
low Kette_links_r ; Kette links, rückwärts aus
r_fahren_l = 0 ; rückwärts fahren auf 0 setzen
if Laufzeit > 0 then : dec Laufzeit : endif ; wenn die Laufzeit > ist absenken
if Standzeit < 333 then : inc Standzeit : endif ; wenn die Standzeit < ist anheben
endif
if Toleranz_v < links_0 then ; wenn der Leerlaufbereich nach unten verlassen wurde rückwärts
high Kette_links_r ; Kette links, rückwärts ein
low Kette_links_v ; Kette links, vorwärts aus
r_fahren_l = 1 ; es wird rückwärts gefahren
Standzeit = 0 ; Standzeit auf 0 setzen
if Laufzeit < 222 then ; wenn die Laufzeit < ist
Laufzeit = Laufzeit + 2 ; die Laufzeit anheben
endif
endif
;
endif
;
if Laufzeit > 111 then ; --> Ventilator <-- einschalten wenn die max Laufzeit der Motoren überschritten wurde
high Ventilator ; Ventilator ein
else ; ausschalten wenn die max Laufzeit der Motoren unterschritten wurde
low Ventilator ; Ventilator aus
endif
;
if Standzeit >= 333 then ; --> V8 Motor <-- ausschalten wenn die max Standzeit der Motoren überschritten wurde
low V8_Motor ; V8 Motor ausschalten
V8_Motor_an = 0 ; V8 Motor auf 0 setzen
endif
;
if r_fahren_r = 1 or r_fahren_l = 1 then ; --> blinken <-- wenn rückwärts gefahren wird
pause 100 ; eine kleine Pause damit das Licht blinkt
if Licht_b = 0 then ; wenn das Blinklicht aus ist
high Licht ; Licht einschalten
Licht_b = 1 ; das Licht ist an
else ; wenn das Licht an ist
low Licht ; Licht ausschalten
Licht_b = 0 ; das Blinklicht ist aus
endif
else ; wenn nicht rückwärts gefahren wird nicht blinken
Licht_b = 0 ; das Blinklicht auf 0 setzen
if Licht_an = 1 then ; wenn das Licht an war
high Licht ; das Licht einschalten
else ; wenn das Licht aus war
low Licht ; das Licht ausschalten
endif
endif
;
goto Kettenkessel_steuern ; Ende von: Kettenkessel_steuern
;
 



Grüßle, Naubaddi

Naubaddi  
Naubaddi
Beiträge: 288
Registriert am: 29.01.2019


RE: So ein PICAXE kann schon was ;-)

#2 von BoomBoomMagic , 10.02.2020 00:05

### das ist mir ehrlich gesagt zu viel Text :-( , gibts da auch ne komprimierte Version von :-) ####


Die Picaxe kann sicherlich schon was , 10 Schalter gleichzeitig an und aus ...
aber :

pulsin
pulsout
ADC
Servo
Timer1
Timer2
Display
InfraRot

alles zusammen ist da dann schon Science Fiction ,
während der Atmega noch am überlegen is dafür wach zu werden oder das eher im Tiefschlaf zu erledigt ;-)
Welchen "Hund" willste auch schon mit 250Khz Taktfrequenz "von der Roste" holen ;-)
Dennoch kann er ein paar langsame Routinen schon hinbekommen .


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019

zuletzt bearbeitet 10.02.2020 | Top

RE: So ein PICAXE kann schon was ;-)

#3 von Naubaddi , 10.02.2020 11:06

Hi und Hallo, ich schau mal ob das Programm sich entschlacken lässt ;-).


Habe doch glatt das Bild vergessen von der Elektrik:


Grüßle, Naubaddi

Naubaddi  
Naubaddi
Beiträge: 288
Registriert am: 29.01.2019


RE: So ein PICAXE kann schon was ;-)

#4 von Naubaddi , 10.02.2020 12:12

Die vielen merkwürdigen Variablen sind für die Berechnungen wie lange läuft welche Kette in welche Richtung um den Ventilator ein/aus zu schalten oder wann geht die Motorattrappe an oder aus...

Das Programm entschlackt:

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
 
; picaxe14m2 ;	automatische Compilerauswahl für gedit
;
symbol Licht = B.0 ; Ausgang für das Licht bzw. Blinklicht beim rückwärts Fahren
symbol Kette_rechts_r = B.1 ; Ausgang für die Kette rechts rückwärts
symbol Kette_rechts_v = B.2 ; Ausgang für die Kette rechts vorwärts
symbol Kette_links_r = B.3 ; Ausgang für die Kette links rückwärts
symbol Kette_links_v = B.4 ; Ausgang für die Kette links vorwärts
symbol Kassettendeck = B.5 ; Ausgang für das Kassettendeck
symbol V8_Motor = C.0 ; Ausgang für den V8 Motor
symbol RC_rechts = C.1 ; Eingang RC-Signal Steuerhebel rechts rauf/runter
symbol RC_links = C.2 ; Eingang RC-Signal Steuerhebel links rauf/runter
symbol RC_Licht_Musik = C.3 ; Eingang RC-Signal Steuerhebel rechts rechts/links
symbol Ventilator = C.4 ; Ausgang für den Ventilator
symbol Laufzeit = w0 ; die Laufzeit der Motoren 0 - 65535 (Variable b0 und b1)
symbol Standzeit = w1 ; Kettenkessel Standzeit 0 - 65535 (Variable b2 und b3)
symbol Toleranz = b4 ; eine kleine Toleranz für die Mittelstellung rauf/runter (Leerlauf)
symbol rechts_0 = b5 ; RC-Signal Steuerhebel rechts Mittelstellung für rauf/runter
symbol links_0 = b6 ; RC-Signal Steuerhebel links Mittelstellung für rauf/runter
symbol Toleranz_r = b7 ; rückwärts mit Toleranz
symbol Toleranz_v = b8 ; vorwärts mit Toleranz
symbol r_fahren_r = b9 ; rückwärts fahren rechts, 0 = nein, 1 = ja
symbol r_fahren_l = b10 ; rückwärts fahren links, 0 = nein, 1 = ja
symbol Licht_an = b11 ; Licht an, 0 = nein, 1 = ja
symbol Licht_b = b12 ; Licht blinken, 0 = aus, 1 = an
symbol Kassettendeck_an = b13 ; Kassettendeck, 0 = aus, 1 = an
symbol V8_Motor_an = b14 ; V8 Motor, 0 = aus, 1 = an
symbol dumm_r = b25 ; eine Variable für alles Mögliche
symbol dumm_l = b26 ; eine Variable für alles Mögliche
symbol dumm = b27 ; eine Variable für alles Mögliche, und auch die letzte Variable :-(
;
pulsin RC_rechts, 1, rechts_0 ; die Mittelstellung vom rechten Steuerhebel für rauf/runter übernehmen
pulsin RC_links, 1, links_0 ; die Mittelstellung vom linken Steuerhebel für rauf/runter übernehmen
;
Kettenkessel_steuern:
;
pulsin RC_Licht_Musik, 1, dumm ; --> Licht ein/aus <--
If dumm > 175 then
if Licht_an = 0 then
high Licht
Licht_an = 1
else
low Licht
Licht_an = 0
endif
pause 200
endif
;
pulsin RC_Licht_Musik, 1, dumm ; --> Kassettendeck ein/aus <--
If dumm < 125 then
if Kassettendeck_an = 0 then
high Kassettendeck
Kassettendeck_an = 1
else
low Kassettendeck
Kassettendeck_an = 0
endif
pause 200
endif
;
pulsin RC_rechts, 1, dumm_r : pulsin RC_links, 1, dumm_l ; --> V8 Motor einschalten <--
if V8_Motor_an = 0 then
if dumm_r > 175 or dumm_l > 175 then
high V8_Motor
V8_Motor_an = 1
Standzeit = 0
pause 1000 ; eine Pause damit der Kettenkessel nicht sofort losfährt
endif
;
else ; wenn der V8 Motor läuft kann man auch fahren ;-)
;
pulsin RC_rechts, 1, dumm
Toleranz_v = dumm + Toleranz
Toleranz_r = dumm - Toleranz
if Toleranz_r > rechts_0 then ; --> Kette rechts vorwärts <--
high Kette_rechts_v
low Kette_rechts_r
r_fahren_r = 0
Standzeit = 0
if Laufzeit < 222 then
Laufzeit = Laufzeit + 2
endif
endif
if Toleranz_v > rechts_0 and Toleranz_r < rechts_0 then ; --> Kette rechts aus <--
low Kette_rechts_v
low Kette_rechts_r
r_fahren_r = 0
if Laufzeit > 0 then : dec Laufzeit : endif
if Standzeit < 333 then : inc Standzeit : endif
endif
if Toleranz_v < rechts_0 then ; --> Kette rechts rückwärts <--
high Kette_rechts_r
low Kette_rechts_v
r_fahren_r = 1
Standzeit = 0
if Laufzeit < 222 then
Laufzeit = Laufzeit + 2
endif
endif
;
pulsin RC_links, 1, dumm
Toleranz_v = dumm + Toleranz
Toleranz_r = dumm - Toleranz
if Toleranz_r > links_0 then ; --> Kette links vorwärts <--
high Kette_links_v
low Kette_links_r
r_fahren_l = 0
Standzeit = 0
if Laufzeit < 222 then
Laufzeit = Laufzeit + 2
endif
endif
if Toleranz_v > links_0 and Toleranz_r < links_0 then ; --> Kette links aus <--
low Kette_links_v
low Kette_links_r
r_fahren_l = 0
if Laufzeit > 0 then : dec Laufzeit : endif
if Standzeit < 333 then : inc Standzeit : endif
endif
if Toleranz_v < links_0 then ; --> Kette links rückwärts <--
high Kette_links_r
low Kette_links_v
r_fahren_l = 1
Standzeit = 0
if Laufzeit < 222 then
Laufzeit = Laufzeit + 2
endif
endif
;
endif
;
if Laufzeit > 111 then ; --> Ventilator ein/aus <--
high Ventilator
else
low Ventilator
endif
;
if Standzeit >= 333 then ; --> V8 Motor <-- ausschalten wenn die max Standzeit der Motoren überschritten wurde
low V8_Motor
V8_Motor_an = 0
endif
;
if r_fahren_r = 1 or r_fahren_l = 1 then ; --> blinken <-- wenn rückwärts gefahren wird
pause 100
if Licht_b = 0 then
high Licht
Licht_b = 1
else
low Licht
Licht_b = 0
endif
else ; wenn nicht mehr rückwärts gefahren wird nicht mehr blinken
Licht_b = 0
if Licht_an = 1 then ; wenn das Licht an war
high Licht
else ; wenn das Licht aus war
low Licht
endif
endif
;
goto Kettenkessel_steuern
;
 



Grüßle, Naubaddi

Naubaddi  
Naubaddi
Beiträge: 288
Registriert am: 29.01.2019


RE: So ein PICAXE kann schon was ;-)

#5 von BoomBoomMagic , 10.02.2020 12:37

. . . .wenn da jetzt noch nen Schaltplan bei wäre ...


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


RE: So ein PICAXE kann schon was ;-)

#6 von Naubaddi , 10.02.2020 16:08

Hi BBM, da gibt es sogar 2 weil ich nicht wusste das es fertige Bausteine gibt , habe immer noch 2 von diesen L298N hier rumliegen für den Notfall .


die Anschlüsse A6, A7 und A8 sind für das Licht den V8 Motor und den Kühlerventilator.

Nr. 1:


Nr. 2:


Grüßle, Naubaddi

Naubaddi  
Naubaddi
Beiträge: 288
Registriert am: 29.01.2019


   

Ein Laie und defekte Bauteile...
Kleine Spielerei mit Servo ...

Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz