PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 Arduino-Boards via RS232 verbinden



probot32
18.10.2015, 20:19
Guten Abend,
Ich sitze seit geraumer Zeit hier mit zwei Arduino Mega2560 Boards und zwei TTL zu RS232 sowie zwei RS232 zu RS242-Adaptern.
Ich möchte beide Boards miteinander kommunizieren lassen können, wobei sich diese letztendlich etwa 100 Meter voneinander entfernt verbaut werden sollen.
Über die Adapter wird der entsprechende Pegel von 24V erreicht, so, dass das signal auf der langen Leitung nicht verloren geht.
Die RS242-Wandler wurden bereits erfolgreich mit einem Raspberry Pi und einem Laptop getestet, das klappt alles wunderbar.
Mein Problem sind die TTL zu RS232-Wandler am Arduino-Board:
http://www.lightinthebox.com/de/rs232-serial-port-zum-ttl-konverter-modul-fuer-arduino-mit-sende-und-empfangs-indicator_p1141433.html
Der eine Wandler ist für Testzwecke folgendermaßen zwischen meinen PC und dem Arduino-Board geschalten, ich bekomme jedoch keine Übertragung zustande:
Arduino Board -> TTL-RS232-Wandler -> Null-Modem-Kabel -> LogiLink-RS232-USB-Wandler -> USB-Kabel -> PC
Das Wandler Board ist folgendermaßen mit dem Arduino-Board verbunden:

1. VCC -> +5V
2. RXD -> Pin 2
3. TXD -> Pin 3
4. GND -> GND

Für das Arduino-Board habe ich folgendes Testprogramm geschrieben:

#include <SoftwareSerial.h>


const int rxpin = 2; // Empfangspin
const int txpin = 3; // Sendepin
SoftwareSerial rs232(rxpin,txpin); // RX, TX

void setup()
{
Serial.begin(9600); // USB-Verbindung
rs232.begin(9600); // RS232-TTL Wandler
}

void loop()
{
rs232.write('H'); // Zeichen via USB senden
Serial.write('H'); // Zeichen via rs232 senden
delay(200);
}

Das Programm iauf dem Arduino-Board sendet 5x pro Sekunde den Buchstaben 'H' über die USB-Verbindung sowie via Serielle Schnittstelle an den PC,
Ich habe zwei Terminal-Fenster offen, es kommt jedoch nur auf dem USB-Kabel ein Signal vom Board am PC an.

Ich habe schon so einiges versucht, langsam weiß ich nicht mehr, was noch falsch sein könnte.
Hier einige Dinge, die es nicht sind:
1. Das USB-Kabel
2. Der RS232-zu-USB-Wandler am PC
3. Das RS232-Kabel
4. Die Pins am Controler
5. Nicht genug Leistung bei der Stromversorgung
6. Ich habe auch schon testweise einen zweiten TTL-RS232-Wandler verwendet, doch dieser erziehlte auch kein besseres Ergebnis

Woran könnte es dann noch liegen? :eek:
Ist das Null-Modem-Label richtig? :rolleyes:
Gibt es eventuell schon irgendwo ein Tutorial zu diesem Adapter? (Ich fand bisher leider nichts Passendes) :cool:
Ist die Software richtig? :confused:

Ich bedanke mich schon mal im Vorraus für deinen Lösungsansatz. ;)

HaWe
19.10.2015, 10:18
Zur Fehlereingrenzung:
ich habe hier ein eigenes Serial-Kommunikationsprogramm zwischen 2 Arduinos. Einfach RX/TX über Kreuz verbinden. Am besten erst den Slave starten, dann den Master.
Wenn die Kabel-Kurzstrecke funktioniert, kannst du ja über deine Konverter anschließend die Langstrecke versuchen.

HTH!

http://www.mindstormsforum.de/viewtopic.php?f=78&t=8491&start=15#p67556

inka
23.10.2015, 14:43
hallo HaWe,

ich beschäftige mich auch mit der seriellen komunikation zwischen zwei arduinos bzw. zwischen einem arduino und dem RP6. In den beispielen bei dem mindstormforum ist z.b. die datei "UTFTQD.h" includiert. ohne die geht das kompilieren nicht und meine versuche sie zu finden blieben leider erfolglos...

wo finde ich die?

danke...

HaWe
23.10.2015, 19:21
das ist eine gepatchte UTFT Datei für ein chinesisches ILI9225 Display (Typ QD220).
Um sie von der originalen zu unterscheiden, habe ich sie umbenannt.
Du kannst sie durch UTFT ersetzen, wenn du willst, oder auch alles davon komplett rauslöschen, das ist aber wschl etwas mehr Arbeit.
UTFT erhältst du hier:
http://www.rinkydinkelectronics.com/library.php?id=51

Bei den Arduinos kocht da leider jeder für sein eigenes Display sein eigenes Syntax-Süppchen, nix passt da zum andern, ein echtes Ärgernis.