Wie schließe ich einen Fahrschalter an für ZuSi

Da immer mehr Zusi User von einem 1:1 Führerstand mit träumen, soll es zumindest an Datenaustausch nicht hapern.
Nachricht
Autor
BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#21 Beitrag von BenniS. »

Danke Moritz.
Der Hallsensor ist für mich alleine noch eine Nummer zu groß, einfach wegen den Programmierarbeiten am Arduino. Da wäre ich auch wieder auf Hilfe von außen angewiesen. Da ich alles für die Schaltung hier habe, ist das erstmal die Go-To Lösung für mich.
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 34607
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#22 Beitrag von Carsten Hölscher »

5V und Ground kann man machen wie man will.
Wenn man einfach nur ein Poti an den Leo anschließt und ganz in die Endlage dreht, liegen da auch die 5V an.

Carsten

BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#23 Beitrag von BenniS. »

Danke für die Klarstellung :tup
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#24 Beitrag von BenniS. »

Die Schaltung funktioniert soweit.

Nun wurde ich soeben vom Vorbesitzer darüber informiert, dass die Nockenscheiben nicht mehr korrekt auf der Welle sitzen. Er hat wohl mal alles auseinandergebaut und danach falsch wieder zusammengesetzt. So passt natürlich die Abtastung durch die Schnappschalter nicht mehr. Hat hier jemand einen Baugleichen Kombihebel (5 Nockenscheiben) um evtl Bilder des richtigen Einbaus beizusteuern?
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

MBT Kuhl
Beiträge: 924
Registriert: 27.01.2015 22:16:44
Aktuelle Projekte: Objektbau
Wohnort: Niedersachsen

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#25 Beitrag von MBT Kuhl »

Moin.

Wenn die Scheiben relativ flexibel zu drehen sind, solltest Du dir das erschließen können. Die Funktion sollte bekannt sein, also S1 geschlossen beim Fahren, S2 beim Bremsen oder so ähnlich.
Ich arbeite gern für meinen Konzern. Initiative für mehr Arbeit

BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#26 Beitrag von BenniS. »

gelöscht - Das Problem lässt sich besser als erhofft beheben.
Es wurde die gesamte Welle verdreht, statt einzelner Nockenscheiben.
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#27 Beitrag von BenniS. »

Wie bereits geschrieben funktioniert die Schaltung grundsätzlich - der Fahrschalter taucht in den Konfigurationen auf.

Beim kalibrieren wird jedoch klar, das etwas noch nicht so ganz stimmt:

Stellung SB: 999
Stellung VB: 40
Mittel: 958
kompletter Bereich "fahren": -1000

Die Werte der VB- und Mittelstellung sind hier vertauscht. Zudem wird der Minusbereich (sobald der Hebel nach "fahren" gelegt wird) sofort mit -1000 belegt.
Ein Problem der Schaltung? Hilft eine bestimmt Einstellung im Kennlinienmodus?

Da würde ich gerne nochmals um eure Hilfe bitten, da ich bei der Fehlersuche nicht weiß, wo anzusetzen wäre.
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 34607
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#28 Beitrag von Carsten Hölscher »

S1 und S2 schalten gleichzeitig um beim Wechsel von Fahren auf Bremsen?

Carsten

BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#29 Beitrag von BenniS. »

Korrekt, beide schalten gleich um.
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 34607
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#30 Beitrag von Carsten Hölscher »

Musst dann wohl mal alles systematisch durchchecken.

Carsten

BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#31 Beitrag von BenniS. »

Ich weiß nicht genau was ich berichten soll... Jedes mal wenn ich die Schaltung auseinander- und nochmal penibel zusammenstecke, ändert sich etwas.

Ganz neu: Sobald ich in die Fahrtstellung gehe, trennt der Bodnar die Verbindung zum PC. Gehe ich zurück in die Mittel- oder Bremsstellung, ist er wieder da.
Ich kann aber nicht erkennen wo plötzlich ein Kurzschluss(?) zustande kommen sollte, dass dieses Verhalten hervorbringen könnte.

