RE: Selbstbau Weichensteuerung mit Servo

#26 von garti62 , 08.02.2014 19:38

Hallo,

das mit den Dateianhängen hat nicht geklappt, die Dateiformate werden nicht akzeptiert, dann also als Bilder:





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
 
'schrankenantrieb mit schrittmotor
'attiny2313 Lieferzustand, keine fuse-bits verändert
$regfile = "attiny2313.dat"
$crystal = 1000000
$hwstack = 38
$swstack = 10
$framesize = 32
 
'taster runter an portb.0
'taster hoch an portb.1
'taster stellen auf an portb.2
'taster stellen ab an portb.3
'rote led mit vorwiderstand an portb.4
'grüne led mit vorwiderstand an portb.5
'schrittmotor an portd.2 bis portd.5
Config Portb = &B11000011
Portb.2 = 1
Portb.3 = 1
Portb.4 = 1
Portb.5 = 1
Config Portd = Output
 
'timer0 für blinklicht andreaskreuze
Config Timer0 = Timer , Prescale = 1024
Timer0 = 158
On Timer0 Blinklicht
'Blinklicht erstmal aus
Disable Timer0
Enable Interrupts
 
'variablen definieren
Dim A As Byte
Dim B As Word
Dim C As Byte
Dim Marke As Byte
Dim E_marke As Eram Byte
'zahl der schritte, die der motor zwischen oben und unten zurücklegen soll
Const Ziel = 10500
 

'letzten zustand aus eprom lesen, falls schranke noch zu dann schranke auf
A = 1
Marke = E_marke
If Marke = 1 Then
Portb.0 = 1
Portb.1 = 0
Else
Gosub Heben
End If
 

 
Do
 
'schranke senken
If Pinb.3 = 0 Then Gosub Runter
'schranke heben
If Pinb.2 = 0 Then Gosub Hoch
'schrankenposition manuell nach oben verstellen
If Pinb.4 = 0 Then Gosub Aufstellen
'schrankenposition manuell nach unten verstellen
If Pinb.5 = 0 Then Gosub Abstellen
 
Loop
 
End
 

Drehen:
'Tabelle Halbschrittsteuerung
Select Case A
Case 1 : Portd = &B00000100
Case 2 : Portd = &B00001100
Case 3 : Portd = &B00001000
Case 4 : Portd = &B00011000
Case 5 : Portd = &B00010000
Case 6 : Portd = &B00110000
Case 7 : Portd = &B00100000
Case 8 : Portd = &B00100100
End Select
Return
 
Aufstellen:
'schranke um einen schritt nach oben
A = A + 1
If A = 9 Then A = 1
Gosub Drehen
Waitms 5
Portd = 0
Return
 
Abstellen:
'schranke um einen schritt nach unten
A = A - 1
If A = 0 Then A = 8
Gosub Drehen
Waitms 5
Portd = 0
Return
 
Runter:
'wenn schranke oben, dann senken, wenn schranke unten passiert nichts
If Marke = 1 Then
'blinklicht starten
Enable Timer0
'10sec warten
Wait 10
'schranke senken
Gosub Senken
End If
Return
 

 
Hoch:
'wenn schranke unten, dann heben, wenn schranke oben passiert nichts
If Marke = 0 Then
'schranke heben
Gosub Heben
'2sec warten
Wait 2
'blinklicht anhalten
Disable Timer0
'andreaskreuze aus
Portb.6 = 0
End If
Return
 

 

Heben:
'rote led im stellpult aus
Portb.1 = 0
'setzt portd.2 - portd.5 entsprechend der tabelle -> motor dreht
For B = 1 To Ziel Step 1
A = A - 1
If A = 0 Then A = 8
'hier wird die geschwindigkeit eingestellt, je höher der wert, desto
'kleiner die geschwindigkeit
Waitms 1
Gosub Drehen
'das ganze so oft, bis schranke oben ist
Next B
'grüne led im stellpult an
Portb.0 = 1
'aktuellen zustand in eprom schreiben
Marke = 1
E_marke = Marke
'schrittmotor aus
Portd = 0
Return
 

Senken:
'grüne led im stellpult aus
Portb.0 = 0
'wie beim heben, nur anders herum
For B = 1 To Ziel Step 1
A = A + 1
If A = 9 Then A = 1
Waitms 1
Gosub Drehen
Next B
'rote led im stellpult an
Portb.1 = 1
'aktuellen zustand in eprom schreiben
Marke = 0
E_marke = Marke
'schrittmotor aus
Portd = 0
Return
 

Blinklicht:
'timerinterruptroutine erzeugt blinken ca. 1Hz
Timer0 = 158
C = C + 1
If C = 5 Then
C = 1
Toggle Portb.6
End If
Return
 




Schönen Abend noch

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#27 von garti62 , 01.03.2014 18:12

Hallo alle zusammen,

heute melde ich mich noch mal zum Thema Weichensteuerung. Nachdem ich mir Michaels Variante mit den Porterweiterungen über I2C-Bus angeschaut habe, keimte in mir auch der Wunsch nach einem Bussystem.
Der Verdrahtungsaufwand wird minimiert und nicht zuletzt auch die Kosten. Bei meiner obigen Variante verursachen die Steckverbinder und Flachbandkabel einen nicht unerheblichen finanziellen Anteil an den Gesamtkosten.
Nachdem ich mich im Internet mal mit den gängigsten Bussystemen beschäftigt habe, kam ich zu dem Schluß, daß das alles mit Kanonen auf Spatzen geschossen wäre.
Für meine recht überschaubare Zahl an Weichen- und Signalantrieben und die wesentlichen Befehle "ein" und "aus" reicht die direkte Verbindung der Microkontroller über ihre UART-Schnittstelle völlig aus.
Herausgekommen ist dabei erstmal Folgendes:

