Ausgänge
- nonesense
- Beiträge: 507
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Ausgänge
Ein erster Ansatz:
- Achim Adams
- Beiträge: 1239
- Registriert: 05.06.2004 23:06:03
Re: Ausgänge
So stell ich mir einen Fahrpultbau vor:
zunächst die Elektronik und die programmiertechnische Anpassung herstellen, anschließend ein Gehäuse drumrum bauen!
Gratuliere!
zunächst die Elektronik und die programmiertechnische Anpassung herstellen, anschließend ein Gehäuse drumrum bauen!
Gratuliere!
Re: Ausgänge
Hallo, grüss dich.
Ich habe jetzt das VS-Express 10 installiert.
Kannst du bitte mal deine Demo von VS zur Vebindungsaufnahme mit dem Board hier mal reinstellen?
Danke.
Gruss
Ich habe jetzt das VS-Express 10 installiert.
Kannst du bitte mal deine Demo von VS zur Vebindungsaufnahme mit dem Board hier mal reinstellen?
Danke.
Gruss
- nonesense
- Beiträge: 507
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Ausgänge
Hallo,
Von Firmata bin ich wieder weg. Das hatte zwar wie man oben sieht sehr gut funktioniert, Probleme machen aber Spezialitäten wie Schrittmotoren, I²C oder Servos.
Also habe ich kurzerhand mein eigenes Protokoll geschrieben. Den Part für den Arduino präsentiere ich jetzt.
Hier das VB.Net-Projekt
Vielen Dank an Andreas Karg für die Vorarbeit auf TCP-Seite und F. Schn. für die Übersetzung nach VB-Syntax.
So sollte das dann aussehen:
Gruß
Jens
Von Firmata bin ich wieder weg. Das hatte zwar wie man oben sieht sehr gut funktioniert, Probleme machen aber Spezialitäten wie Schrittmotoren, I²C oder Servos.
Also habe ich kurzerhand mein eigenes Protokoll geschrieben. Den Part für den Arduino präsentiere ich jetzt.
Code: Alles auswählen
#include <Servo.h> // Damit wir auch Servos ansteuern können.
Servo servoHLL; // So heißt der Servo für die Hauptluftleitung
Servo servoHLB; // So heißt der Servo für den Hauptluftbehälter
Servo servoBZD; // So heißt der Servo für den Bremszylinderdruck
byte inputByte[2]; // [0] gibt das Ziel, [1] den Wert an
void setup()
{
servoHLL.attach(22); // Den 3 Servos wird der Pin zugewiesen, an dem sie angeschlossen sind
//servoHLB.attach(x);
//servoBZD.attach(x);
Serial.begin(9600); // Der serial port soll mit 9600 bps starten
pinMode(4, OUTPUT); // LM "Sifa" soll an Pin 4
pinMode(5, OUTPUT); // LM "Türen" soll an Pin 5
pinMode(51, OUTPUT); // LM "Bef. 40" soll an Pin 7
pinMode(39, OUTPUT); // LM "500Hz" soll an Pin 11
pinMode(29, OUTPUT); // LM "1000Hz" soll an Pin 11
pinMode(31, OUTPUT); // LM "O" soll an Pin 12
pinMode(41, OUTPUT); // LM "M" soll an Pin 13
pinMode(53, OUTPUT); // LM "U" soll an Pin 13
}
void loop()
{
if (inputByte[0]=='w'){ // Wenn wir an erster Stelle ein "w" empfangen, möchte der PC wissen, ob wir wirklich
Serial.println("I am a drivers desk"); // der Arduino für das Fahrpult sind. Das bestätigen wir mit "I am a drivers desk""
if (inputByte[1]=='w'){ // Wenn an zweiter Stelle ebenfalls ein "w" kommt, sollen wir akustisch quitieren
tone(5, 1000, 100);
delay(200);
tone(5, 1000, 100);
}
}
if (inputByte[0] == 'V'){ // "V" für Geschwindigkeit
analogWrite(6,inputByte[1]); // Wir geben den Wert von 0 - 255 PWM an Pin 6 aus
}
if (inputByte[0] == 'P'){ // "P" für PZB, stellvertretend für alle Leuchtmelder
LmPZB(inputByte[1]); // Wir geben das Byte an eine Funktion, die die 8 Bits je einem Digitalausgang zuordnet
}
if (inputByte[0] == 'L'){ // "L" für Hauptluftleitung
servoHLL.write(inputByte[1]); // Wir weisen dem entsprechenden Servoobjekt seinen Wert zu
}
if (inputByte[0] == 'H'){ // "H" für Hauptluftbehälter
servoHLB.write(inputByte[1]); // Wir weisen dem entsprechenden Servoobjekt seinen Wert zu
}
if (inputByte[0] == 'B'){ // "B" für Bremszylinder
servoBZD.write(inputByte[1]); // Wir weisen dem entsprechenden Servoobjekt seinen Wert zu
}
}
void serialEvent() { // Es sind uns Daten vom PC zugespielt worden
for (byte i=0; i<2;i++){
inputByte[i]=Serial.read(); // Wir weisen inputByte[0] Das Ziel und inputByte[1] seinen Wert zu
delay(3); // Da es seine Zeit braucht, bis der PC alles sendet, warten wir zwischen den Bytes etwas ab
}
Serial.flush(); // Falls aus irgend einem Grund nun noch Datan im Lesepuffer sind, löschen wir diese jetzt
}
void LmPZB(byte LM){
if ((LM&1) > 0){digitalWrite(53, HIGH);}//U
if ((LM&1) == 0){digitalWrite(53, LOW);}
if ((LM&1) > 0){digitalWrite(41, HIGH);}//M
if ((LM&1) == 0){digitalWrite(41, LOW);}
if ((LM&2) > 0){digitalWrite(31, HIGH);}//O
if ((LM&2) == 0){digitalWrite(31, LOW);}
if ((LM&4) > 0){digitalWrite(51, HIGH);}//Bef
if ((LM&4) == 0){digitalWrite(51, LOW);}
if ((LM&16) > 0){digitalWrite(39, HIGH);}//500
if ((LM&16) == 0){digitalWrite(39, LOW);}
if ((LM&32) > 0){digitalWrite(29, HIGH);}//1000
if ((LM&32) == 0){digitalWrite(29, LOW);}
if ((LM&64) > 0){digitalWrite(4, HIGH);}//Sifa
if ((LM&64) == 0){digitalWrite(4, LOW);}
if ((LM&128) > 0){digitalWrite(5, HIGH);}//nicht benutzt
if ((LM&128) == 0){digitalWrite(5, LOW);}
}
Vielen Dank an Andreas Karg für die Vorarbeit auf TCP-Seite und F. Schn. für die Übersetzung nach VB-Syntax.
So sollte das dann aussehen:
Gruß
Jens
Zuletzt geändert von nonesense am 13.11.2012 23:13:51, insgesamt 6-mal geändert.
Re: Ausgänge
...Zusi-TCP-COM-Arduino.zip...
Also , die Seite kommt mir nicht so Vertrauensvoll vor, ... mit einloggen..anmelden und...
Danke.
Gruss
Also , die Seite kommt mir nicht so Vertrauensvoll vor, ... mit einloggen..anmelden und...
Danke.
Gruss
- nonesense
- Beiträge: 507
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Ausgänge
a) Scheint wohl neu zu sein, dass man sich auch für das herunterladen anmelden muss.
b) Ist 4Shared dennoch Vertrauenswürdig
c) Kann ich es dir auch per Mail schicken
Gruß
Jens
b) Ist 4Shared dennoch Vertrauenswürdig
c) Kann ich es dir auch per Mail schicken
Gruß
Jens
Zuletzt geändert von nonesense am 16.04.2012 14:45:49, insgesamt 1-mal geändert.
- Michael Franz
- Beiträge: 683
- Registriert: 21.11.2001 16:36:15
- Wohnort: Rennerod
- SgtMcExodus
- Beiträge: 220
- Registriert: 27.03.2012 17:56:48
- Aktuelle Projekte: Studium
- Wohnort: Berlin
Re: Ausgänge
Vielleicht sollte noch darauf hingewiesen werden, dass die .exe im Ordner \ZuSiTCPDemoAPPVBA\bin\Release liegt, da nicht unbedingt jeder mit VB vertraut ist
Zuletzt geändert von SgtMcExodus am 16.04.2012 21:26:58, insgesamt 1-mal geändert.
- nonesense
- Beiträge: 507
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Ausgänge
Jemand, der nicht mit Vertraut ist, muss sich vertraut machen.
Schließlich muss man sich das Programm für seiner Hardware anpassen.
Und Außerdem ist es die \ZusiTCPDemoAppVBA\bin\DebugZusiTcpNachArduino.exe
Gruß
Jens
Schließlich muss man sich das Programm für seiner Hardware anpassen.
Und Außerdem ist es die \ZusiTCPDemoAppVBA\bin\DebugZusiTcpNachArduino.exe
Gruß
Jens
Zuletzt geändert von nonesense am 16.04.2012 20:22:46, insgesamt 1-mal geändert.
- Michael Franz
- Beiträge: 683
- Registriert: 21.11.2001 16:36:15
- Wohnort: Rennerod
Re: Ausgänge
Hier kann die Datei ohne Anmeldung heruntergeladen werden.
Zuletzt geändert von Michael Franz am 13.11.2012 16:29:40, insgesamt 2-mal geändert.
Es grüßt aus dem schönen Westerwald
Michael
Michael
- nonesense
- Beiträge: 507
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Ausgänge
Und funkheld? Funktioniert es bei dir?
Gruß
Jens
Gruß
Jens
- SgtMcExodus
- Beiträge: 220
- Registriert: 27.03.2012 17:56:48
- Aktuelle Projekte: Studium
- Wohnort: Berlin
Re: Ausgänge
@nonesense Der Tacho ist aber noch nicht kalibriert oder?
- nonesense
- Beiträge: 507
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Ausgänge
Nur Softwaretechnisch. Das hat den Nachteil, dass nicht alle 255 Stufen genutzt werden können.
Den zu kalibrieren ist aber kein Akt. Dafür braucht man nur ein Potentiometer zusätzlich.
Gruß
Jens
Den zu kalibrieren ist aber kein Akt. Dafür braucht man nur ein Potentiometer zusätzlich.
Gruß
Jens
- Oliver Lamm
- Beiträge: 3102
- Registriert: 04.01.2002 15:02:17
- Aktuelle Projekte: Aachen - Neuss für Zusi3
- Wohnort: Essen
- Kontaktdaten:
Re: Ausgänge
Hi Jens,Nur Softwaretechnisch. Das hat den Nachteil, dass nicht alle 255 Stufen genutzt werden können.
Den zu kalibrieren ist aber kein Akt. Dafür braucht man nur ein Potentiometer zusätzlich.
den Deuta Tacho den ich hier habe musste ich mittels einer Stützkurve kalibrieren. Die Geschwindigkeit ist zumidest bei den drei mir vorliegenden Modellen nicht linear zur anliegenden Spannung. Ich habe das 15 Stützpunkte eingefügt und dazwischen mit Geraden interpoliert. Das geht super.
Oli
Oliver Lamm
mail(AT)oliverlamm(DOT)de
mail(AT)oliverlamm(DOT)de
- nonesense
- Beiträge: 507
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Ausgänge
Ja, das ist bei meinen auch auch so. Ich bezog mich jetzt auch nur auf den Vollausschlag bei maximaler Spannung (5V).Oliver Lamm hat geschrieben: Die Geschwindigkeit ist zumidest bei den drei mir vorliegenden Modellen nicht linear zur anliegenden Spannung.
Die nicht lineare Kennlinie rührt daher, dass die alten Tachos in echt von einem Wechselspannungsgenerator am Rad angesteuert werden. Dabei ändert sich nicht nur die Spannung, sondern auch die Frequenz, was für Drehspulmesswerke ungünstig ist.
Gruß
Jens
Re: Ausgänge
Melde mich verspätet.
Jup danke, funktioniert jetzt wunderbar.
Gruss
Jup danke, funktioniert jetzt wunderbar.
Gruss
-
- Beiträge: 10
- Registriert: 13.02.2011 13:09:17
- Wohnort: Bad Blankenburg
Re: Ausgänge
hab eben mein Arduino Mega2560 bekommen....
Verbindung mit TCP-Server1.4 ist möglich, aber eine Verbindung zum Arduino nicht.
Da kommt eine Fehlermeldung mit dem Inhalt:
An dem Port scheint kein Gerät angeschlossen zu sein!
Edit: Jetzt kommt ne andere Fehlermeldung:
An dem Port scheint das falsche Gerät angeschlossen zu sein!
Ist aber doch dran, ich seh es doch....USB-Kabel geht vom Arduino zum USB-Anschluss von meinen Läppi (Vista) bzw.
zum PC (WinXP)...
Gerätemanager zeigt mir als Anschluss Com12 an. ZusiTcpNachArduino.exe kann ich es auch auswählen. und dann kommt die Fehlermeldung...
Kann mir jemand verraten was ich da wieder falsch mache?
Mfg und Danke im Voraus
Frank
Verbindung mit TCP-Server1.4 ist möglich, aber eine Verbindung zum Arduino nicht.
Da kommt eine Fehlermeldung mit dem Inhalt:
An dem Port scheint kein Gerät angeschlossen zu sein!
Edit: Jetzt kommt ne andere Fehlermeldung:
An dem Port scheint das falsche Gerät angeschlossen zu sein!
Ist aber doch dran, ich seh es doch....USB-Kabel geht vom Arduino zum USB-Anschluss von meinen Läppi (Vista) bzw.
zum PC (WinXP)...
Gerätemanager zeigt mir als Anschluss Com12 an. ZusiTcpNachArduino.exe kann ich es auch auswählen. und dann kommt die Fehlermeldung...
Kann mir jemand verraten was ich da wieder falsch mache?
Mfg und Danke im Voraus
Frank
Zuletzt geändert von Ludmilla132 am 25.06.2012 14:43:22, insgesamt 1-mal geändert.
- nonesense
- Beiträge: 507
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Ausgänge
Hast du auch die Firmware in den Arduino hochgeladen?
...ich meine den langen C-Code oben.
Gruß
Jens
...ich meine den langen C-Code oben.
Gruß
Jens
-
- Beiträge: 10
- Registriert: 13.02.2011 13:09:17
- Wohnort: Bad Blankenburg
Re: Ausgänge
ja hab ich....bin vorhin weg gegangen und hab den PC angelassen, komm wieder, probier weiter und aufeinmal geht es......
frag mich ja nicht....
aufjedenfall funktioniert es...
frag mich ja nicht....
aufjedenfall funktioniert es...