Ich war auch mal soweit dass der Poti in Stellung SB die -1000 in der Konfiguration angezeigt hat, das hat sich jedoch wieder verloren.
Es wurden jetzt mal neue Widerstände bestellt. Die hier beim Breadboard dabei waren, kommen mir etwas lausig vor.

Nebenbefund: Der Poti hat einen Maximalwiderstand von 470 Ohm in SB. 430 Ohm sinds maximal in VB bzw. max. Zugkraft


Edit: Nach nochmaligem Auseinander- und zusammenstecken nun folgende Lage:
Fahrstellung wird in der Konfiguration erkannt.
Bodnar trennt sich vom PC, sobald ich in SB gehe. Einhergehend mit Windows Fehlermeldung "Stromüberspannung am USB-Anschluss" -> Neustart nötig :wand


An dieser Stelle wäre die einfachste Variante für mich einfach den Poti zu tauschen, gegen einen normalen 20€ Poti vom Conrad. Allerdings möchte ich nicht immer den einfachen Ausweg nehmen, sondern auch etwas lernen. Also vielleicht hat noch jemand von euch Ideen?
Zuletzt geändert von BenniS. am 15.01.2025 01:15:52, insgesamt 1-mal geändert.
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

Benutzeravatar
F. Schn.
Beiträge: 8091
Registriert: 24.10.2011 18:58:26

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#32 Beitrag von F. Schn. »

Das Ding mal abstecken und mit deinem Multimeter messen und verstehen, was los ist. Der mittlere Anschluss wird ein reiner abgriff sein, dort fließt kein Strom. Zwischen dem linken und rechten Anschluss liegt hingegen eine Spannung von 5 V (USB-Spannung) an. Du kannst also mit einer Widerstandsmessung zwischen dem linken Anschluss bestimmen, wie viel Strom zwischen den beiden Anschlüssen fließt. Wenn du dann sichergestellt hast, dass nie zu hohe Ströme fließen, kannst du Spannung anlegen und die Spannung zwischen Out und Gnd Messen.
Wenn die Schaltung direkt an der Versorgungsspannung des USB angeschlossen ist, darf sie zusammen mit dem Bodnar nicht mehr als 0,1 A verbrauchen. Die hochqualitative Anleitung des Leo Bodnar (Bauform BU0836X) gibt in den Construction tips einen Minimalwiderstand von 1 kΩ bis max 100 kΩ an. Das wird mit Carstens Werten vermutlich knapp, könnte aber je nach Funktion der Schalter (die ich nicht kenne) aber klappen. (Und wie gesagt: Damit Carstens Schaltung überhaupt funktioniert, müsste er eigentlich den Wert des Potis hinschreiben. Aber dein 430-Ω-Poti klingt jetzt in Verbindung mit den 500-Ω-Widerständen erst mal richtig.)
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 34607
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#33 Beitrag von Carsten Hölscher »

Die echten Bahnschalter liegen meist in der Größenordnung 1k.

Carsten

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 34607
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#34 Beitrag von Carsten Hölscher »

Vielleicht schließt SB bei dir wenn S1 in der unteren Lage und der Poti ganz links ist, dann hätte man Kurschluss zwischen 5V und Ground.

Carsten

Benutzeravatar
Achim Adams
Beiträge: 1329
Registriert: 05.06.2004 23:06:03

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#35 Beitrag von Achim Adams »

In der Industrie haben wir in solchen Situationen mit Poti-Werten um die 4,7 MOhm gearbeitet.

Nur so zum Vergleich.

BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#36 Beitrag von BenniS. »