Senderseitig (Stellpult) mehrere Mikrocontroller atmega8515 (Stückpreis2,35€ mit je 32 I/O ports für je 8 Weichen/Signale (2xTaster, 2xLED) mit Quarz.
Empfängerseitig eine abgespeckte Version des obigen Weichenantriebs mit attiny3212 (Stückpreis -,90€), nur noch einem Umschaltrelais, keine eigene Spannungserzeugung, dafür mit Quarz. Spannungsversorgung über das Flachbandkabel.

Softwaremäßig wird nach Betätigen einer Taste einfach eine 4stellige Dezimalzahl gesendet, die die Empfängeradresse und den Befehl enthält. Alle Empfänger empfangen diese Zahl, doch nur der, für den sie bestimmt ist, führt den Befehl aus und sendet dann eine Quittierung zurück, die im Stellpult die entsprechende LED aufleuchten läßt.
Senderseitig und Empfängerseitig werden die jeweiligen Microkontroller einfach "parallel" geschaltet. Die RXD-Eingänge werden einfach miteinander verbunden, die TXD-Ausgänge über Dioden entkoppelt.

Hier der Versuchsaufbau:


Aufgebaut mit erstmal 3 Weichenantrieben , rechts das Stellpult mit Taster und LED für 3 Weichen, rechts oben die 3 einzelnen Tasten sind für die Einstellung der Servo-Endlagen.

Einer der "Decoder":


Zwei der Flachbandkabel beim Versuchsaufbau haben eine Länge von 3m, das heißt, das der letzte Antrieb 6m vom Sender entfernt ist. Die Datenübermittlung über diese Entfernung funktioniert einwandfrei.
Die Kosten für einen Weichenantrieb incl. Servo und allem liegen jetzt bei ca. 8,-€.
Wenn ich das Ganze noch etwas kompletter aufgebaut habe, gibt's noch ein paar Bilder.
Soviel für heute,

Schönes Wochenende

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#28 von michl080 , 01.03.2014 20:22

hallo Ulli,

freut mich, dass meine Basteleien inspirierend waren.

Du hast Dir ja ein super Konzept ausgedacht.

ein paar Kommentare:

Du kannst die Kosten für die Verdrahtung noch etwas senken, wenn du die Stecker auf ein durchlaufendes Kabel aufcrimpst. Dann brauchst Du für jede Platine eine Buchse weniger und auch ein Stecker kann eingespart werden.

Denk daran, jede Platine SEHR GUT mit Elkos abzukoppeln. Servos reagieren sehr allergisch gegen Spannungsschwankungen und Flachbandkabel sind recht hochohmig. Ich musste bei mir nachträglich 1000µF einbauen.

Ich muss zugeben, UART mit Diodenentkupplung finde ich ein wenig skurril, aber wenn es funktionert, TOP!

schönen Aend noch,

Michael


meine Anlage findest Du unter viewtopic.php?f=64&t=65847


 
michl080
InterCity (IC)
Beiträge: 995
Registriert am: 21.11.2010


RE: Selbstbau Weichensteuerung mit Servo

#29 von garti62 , 01.03.2014 23:33

Hallo Michael,

Danke für die Tips, kann ich gleich mit einfließen lassen.
Warum skurril? Ist die serielle Schnittstelle, nur eben ohne zusätzliche Bausteine, die die Signale auf einen anderen Pegel anheben und evtl. jeweils eine spezielle Datenstruktur verlangen. Im Prinzip funktioniert Dein I2C-Bus genauso, nur das er eine kompliziertere Datenstruktur hat, um die Störanfälligkeit zu minimieren. Störanfälligkeit ist bei mir aber kein Problem, da ich nur einzelne Word-Variable versende. Wenn sich mal ein Störimpuls einschleichen sollte, passiert einfach nichts und man muß den Taster noch mal betätigen.
Hier noch mal das Prinzip:



Funktioniert bis zum jetzigen Zeitpunkt fehlerfrei. Und die Dioden entkoppeln nur die Ausgangspins, um einen Kurzschluß zu vermeiden.

Schönen Abend noch

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#30 von fantux , 02.03.2014 07:52

Hallo,

Zitat von michl080
Ich muss zugeben, UART mit Diodenentkupplung finde ich ein wenig skurril, aber wenn es funktionert, TOP!



LocoNet funktioniert bis auf die höhere Spannung auf dem Draht nach genau diesem Prinzip.

Gruß,
fantux


Märklin Keyboards, LocoNet und MobileStation2 vernetzten: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light - mit Code!

Das Aussteigen und Blumenpflücken während der Fahrt ist strengstens untersagt!


fantux  
fantux
InterCity (IC)
Beiträge: 665
Registriert am: 29.01.2012
Gleise Märklin C
Spurweite H0
Stromart Digital


RE: Selbstbau Weichensteuerung mit Servo

#31 von garti62 , 13.05.2014 23:44

Hallo liebe Stummis,

leider habe ich mich in letzter Zeit nur wenig mit der Modellbahn beschäftigen können. Deshalb ist der Gleisbau und damit der Einbau der Antriebe sowie der Bau des Stellpultes immer noch nicht abgeschlossen. Zu allem Übel bin ich auch noch etwas vom Wege abgekommen, darüber möchte ich heute kurz berichten. Wie weiter oben schon erwähnt, soll mein Endbahnhof eine kleine Drehscheibe zum Wenden der Loks erhalten. Ich habe lange über einen Selbstbau nachgedacht, doch das erscheint mir für den Anfang eine Nummer zu groß. Deshalb habe ich beschlossen, als Einstiegslösung eine der billigen Handdrehscheiben 6050 von Fleischmann, die es immer mal wieder bei ebay gibt, etwas umzurüsten.
Als erstes wurden die Originalschienen entfernt und durch Tillig Code 83 ersetzt. Die Schleifer auf der Unterseite wurden wieder angelötet, da dies eine fertige Lösung zur Umpolung der Fahrspannung liefert und man kein extra Kehrschleifenmodul braucht. Dann habe ich die Bühne auf beiden Seiten mit Resten aus der Bastelkiste etwas verbreitert und mit Geländern versehen. Das Ganze dann noch etwas mit Farbe versehen und es sieht so aus:













Für den Antrieb hab ich eine ähnliche Lösung wie weiter oben für die Schranken gefunden. Ausgangsmaterial waren diesmal ein Videokopf aus einem Videorecorder (ein perfektes Lager mit super Befestigungsmöglichkeiten), ein paar Zahnräder aus ebendiesem und ein Schrittmotor aus einem Scanner. Hier ein paar Bilder:

















Für die Steuerung habe ich einen Atmega8 genommen. Über einen Drehencoder und eine 7-Segmentanzeige wird die Zielposition vorgegeben und dann über den Schrittmotor angefahren. Für das Stellpult habe ich zwei Heki-Leerbausteine entsprechend umgerüstet.







Hier mal ein kleines Video des derzeitigen Standes:







Beim entgültigen Einbau muß ich noch die Gleisabgänge an ihrer Position richtig festkleben, da das derzeitige Stecksystem keine exakte Fixierung der Position gewährleistet. Da ich keine realisierbare Idee für eine automatische "Nullpunktkorrektur" (Lichtschranke o.ä.) hatte, habe ich auf der Steuerplatine einfach zwei Taster mit vorgesehen, die eine Lagekorrektur in Einzelschritten möglich machen, falls dies mal notwendig werden sollte.
Die Drehscheibe ist natürlich alles andere als vorbildgerecht, das ist mir schon klar, aber für den Anfang funktioniert es erstmal und vielleicht nehme ich später doch noch einen richtigen Selbstbau in Angriff

Das soll es für heute gewesen sein,

einen schönen Abend noch

wünscht

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#32 von garti62 , 17.06.2014 01:09

Hallo Stummis,


endlich habe ich mal wieder etwas Zeit zum Basteln gefunden und die Drehscheibe komplettiert. Da sich der doch recht dünne Kunststoff der Bühne in Querrichtung etwas durchbiegt, wenn eine etwas schwerere Lok draufsteht, habe ich die Bühne auf der Unterseite einfach mit ein paar Reststücken vom Platinenmaterial versteift.



Auf Schönheit kam es dabei nicht an, die Unterseite ist ja im eingebauten Zustand nicht zu sehen.
Dann wurden die Gleisabgänge mit Tillig-Code 83 und einem Stück Schwellenband komplettiert. Das Ganze sieht dann so aus:







Ich habe noch überlegt, ob ich die kleinen Kunststoffräder der Bühne duch kleine Kugellager ersetze (hab ich irgendwann mal hier im Forum gelesen ). Doch nachdem ich die "Radachsen" mit einem winzigen Klecks Roco-Getriebefett geschmiert habe, läuft die Bühne butterweich und fast geräuschlos. Man hört nur das leise Schnarren des Schrittmotors. Jetzt müssen noch die Gleisabgänge und die Riffelbleche außen herum bemalt und gealtert werden, aber nicht mehr heute.

Ich bin mit dem bisherigen Ergebnis eigentlich recht zufrieden, trotzdem habe ich mal eine Frage in die Runde.
Weiß jemand, ob es irgendwo einen bezahlbaren Messing-Bausatz für eine 16m-Drehscheibe gibt? Im Netz habe ich nur einen von ehemals B&K gefunden, einen Messing-Umbausatz für eine Spur N Drehscheibe von Arnold, der aber offensichtlich nicht mehr erhältlich ist. Da das Antriebskonzept mit Schrittmotor gut funktioniert, juckt es mich schon etwas in den Fingern, so etwas zu versuchen.
Danke schon mal im voraus

und einen schönen Abend noch

wünscht

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#33 von michl080 , 21.06.2014 17:52

Zitat von garti62
[...]Weiß jemand, ob es irgendwo einen bezahlbaren Messing-Bausatz für eine 16m-Drehscheibe gibt? Im Netz habe ich nur einen von ehemals B&K gefunden, einen Messing-Umbausatz für eine Spur N Drehscheibe von Arnold, der aber offensichtlich nicht mehr erhältlich ist. Da das Antriebskonzept mit Schrittmotor gut funktioniert, juckt es mich schon etwas in den Fingern, so etwas zu versuchen.



Hallo Ulli, kennst Du diesen Hersteller schon?

http://www.hapo-bahn.de/drehscheiben/off...iben/index.html

Michael


meine Anlage findest Du unter viewtopic.php?f=64&t=65847


 
michl080
InterCity (IC)
Beiträge: 995
Registriert am: 21.11.2010


RE: Selbstbau Weichensteuerung mit Servo

#34 von garti62 , 22.06.2014 22:18

Hallo Michael,

nein, kannte ich noch nicht. Ist ja eine hochinteressante Firma mit wirklich tollen Sachen im Angebot. Leider gibt es die wirklich interessanten Sachen nur als Fertigmodell (preislich allerdings für Messingmodelle gar nicht so übel). Ich würde aber gern selbst etwas aus entsprechenden Ätzblechen zusammenlöten, Du weißt ja: der Weg ist das Ziel! Jedenfalls ist das bei mir so. Trotzdem kommt der Link in meine Sammlung, werde ich bestimmt noch mal drauf zurückkommen.
Schönen Dank nochmal

und schönen Abend noch

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#35 von michl080 , 23.06.2014 20:07

Hallo Ulli,
einen habe ich noch. Diesen Link habe ich nicht gleich wiedergefunden.

http://www.krueger-modellbau.de/kmb/inde...details.ho99300

Michael


meine Anlage findest Du unter viewtopic.php?f=64&t=65847


 
michl080
InterCity (IC)
Beiträge: 995
Registriert am: 21.11.2010


RE: Selbstbau Weichensteuerung mit Servo

#36 von garti62 , 23.06.2014 20:57

Hallo Michael,

genau sowas habe ich gesucht! Super Link, dreimal Danke. Leider ist z.Zt. keine Preisliste online, aber das wird ja nicht für immer so sein. Ich glaube, mein Einstieg in die Welt der Messingbausätze wird sich im kommenden Winter nicht mehr verhindern lassen, und wenn es nur erstmal eine kleine Kastenbrücke o.ä. ist.
So, jetzt muß ich noch ein wenig bei Fa. Krüger lesen....

Schönen Abend noch

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#37 von garti62 , 23.06.2014 23:06

Hallo Stummis,

heute Abend melde ich mich noch mal abschließend zum Thema Drehscheibe. Ich habe alles bemalt und ordentlich "verdreckt" und "verrostet", so daß es jetzt so aussieht:





Ich hoffe, ich habe es nicht übertrieben.
Für alle, die es interessiert, hänge ich noch den Schaltplan für die Schrittmotorsteuerung und den Bascom-Quellcode für den Atmega8 an.



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
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
 
$regfile = "m8def.dat"
$crystal = 1000000 'Frequenz = 1MHz
$swstack = 64
$hwstack = 64
$framesize = 64
 
Config Portd = Output 'Ports
Config Portb = Input
Portb = &B11111111
Config Portc = Output
 
Dim A As Byte 'Variablen
Dim B As Word 'definieren
Dim C As Word
Dim D As Word
Dim E As Word
Dim Ziel As Word
Dim Startposition As Word
Dim Zielposition As Word
Dim E_startposition As Eram Word
Dim Marke As Byte
Dim E_marke As Eram Byte
Dim Ziffer As Byte
Dim Zustand As Byte
Dim Zustand_alt As Byte
Dim Zustandswechsel As Word At Zustand Overlay
Dim E_pos1 As Eram Word
Dim E_pos2 As Eram Word
Dim E_pos3 As Eram Word
Dim E_pos4 As Eram Word
Dim E_pos5 As Eram Word
Dim E_pos6 As Eram Word
Dim E_pos7 As Eram Word
Dim E_pos8 As Eram Word
Dim E_ziffer As Eram Byte
 
Config Timer0 = Timer , Prescale = 64 'Timer zur
On Timer0 Drehencoder 'Encoderabfrage
Const Startwert_0 = 240
Enable Timer0
Enable Interrupts
 

 
A = 1 'letzte Position
Marke = E_marke 'aus Eprom laden
If Marke = 1 Then
Startposition = E_startposition
Else
Startposition = 500
End If
Ziffer = E_ziffer
Gosub Anzeige
 

Do
 

If Pinb.4 = 0 Then Gosub Linksstellen 'Taster zur
If Pinb.5 = 0 Then Gosub Rechtsstellen 'Positionskorrekt.
 
If Ziffer = 1 Then Zielposition = E_pos1 'abfragen des
If Ziffer = 2 Then Zielposition = E_pos2 'Anzeigewertes
If Ziffer = 3 Then Zielposition = E_pos3
If Ziffer = 4 Then Zielposition = E_pos4
If Ziffer = 5 Then Zielposition = E_pos5
If Ziffer = 6 Then Zielposition = E_pos6
If Ziffer = 7 Then Zielposition = E_pos7
If Ziffer = 8 Then Zielposition = E_pos8
 
If Pinb.3 = 0 Then Gosub Anfahren 'Starttaster
 
Loop
 
End
 

 
Anfahren:
If Startposition < Zielposition Then 'Rechts herum
Ziel = Zielposition - Startposition
C = 60 'Geschwindigkeit
D = Ziel - 50
E = D + 1
For B = 1 To 50 Step 1 'langsam anfahren
A = A + 1
If A = 9 Then A = 1
Waitms C
C = C - 1
Gosub Drehen
Next B
For B = 51 To D Step 1 'konstante
A = A + 1 'Geschwindigkeit
If A = 9 Then A = 1
Waitms C
Gosub Drehen
Next B
For B = E To Ziel Step 1 'langsam anhalten
A = A + 1
If A = 9 Then A = 1
Waitms C
C = C + 1
Gosub Drehen
Next B
Startposition = Zielposition
E_startposition = Startposition 'aktuelle Pos.
Marke = 1 'speichern
E_marke = Marke
E_ziffer = Ziffer
End If
If Startposition > Zielposition Then 'Links herum
Ziel = Startposition - Zielposition 'drehen
C = 60
D = Ziel - 50
E = D + 1
For B = 1 To 50 Step 1
A = A - 1
If A = 0 Then A = 8
Waitms C
C = C - 1
Gosub Drehen
Next B
For B = 51 To D Step 1
A = A - 1
If A = 0 Then A = 8
Waitms C
Gosub Drehen
Next B
For B = E To Ziel Step 1
A = A - 1
If A = 0 Then A = 8
Waitms C
C = C + 1
Gosub Drehen
Next B
Startposition = Zielposition
E_startposition = Startposition
Marke = 1
E_marke = Marke
E_ziffer = Ziffer
End If
Portc = 0 'Schrittmotor
Return 'abschalten
 
Rechtsstellen: 'Positionskorrekt.
A = A + 1 'nach rechts
If A = 9 Then A = 1
Gosub Drehen
Startposition = Startposition + 1
If Ziffer = 1 Then E_pos1 = Startposition 'jeweilige
If Ziffer = 2 Then E_pos2 = Startposition 'Position in
If Ziffer = 3 Then E_pos3 = Startposition 'Eprom speichern
If Ziffer = 4 Then E_pos4 = Startposition
If Ziffer = 5 Then E_pos5 = Startposition
If Ziffer = 6 Then E_pos6 = Startposition
If Ziffer = 7 Then E_pos7 = Startposition
If Ziffer = 8 Then E_pos8 = Startposition
Waitms 10
Portc = 0
Return
 
Linksstellen:
A = A - 1 'nach links
If A = 0 Then A = 8
Gosub Drehen
Startposition = Startposition - 1
If Ziffer = 1 Then E_pos1 = Startposition
If Ziffer = 2 Then E_pos2 = Startposition
If Ziffer = 3 Then E_pos3 = Startposition
If Ziffer = 4 Then E_pos4 = Startposition
If Ziffer = 5 Then E_pos5 = Startposition
If Ziffer = 6 Then E_pos6 = Startposition
If Ziffer = 7 Then E_pos7 = Startposition
If Ziffer = 8 Then E_pos8 = Startposition
Waitms 10
Portc = 0
Return
 

 
Drehen:
Select Case A 'Ansteuerung
Case 1 : Portc = &B00000001 'Schrittmotor
Case 2 : Portc = &B00000011 'Halbschritt
Case 3 : Portc = &B00000010
Case 4 : Portc = &B00000110
Case 5 : Portc = &B00000100
Case 6 : Portc = &B00001100
Case 7 : Portc = &B00001000
Case 8 : Portc = &B00001001
End Select
Return
 

Anzeige:
Select Case Ziffer 'Ansteuerung
Case 0 : Portd = &B01111110 '7-Segmentanzeige
Case 1 : Portd = &B00001100
Case 2 : Portd = &B10110110
Case 3 : Portd = &B10011110
Case 4 : Portd = &B11001100
Case 5 : Portd = &B11011010
Case 6 : Portd = &B11111010
Case 7 : Portd = &B00001110
Case 8 : Portd = &B11111110
Case 9 : Portd = &B11011110
End Select
Return
 

Drehencoder:
Timer0 = Startwert_0 'Abfrage
Zustand.0 = Pinb.0 'Drehencoder
Zustand.1 = Pinb.1
Select Case Zustandswechsel
Case &H00_02 : Gosub Auf
Case &H02_00 : Gosub Ab
End Select
Zustand_alt = Zustand
Return
 

Auf:
Incr Ziffer 'Hochzählen 1-8
If Ziffer = 9 Then Ziffer = 1
Gosub Anzeige
Return
 

Ab: 'Runterzählen 8-1
Decr Ziffer
If Ziffer = 0 Then Ziffer = 8
Gosub Anzeige
Return
 



Vielleicht kann es ja irgendwer von Euch gebrauchen.

Einen schönen Abend noch

wünscht Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#38 von giesl ejektor , 09.11.2014 16:01

Hallo Ulli,

ich habe mir auch mal die Zeit genommen und Deine Threads komplett durchgeschaut.
Mein lieber Herr Gesangverein, das ist aber allererste Klasse, was Du baust. Ich bin ja
eher der Typ Kurzschlusselektriker.
Also im Ernst, angefangen bei den Selbstbauweichen, dem Weichenantrieb über den Schrankenantrieb
bis hin zur umbebauten Hand-Drehscheibe ist das Modelllbau auf höchstem Niveau. Und erst recht, wenn man
dabai bedenkt, dass die Schrittmotoren bzw. Getriebeeinheiten aus alten Scannern usw. stammen.

Mit Komponenten von der Stange ist das schon nicht so einfach, aber bei Dir ist von der Konstruktion bis zur
Herstellung und Programmierung alles Selbstbau. Der Wahnsinn .
Bei Deinen handwerklichen Fähigkeiten wird die auch die übrige Gestaltung mit Sicherheit ein Kracher.
Ich sage nur: Straight to Ruhmeshalle!

Du stehst ab jetzt unter Beobachtung

Viele Grüße aus dem Westerwald

Lutz




BW Tannberg in N
viewtopic.php?f=64&t=108983

Eine Nebenbahn in H0 und Modulbauweise
viewtopic.php?f=64&t=110423


 
giesl ejektor
EuroCity (EC)
Beiträge: 1.081
Registriert am: 18.04.2014
Ort: Westerwald
Gleise Piko A
Spurweite H0
Stromart DC, Digital


RE: Selbstbau Weichensteuerung mit Servo

#39 von garti62 , 10.11.2014 12:08

Hallo Lutz,


na, na, nu übertreib mal nicht ops: . Bis auf meine wenigen Basteleien habe ich noch nichts Zusammenhängendes vorzuweisen. Trotzdem aber vielen Dank für die Blumen!
Daß ich mit Material aus der Ausschlachtekiste baue, hat eigentlich nur zwei Gründe:
- ich habe eine recht große Ausschlachtekiste
- ich habe meistens erstmal keinen konkreten Plan, das ergibt sich erst beim Versuchen. Und dann ist es hilfreich, wenn man von allem etwas zum Probieren da hat. Wenns nicht funktioniert, kann ich es ohne Reue einfach wegschmeißen und was anderes versuchen. Da ist es gut, wenn das Material nur 1,-€ bei ebay oder ein freundliches Gespräch mit dem Mitarbeiter des städtischen Wertstoffhofs gekostet hat. Und ich finde, für bewegliche Konstruktionen auf der Modellbahn gibt es keinen besseren Teilefundus als einen möglichst alten Videorecorder (Motore, Lager, Zahnräder, Wellen und vieles mehr).


Schöne Grüße

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#40 von garti62 , 28.11.2014 21:15

Hallo Stummis,

eigentlich bin ich noch mit Weichenbau beschäftigt und habe für diesen Thread nichts Neues vorzuweisen, trotzdem muß ich zum Thema Ätzbausatz Drehscheibe noch was loswerden:

ich hab einen !!!



Jetzt brauch ich noch eine alte, möglichst billige Arnold-Drehscheibe, dann kann es losgehen. Aber immer mit der Ruhe, denn das gute Stück ist doch recht filigran und war auch nicht ganz billig. Ich werde da mal nichts überstürzen. Irgendwann wird es dann auch Bilder vom Bau hier im Forum geben (natürlich nur, falls es mir gelingt .... )

Schönen Abend noch

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#41 von Opahausen ( gelöscht ) , 15.01.2015 00:20

Hallo Ulli,

Hut ab , vor Deinen elektr. Baukünsten ,auch die Videos haben mir
gefallen. Hat es eigentlich einen Grund ,dass der Weichenservo eine
Pause auf halben Weg macht?

Mein neues Signal wird mechanisch bewegt, es ist gerade fertig geworden.
Nachwippen passiert bei mir händisch. ops:

Gruß
Hartmut


Opahausen

RE: Selbstbau Weichensteuerung mit Servo

#42 von garti62 , 15.01.2015 12:00

Hallo Hartmut,

das freut mich jetzt, daß diesen Thread noch jemand liest. Ich hatte gedacht, er ist schon in den Tiefen des Forums verschwunden.
Habe allerdings auch schon lange nichts Neues zu diesem Thema zustandegebracht. Im Moment bin ich noch mit Gleisbau beschäftigt und da sich dort immer wieder etwas Neues ergibt, werde ich auch nicht so richtig fertig damit. Deshalb liegen o.g. Basteleien schon seit einiger Zeit in der Vorratskiste und warten auf ihre Zeit. Doch zu Deiner Frage: Den kurzen Stopp in der Mitte hatte ich extra so programmiert, sollte, wie auch bei den Signalen, das Umgreifen am Stellhebel der Hebelbank im Stellwerk nachbilden. Habe ich aber erst mal wieder entfernt, denn so richtig geheuer war mir das denn doch nicht. Da ist aber das letzte Wort noch nicht gesprochen, ich muß noch mal recherchieren, wie das in Natura wirklich ausgesehen hat. Dafür ist das Nachwippen inzwischen sehr viel realistischer geworden. Der Trick dabei heißt ganz einfach: weniger ist mehr.
Dein Signal hab ich mir angesehen, sehr clevere Lösung für den Antrieb, Hut ab!

Schöne Grüße

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#43 von volkerS , 17.01.2015 17:13

Hallo Zusammen,
Pausen von 20ms zwischen den Servopulsen (1 - 2ms, manchmal auch 0,9 - 2,1ms) müssen nicht sein. Ich habe schon mit deutlich geringeren Pausen Servos angesteuert. Die 20ms Wiederholrate sind ein gemittelter Wert, eigentlich 15 - 24ms.
In Funkfersteuerungen wurden/werden nacheinander seriell die Kanäle ohne Pause als Paket übertragen, bei 7 Kanälen also max 14ms. Danach folgt eine Pause, die der Empfänger zum Syncronisieren benötigt um wieder den Beginn eines Informationspaketes zu erkennen. Moderne Anlagen arbeiten mit anderen Datenprotokollen, aber im Empfänger werden immer noch die standartisierten Pulse für Analogservos ausgegeben.
Weiche Servobewegungen erreicht man mit feinerer Abstufung der Pulsbreiten und geringerer Pausenzeiten. Achtung, entscheidend ist die Qualität der Potis im Servo. Leider steigt meist auch die Stromaufnahme.
Ich habe schon nach Ausbau des Potis im Servo incl. Entfernen der Endanschläge außerhalb des Servos mechanisch und elektrisch ein 10-Gang-Poti angeschlossen. Damit lassen sich dann Seiltrommeln und Anwendungen, die mehr als 180° Servowinkel erfordern, realisieren.
Volker


volkerS  
volkerS
ICE-Sprinter
Beiträge: 5.998
Registriert am: 14.10.2014


RE: Selbstbau Weichensteuerung mit Servo

#44 von garti62 , 17.01.2015 20:16

Hallo Volker,

Danke für Deinen Beitrag. Ist sicher ein interessanter Ansatz, wenn es darum geht, sehr langsame Servobewegungen zu realisieren. Ich habe damals bei meinen ersten Versuchen mit AVR-Programmierung auch mit den Pausenzeiten und der Zahl der Schritte rumexperimentiert, auch mal mit einem "besseren" Digitalservo. Dabei habe ich aber die Erfahrung gemacht, daß bei den in unserem Hobby häufigsten Anwendungen (Weichen und Signale) die "klassische" Ansteuerung in Verbindung mit einem Billigservo völlig ausreicht. Man sieht da bei der Stellbewegung keinen erkennbaren Unterschied, wie ich finde. Bei längeren langsamen Drehbewegungen (z.B. Wasserkran o.ä.) wird es schon interessanter.
Ein "getunter" Servo mit externem Wendelpoti war nach ausgiebiger Internetrecherche mein erster Versuch, die Drehscheibe (s.o.) mit genauer Positionierung anzutreiben. Das Poti sollte über eine mehrstufige Untersetzung (wegen dem recht großen Verfahrweg der Drehscheibe) angekoppelt werden. Das hab ich aber mechanisch nicht reproduzierbar hinbekommen, wahrscheinlich wegen des Getriebespiels und vielleicht auch der Qualität des Potis. Für sowas würde ich jetzt immer wieder einen Schrittmotor nehmen. Läßt sich eigentlich mit geringem Aufwand ansteuern und liefert exakt reproduzierbare Ergebnisse. Und kostet mittlerweile bei z.B. Pollin auch nicht mehr als ein Servo.

Schönen Abend noch

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#45 von volkerS , 18.01.2015 08:17

Hallo Ulli,
solange ein Servo keine Schrittverlusste hat, hat er eine hervorragende Reproduzierbrkeit. Ein Getriebe (mit seinem Spiel) nachgeschaltet finde ich kontraproduktiv. Ich greife dann lieber auf Servotreiberkarten zurück die Microschrittprogrammierung erlauben. Z.B. 128 Pulse pro Schritt (1,8°). Da diese Karten nur Richtungssignal (statisch), Takt und gegebenefalls Enable zur Stromabsenkung benötigen, ist auch die Ansteuerung recht einfach. Wer es dann ganz komfortabel will programmiert noch Beschleunigungs- und Bremsrampen.
Volker


volkerS  
volkerS
ICE-Sprinter
Beiträge: 5.998
Registriert am: 14.10.2014


RE: Selbstbau Weichensteuerung mit Servo

#46 von Opahausen ( gelöscht ) , 21.03.2015 22:45

Hallo Ulli,

so lieb ich es ,alte Videorekorder und Scanner nutzen ,
Bei mir mußte auch ein CD-Player dran glauben, siehe meine
Anlage
Seite 33 vom 15.8.2014 bewegt wird ein Gabelstapler.

Gruß
Hartmut


Opahausen

RE: Selbstbau Weichensteuerung mit Servo

#47 von garti62 , 28.03.2015 18:26

Hallo Hartmut,

ja, ich weiß, daß Du ein Freund unkonventioneller Lösungen bist. Wie zum Beispiel der Gabelstapler, der über dem "Plattenteller" seine Runden dreht . Leider kann ich hier nichts Neues zeigen, berufsbedingt geht der Arbeitstag zur Zeit von Sonnenauf- bis Sonnenuntergang, da bleibt die Moba etwas auf der Strecke. Aber in einigen Wochen entspannt sich die Lage wieder, dann werden die Gleise in meinem kleinen Übungsbahnhof fertig angeschlossen und dann geht's hoffentlich mit der Drehscheibe weiter.

Schöne Grüße

Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Selbstbau Weichensteuerung mit Servo

#48 von Thorsten Schröder , 19.11.2016 20:46

Hallo Hab mal ne nachfrage zum diesen tehma SERVO Könnte man den code für den Controller bekommen Ja oder nein reicht danke
Gruß Thorsten


Die schönste anlage ist Mininatur wunderland......


 
Thorsten Schröder
S-Bahn (S)
Beiträge: 19
Registriert am: 16.11.2008
Homepage: Link
Gleise PIKO / jetzt Roco
Spurweite H0e
Steuerung Piko / Roco
Stromart digital


RE: Selbstbau Weichensteuerung mit Servo

#49 von garti62 , 20.11.2016 09:59

Hallo Thorsten,

Gott, das ist ja ganz kalter Kaffee, den Du hier aufrührst . Ich denke mal, Du meinst den Basic-Quellcode vom Weichenantrieb am Anfang des Threads. Hier ist er:

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
195
196
197
198
199
200
201
202
 
'Servosteuerung für Weiche mit Attiny2313
'Taktfrequenz 4MHz
'low fuse: 11100010 high fuse: 11011111
'Servo an portd.0
'relais an portd.3 und portd.4
'Stellpult: Taster an portb.0 und portb.1
' LED an portd.5 und portd.6
'Taster für Justierung an portb.4 und portb.5
'LED für Justierung an portd.2
 

 
$regfile = "attiny2313.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 10
$framesize = 40
Config Portd = Output
Config Portb = Input
Portb = &B11111111
 
Const Reload = 55536
Config Timer1 = Timer , Prescale = 8
On Timer1 Servo
Disable Timer1
Enable Interrupts
Timer1 = Reload
 
'Variablen definieren
Dim Flag As Byte
Dim E_flag As Eram Byte
Dim Zaehler As Byte
Const Lang = 200
Dim Winkel As Word
Dim A As Word
Dim B As Word
Dim Pol As Byte
Dim E_pos As Eram Word
Dim E_pol As Eram Byte
Dim E_links As Eram Word
Dim E_rechts As Eram Word
Dim Mitte As Word
Mitte = 600
Dim Links As Word
Dim Rechts As Word
 
'letzte Einstellung aus eprom laden
Flag = E_flag
If Flag = 1 Then
Winkel = E_pos
Pol = E_pol
Links = E_links
Rechts = E_rechts
If Pol = 1 Then
Portd.3 = 1
Portd.4 = 0
Portd.5 = 0
Portd.6 = 1
End If
If Pol = 0 Then
Portd.3 = 0
Portd.4 = 1
Portd.5 = 1
Portd.6 = 0
End If
'falls im eprom noch nichts steht, dann:
Else
Winkel = Mitte
Links = 450
Rechts = 750
E_links = Links
E_rechts = Rechts
Flag = 1
E_flag = Flag
End If
'servo kurz einschalten
Enable Timer1
Waitms 500
Disable Timer1
 

Do
 
If Pinb.4 = 0 Then Gosub Stellen
If Pinb.1 = 0 Then
Gosub Linksdrehen
Elseif Pinb.0 = 0 Then
Gosub Rechtsdrehen
End If
If Pinb.5 = 0 Then
Enable Timer1
Winkel = Mitte
Portd.5 = 0
Portd.6 = 0
Portd.3 = 0
Portd.4 = 0
Waitms 500
Disable Timer1
End If
 
Loop
 
End
 
Stellen:
Zaehler = 0
Do
Incr Zaehler
Waitms 10
Loop Until Pinb.4 = 1 Or Zaehler = Lang
If Zaehler = Lang Then
Portd.4 = 0
Portd.5 = 0
Winkel = Links
Enable Timer1
Waitms 500
Portd.6 = 1
Portd.3 = 1
Portd.2 = 1
Do
If Pinb.0 = 0 Then Winkel = Winkel + 1
If Pinb.1 = 0 Then Winkel = Winkel - 1
Waitms 50
Loop Until Pinb.5 = 0
Links = Winkel
E_links = Links
Disable Timer1
Wait 1
Portd.2 = 0
Else
Portd.3 = 0
Portd.6 = 0
Winkel = Rechts
Enable Timer1
Waitms 500
Portd.5 = 1
Portd.4 = 1
Portd.2 = 1
Do
If Pinb.0 = 0 Then Winkel = Winkel + 1
If Pinb.1 = 0 Then Winkel = Winkel - 1
Waitms 50
Loop Until Pinb.5 = 0
Rechts = Winkel
E_rechts = Rechts
Disable Timer1
Wait 1
Portd.2 = 0
End If
Return
 

Servo:
If Pind.0 = 1 Then
Portd.0 = 0
Timer1 = Reload
Else
Portd.0 = 1
Timer1 = 65536 - Winkel
End If
Return
 

Linksdrehen:
B = Rechts - Links
Enable Timer1
Portd.5 = 0
Waitms 20
For A = 1 To B
If Winkel > Links Then Winkel = Winkel - 1
If A = 1 Then Portd.4 = 0
If A = B Then
Portd.3 = 1
Pol = 1
End If
Waitms 10
Next
E_pos = Winkel
E_pol = Pol
Portd.6 = 1
Disable Timer1
Return
 
Rechtsdrehen:
B = Rechts - Links
Enable Timer1
Portd.6 = 0
Waitms 20
For A = 1 To B
If Winkel < Rechts Then Winkel = Winkel + 1
If A = 1 Then Portd.3 = 0
If A = B Then
Portd.4 = 1
Pol = 0
End If
Waitms 10
Next
E_pos = Winkel
E_pol = Pol
Portd.5 = 1
Disable Timer1
Return
 



War eins meiner ersten Werke in Sachen AVR-Controller
Alternativ kannst Du Dir aber auch mal die mobatools für den Arduino von Franz-Peter anschauen. Damit ist der Selbstbau einer Servosteuerung an Einfachheit kaum noch zu überbieten und mittlerweile sogar ein DCC-Decoder für Servos möglich.

Schönen Sonntag noch
Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


   


  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz