| Forum | Suchen | Mitglieder | Home  
» Willkommen Gast [ login | registrieren ] 


Einfacher Schnittstellenwandler am Arduino betreiben
Forum
- Technische Fragen / Info‘s



 
Name Nachricht
Omsi-tech


Siedler
48 Beiträge

Einfacher Schnittstellenwandler am Arduino betreiben, 13 Jul. 2019 17:51


Hallo zusammen,

für die Hochschule baue ich aktuell ein altes IBIS 1 der VGF ohne eigene Datenversorgung (Termin-Gerät) auf eine eigene Arduino basierte Steuerung um. Die Ansteuerung von Display, Tastatur, LDR und Piezo Element läuft auch bereits soweit. Jetzt möchte ich mit dem Gerät auch wieder IBIS Anzeigen ansteuern und habe mir dafür für die serielle Schnittstelle des Arduino einen einfachen Schnittstellenwandler wie auf dem ersten Bild von diesem Beitrag gebaut:
https://487481.forumromanum.com/member/forum/entry_ubb.user_487481.1341209229.1114728707.1114728707.1.schnittstellenwandler-ibis_world.html

Am Computer mit IBISUtility funktioniert der Wandler auch ohne Probleme, aber mit dem Arduino tut sich überhaupt nichts. Ich habe am Arduino Pin 3 der seriellen Schnittstelle mit TX1 verbunden und Pin 4 der seriellen Schnittstelle mit GND des Arduino. Prinzipiell bringt der Arduino ja auf der seriellen Schnittstelle im Vergleich zum herkömmlichen Computer nur 5V anstatt 12V. Aufgrund des externen 24V Netzteil für die Speisung des IBIS Wagenbus dürfte dies aber keinen Unterschied machen, zumal ich zwischen Pin 1 und Pin 2 des IBIS Wagenbus auch 24V Ausgangssignal messe. Zum testen habe ich mir ein kurzes Arduino Programm geschrieben, welches als Schleife die Liniennummern 1-9 als Datensatz DS001 senden soll. Das Senden der Daten seitens des Arduino funktioniert auch soweit, welches ich mittels seriellen Monitor kontrolliert habe. Als Einstellung für die serielle Schnittstelle habe ich wie von Cybox beschrieben folgende Konfiguration verwendet: 1200 Baud, 7 Datenbits, 2 Stopbits, Parity even.

Hier ist der Code des Arduino:




void setup() {
// put your setup code here, to run once:
Serial.begin(1200, SERIAL_7O1);
}

void loop() {
// put your main code here, to run repeatedly:
Serial.write("l001");
delay(5000);
Serial.write("l002");
delay(5000);
Serial.write("l003");
delay(5000);
Serial.write("l004");
delay(5000);
Serial.write("l005");
delay(5000);
Serial.write("l006");
delay(5000);
Serial.write("l007");
delay(5000);
Serial.write("l008");
delay(5000);
Serial.write("l009");
delay(5000);
}




Leider tut sich auf der Anzeige gar nichts, da kein korrekter IBIS Datensatz empfangen wird. Ich weiß aber aktuell auch nicht, wo der Fehler liegen könnte?
Hat hier vielleicht jemand eine Idee und könnte mir bei meinem Problem helfen oder hat eventuell schon ein ähnliches Projekt mittels Arduino umgesetzt?

Mit freundlichen Grüßen

Alexander
 
Beitragsbewertung:
     
Thijs van de Bles



Gelehrter
120 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 13 Jul. 2019 21:42


Erstens muss die Parität Einstellung 7E2 sein. Dann gibt es neben der Hardware-Parität auch eine Software-Parität.
Es reicht nicht aus, nur ‘l123‘ zu senden. Sie müssen das Telegramm mit einem ‘Carriage Return‘ und der berechneten Parität über den Inhalt des Telegramms schließen.

[CODE]
String tekst = "";
long randNumber;

void setup() {
Serial.begin(1200, SERIAL_7E2);
}

String addIBISparity(String message){
char check_byte = 0x7F;
for(int x=0; x < tekst.length(); x++){
char byte = tekst.charAt(x);
check_byte = check_byte ^ byte;
}
return message+check_byte;
}


void loop() {
randNumber = random(100, 1000);
tekst = "l";
tekst += String(randNumber);
tekst += "r";

Serial.println(addIBISparity(tekst));
delay(1000);
}
[/CODE]

Dieser Code sendet jede Sekunde eine zufällige Liniennummer zwischen 100 und 999.


Geändert von Thijs van de Bles am 14.Jul.2019 10:23
 
Beitragsbewertung:
     
SeregkaS


Siedler
7 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 14 Jul. 2019 10:59


Может это поможет в

Mezgrman
 
Beitragsbewertung:
     
Omsi-tech


Siedler
48 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 22 Jul. 2019 13:49


Hallo zusammen,

vielen Dank für eure Hilfe. Leider tut sich bei der Anzeige immer noch nichts, mit dem Rechner funktioniert aber alles. Es wird an der Anzeige kein gültiger Datensatz empfangen. Wenn die Software mit dem Arduino soweit richtig erscheint, wird es wohl an der Hardware liegen.

Ich habe die serielle Schnittstelle des Arduino im Verdacht, da diese ja keiner herkömmlichen RS232 Schnittstelle wie am Computer entspricht. Hat hier eventuell schon jemand Erfahrungen mit gemacht?

Mir wurde durch jemanden gesagt, dass bei der seriellen Schnittstelle des Arduino möglicherweise das HIGH und LOW Signal vertauscht sind, was natürlich erklären würde warum kein gültiger Datensatz zu Stande kommt. Ich bin mir aber noch unschlüssig, ob ich in den Wagenbus-Sende-Daten einen Transistor einbauen kann, um das Signal wieder zu invertieren.

Vielleicht kennt jemand von euch das Problem mit dem Arduino oder hat sonst noch eine Idee?

Viele Grüße

Alexander
 
Beitragsbewertung:
     
Mezgrman


Gelehrter
103 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 22 Jul. 2019 14:23




SeregkaS:

Может это поможет в

Mezgrman



There is already , with support for TCP :)
pyIBIS v2
 
Beitragsbewertung:
     
SeregkaS


Siedler
7 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 23 Jul. 2019 08:24


on what board do you spend the experience photo upload
 
Beitragsbewertung:
     
SeregkaS


Siedler
7 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 23 Jul. 2019 21:02



There is already , with support for TCP
Mezgrman You would lay out the schemes to your devices.



Geändert von SeregkaS am 23.Jul.2019 21:04
 
Beitragsbewertung:
     
Mezgrman


Gelehrter
103 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 23 Jul. 2019 21:31




SeregkaS:

[QUOTE] There is already , with support for TCP
Mezgrman You would lay out the schemes to your devices.

[/QUOTE]
Excuse me? I didn‘t understand.
 
Beitragsbewertung:
     
SeregkaS


Siedler
7 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 23 Jul. 2019 21:45


source code, circuit, board,example


Geändert von SeregkaS am 23.Jul.2019 21:50
 
Beitragsbewertung:
     
Mezgrman


Gelehrter
103 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 23 Jul. 2019 21:47




SeregkaS:

source code, circuit, board,


Ah, I only publish the source to my wifi module: https://github.com/Mezgrman/Caracal_Firmware
 
Beitragsbewertung:
     
SeregkaS


Siedler
7 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 23 Jul. 2019 21:52


example
 
Beitragsbewertung:
     
SeregkaS


Siedler
7 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 23 Jul. 2019 21:55


wifi module marking? ESP8266
PIN connection diagram?


Geändert von SeregkaS am 23.Jul.2019 21:57
 
Beitragsbewertung:
     
Mezgrman


Gelehrter
103 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 23 Jul. 2019 21:56




SeregkaS:

wifi module marking?



I‘m sorry, please write full sentences. Also this is getting off-topic.
 
Beitragsbewertung:
     
SeregkaS


Siedler
7 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 23 Jul. 2019 22:08


1. list of elements for assembly
2. connection diagram
3. Photo "video" of the finished device and how it works.
4. instructions for use.
 
Beitragsbewertung:
     
Omsi-tech


Siedler
48 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 15 Aug. 2019 10:48


Hallo zusammen,

vielen Dank an alle die mir bei Fragen zum Projekt geholfen haben. Inzwischen konnte ich alles fertig zusammen fügen und auch noch die Funktion DS003c von Julian implementieren. Somit kann das Gerät nun neben der Liniennummer auch noch die aktuelle Haltestelle als DS003c ausgeben. Auf meinem YouTube Kanal habe ich ein kurzes Video zum Projekt hochgeladen:

www.youtube.com/watch?v=s78QYCZ0TmA

In den nächsten Wochen werde ich auch noch eine Dokumentation zum Projekt schreiben, welche ich auf speziellen Wunsch gerne zur Verfügung stellen kann. Hierfür werde ich aber noch ein bisschen Zeit brauchen.

Viele Grüße

Alexander
 
Beitragsbewertung:
     
Tipfix


Siedler
31 Beiträge

RE: Einfacher Schnittstellenwandler am Arduino betreiben, 04 Jun. 2021 14:08




Thijs van de Bles:

Erstens muss die Parität Einstellung 7E2 sein. Dann gibt es neben der Hardware-Parität auch eine Software-Parität.
Es reicht nicht aus, nur ‘l123‘ zu senden. Sie müssen das Telegramm mit einem ‘Carriage Return‘ und der berechneten Parität über den Inhalt des Telegramms schließen.

[CODE]
String tekst = "";
long randNumber;

void setup() {
Serial.begin(1200, SERIAL_7E2);
}

String addIBISparity(String message){
char check_byte = 0x7F;
for(int x=0; x < tekst.length(); x++){
char byte = tekst.charAt(x);
check_byte = check_byte ^ byte;
}
return message+check_byte;
}


void loop() {
randNumber = random(100, 1000);
tekst = "l";
tekst += String(randNumber);
tekst += "r";

Serial.println(addIBISparity(tekst));
delay(1000);
}
[/CODE]

Dieser Code sendet jede Sekunde eine zufällige Liniennummer zwischen 100 und 999.



Hallo

Ich habe den Sketch mal auf einen Arduino Mega geladen und für die Ausgabe auf Serial1 gelegt.
Der Arduino sendet auch munter vor sich hin.
Ich habe den einfachen Schnittstellenkonverter.



Der obere von beiden. Wenn ich diesen am Rechner betreibe leuchtet die Kontrollled nur wenn er sendet. Am Arduino leuchtet sie ständig und geht nur aus wenn dieser sendet.
 
Beitragsbewertung:
     
Bei ForumRomanum, im Forum suchen nach Einfacher Schnittstellenwandle ...
 




Informationen zum Datenschutz | ForumRomanum - Jetzt kostenlos ein eigenes Forum erstellen!