Es ist vollbracht, es funktioniert zu 95%. Lösung war ein Tausch des 5V und GND Anschlusses, der jeweils auf das Breadboard ging, zusammen mit einem Durchtausch der beiden Ausgänge von S1.
Allerdings gibt mir die Konfiguration in Zusi noch ein kleines Rätsel auf:

Fahrt auf 1000
erste Rastung Fahren -30 (S1 Kontakt schließt)
Mitte auf 25
erste Rastung Bremsen 80 (S2 Kontakt öffnet)
VB auf -925
SB auf -1000 (S4 Kontakt öffnet)

Die Werte der ersten Fahr- und Bremsrastung sind also vertauscht.
Wie kann das sein?


Ich danke euch sehr für die Hilfestellungen bei der Schaltung!
Zuletzt geändert von BenniS. am 16.01.2025 16:05:49, insgesamt 1-mal geändert.
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

ET420_Fan
Beiträge: 422
Registriert: 22.06.2020 11:31:46
Wohnort: Lübeck

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#37 Beitrag von ET420_Fan »

Die Mittelstellung des Schalters ist bei den Triebwagen-Fst von TheShow leider falsch. Geht es mit dem 650 oder dem 442?

H. Ww
Beiträge: 113
Registriert: 21.04.2024 07:22:49

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#38 Beitrag von H. Ww »

ET420_Fan hat geschrieben: 16.01.2025 10:44:17 Die Mittelstellung des Schalters ist bei den Triebwagen-Fst von TheShow leider falsch. Geht es mit dem 650 oder dem 442?
Das betrifft dann welche Baureihen ( Fst von TheShow ) ?

BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#39 Beitrag von BenniS. »

Habe jetzt mal einige Führerstände getestet.
Konfiguration funktioniert mit 442, 428, 147, 643
Funkioniert nicht mit 422, 425, 193/248, 462, 474, 648

edit: Mit entsprechenden Einstellungen im Fst Editor behoben.
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

BenniS.
Beiträge: 505
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO Km91,4

Re: Wie schließe ich einen Fahrschalter an für ZuSi

#40 Beitrag von BenniS. »

Hier nun ein passender Arduino Code für den Schaltbau S334 Fahrschalter mit Poti und Tastern:

Code: Alles auswählen

#include <Keyboard.h>
#include <Joystick.h>  // Joystick Bibliothek

// Pin‑Definitionen
const int s1Pin = 2;
const int s2Pin = 3;
const int s3Pin = 4;
const int s4Pin = 5;
const int potPin = A0; // Poti

// Status
bool mittelstellungSent = false;
bool hidStarted = false; // HID erst nach Delay starten

// Poti‑Filter
const int filterSize = 7;
int potValues[filterSize];
int potIndex = 0;

// Joystick Objekt: X, Y, Z Achsen
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,
                   JOYSTICK_TYPE_JOYSTICK,
                   0, 0,  // keine Buttons
                   true, true, true, // X, Y, Z Achsen
                   false, false, false, false, false, false, false);

void setup() {
  Serial.begin(115200);

  pinMode(s1Pin, INPUT_PULLUP);
  pinMode(s2Pin, INPUT_PULLUP);
  pinMode(s3Pin, INPUT_PULLUP);
  pinMode(s4Pin, INPUT_PULLUP);

  for (int i = 0; i < filterSize; i++) potValues[i] = 512;

  // Joystick-Bereich setzen
  Joystick.setXAxisRange(0, 1023);
  Joystick.setYAxisRange(0, 1023);
  Joystick.setZAxisRange(0, 1023);

  // Sicherer Start: HID erst nach 2 Sekunden aktiv
  delay(2000);
  Keyboard.begin();
  Joystick.begin();
  hidStarted = true;
}

void loop() {
  // Taster einlesen
  bool s1 = digitalRead(s1Pin) == HIGH;
  bool s2 = digitalRead(s2Pin) == HIGH;
  bool s3 = digitalRead(s3Pin) == HIGH;
  bool s4 = digitalRead(s4Pin) == HIGH;

  // Poti filtern
  int potRaw = analogRead(potPin);
  potValues[potIndex] = potRaw;
  potIndex = (potIndex + 1) % filterSize;

  long sum = 0;
  for (int i = 0; i < filterSize; i++) sum += potValues[i];
  int potFiltered = sum / filterSize;

  // Stellung bestimmen
  String stellung = "Unbekannt";
  bool mittelstellung = false;

  if (!s1 && !s2 && !s3 && !s4) {
    stellung = "SOS";
  } else if (s1 && s2 && !s3 && !s4) {
    stellung = "Elektrisch Bremsen";
  } else if (s1 && s2 && s3 && !s4) {
    stellung = "Mittelstellung";
    mittelstellung = true;
    if (!mittelstellungSent && hidStarted) {
      Keyboard.press('5');
      delay(50);
      Keyboard.release('5');
      mittelstellungSent = true;
    }
  } else if (s1 && s2 && s3 && s4) {
    stellung = "Fahren";
  }

  if (!(s1 && s2 && s3 && !s4)) mittelstellungSent = false;



  // X-Achse Logik: Bremsen
  bool xAchseActive = (!s3 && !s4);
  int xValue = 0;
  if (mittelstellung) {
    xValue = 512;
  } else if (xAchseActive) {
    xValue = potFiltered; // volle 0-1023 Range
  } else {
    xValue = 0;
  }
  if (hidStarted) Joystick.setXAxis(xValue);

  // Y-Achse Logik: Fahren
  bool yAchseActive = (s3 && s4);
  int yValue = 0;
  if (mittelstellung) {
    yValue = 0;
  } else if (yAchseActive) {
    yValue = potFiltered; // volle 0-1023 Range
  } else {
    yValue = 0;
  }
  if (hidStarted) Joystick.setYAxis(yValue);

  // Kombinierte Achse für Zusi
int combinedValue = 512;

if (stellung == "SOS") {
    combinedValue = 0; // SOS → Z = 0
} 
else if (xAchseActive) {
    // X ist aktiv → von 0-1023 auf 0-512 stauchen
    combinedValue = map(xValue, 0, 1023, 0, 512);
} 
else if (yAchseActive) {
    // Y ist aktiv → von 0-1023 auf 512-1023 stauchen
    combinedValue = map(yValue, 0, 1023, 1023, 512);
}

if (hidStarted) Joystick.setZAxis(combinedValue);

  // --- Sifa Taster ---
const int sifaPin = 3; // Pin für Sifa-Taster
bool sifaPressedLast = false; // Zustand merken

// Im setup() hinzufügen:
pinMode(sifaPin, INPUT_PULLUP);

// Im loop() hinzufügen:
bool sifaPressed = digitalRead(sifaPin) == LOW; // true = gedrückt

if (sifaPressed && !sifaPressedLast && hidStarted) {
    // Taste nur einmal auslösen, wenn gerade gedrückt
    Keyboard.press(' ');
    delay(50);
    Keyboard.release(' ');
}

// Zustand merken
sifaPressedLast = sifaPressed;

  // Serielle Ausgabe
  Serial.print("Gefilterter Poti: "); Serial.print(potFiltered);
  Serial.print(" | Stellung: "); Serial.print(stellung);
  Serial.print(" | X: "); Serial.print(xValue);
  Serial.print(" | Y: "); Serial.print(yValue);
  Serial.print(" | Z-Kombi: "); Serial.println(combinedValue);

  delay(50);
}
Fahr- und Bremsbereich werden jeweils zwei Achsen zugeordnet, und diese später auf einer dritten Achse zusammengefügt (Bremsen 0-512, Fahren 512-1023)
beste Grüße Benni
Win10 Pro 64Bit; Intel I7-4790; 16GB DDR3; NVIDIA GeForce GTX 1060 6GB

Antworten