INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Serielle Komunikation zw. 2 Mega2560
10.02.2014, 14:53
Beitrag #1
Serielle Komunikation zw. 2 Mega2560
Hallo Forum Gemeinde.
Ich bin neu in diesem Forum und auch im Bereich Arduino wenig erfahren. Außerdem sehr alt und daher sehr langsam. Daher bitte ich schon jetzt um Nachsicht bei Fehlern im Umgang mit dem Forum und dem Arduino.
Aber nun zu meinem Problem:
Für mein Hausprojekt habe ich einen Mega2560 mit 16fach Relaisshield und RS485
(wg. Leitungsweg) (genannt Master) bestückt. In der Testphase ist noch ein Protoboard mit div. Schaltern und LED's aufgesteckt.
Der zweite Mega2560 (Slave) ist mit Touchscreen (Auflösung 320 x 200) und RS485 versehen. Grundsätzlich funktioniert eigentlich alles, bis auf das Ärgernis des seriellen Telegramms. Auf beiden Mega2560 verwende ich die Anschlüsse
19 (RX1) und 18 (TX1). Nach dem Uploaden funktioniert der Telegramverkehr für ca. 1-2 min. richtig, dann aber kommen mehr und mehr ungültige Inhalte.

Ausschnitt Code für Verbindung (Master)
Serial1.begin(1200);
Serial1.write (hour);
Serial1.write (minute);
Serial1.write (LDR_stat);
Serial1.write (ATemp);
Serial1.write (ITemp);
//Serial1.write ('\n');
delay(1000);
Serial1.end();

Ausschnitt Code für Verbindung (Slave)
if (Serial1.available() >= 0)
{
Serial1.flush();
hour = Serial1.read();
minute = Serial1.read();
LDR_stat = Serial1.read();
ATemp = Serial1.read();
ITemp = Serial1.read();
delay(1000);

Für eine Auskunft bzw. sogar Hilfe würde ich mich außerordentlich freuen.

Mit freundlichen Grüssen
Martin Huh
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.02.2014, 18:27 (Dieser Beitrag wurde zuletzt bearbeitet: 14.02.2014 18:28 von rkuehle.)
Beitrag #2
RE: Serielle Komunikation zw. 2 Mega2560
Hallo Martin,
hast du dafür gesorgt, dass beide Arduinos über eine gemeinsame Ground-Verbindung verfügen?
Beide Arduinos sollten auch die gleiche Baudrate auf den seriellen Ports benutzen.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.02.2014, 23:46
Beitrag #3
RE: Serielle Komunikation zw. 2 Mega2560
(10.02.2014 14:53)OldMan schrieb:  ........
Nach dem Uploaden funktioniert der Telegramverkehr für ca. 1-2 min. richtig, dann aber kommen mehr und mehr ungültige Inhalte.

Ausschnitt Code für Verbindung (Master)
Serial1.begin(1200);
Serial1.write (hour);
Serial1.write (minute);
Serial1.write (LDR_stat);
Serial1.write (ATemp);
Serial1.write (ITemp);
//Serial1.write ('\n');
delay(1000);
Serial1.end();

Ausschnitt Code für Verbindung (Slave)
if (Serial1.available() >= 0)
{
Serial1.flush();
hour = Serial1.read();
minute = Serial1.read();
LDR_stat = Serial1.read();
ATemp = Serial1.read();
ITemp = Serial1.read();
delay(1000);

Für eine Auskunft bzw. sogar Hilfe würde ich mich außerordentlich freuen.

Mit freundlichen Grüssen
Martin Huh

Hallo Martin,
also erst mal stellt sich die Frage wo Ricardo schon gestellt hat mit der Masse und die Frage wo deine RS485 Treiber sind...die haste doch wohl an der Seriellen Nr. 1 dran...
Zum Code, also bei deinem Master wundert mich das du das Serial1.begin wohl in der Loop() drin hast und nicht nur im setup() und ein Serial.end habe ich auch noch nie wo gesehen...
Was aber deine Kommunikation aus dem Tritt bringen könnte ist das delay(1000) beim Slave Code weil das Delay brauchst hier gar nicht weil du ja eh auf den Empfang von einem Zeichen wartest mit Serial1.aviable
Und nach dem Empfang abwarten den Buffer leeren mit Serial1.flush() kann ich auch nicht wirklich nachvollziehen....
Was aber sicherlich auch sinnvoll wäre wenn du ein Protokoll entwickelst wo du z.B. bei einem von den Nutzdaten nicht verwendeten Zeichen deinen Empfangsteil Synchronisierst damit die Daten wo Empfangen werden auch richtig zugeordnet werden.
Das sind so meine Gedanken bei dem Thema.
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.02.2014, 13:04
Beitrag #4
RE: Serielle Komunikation zw. 2 Mega2560
Vielen Dank für eure Bemühungen.
Aber wir können das Thema als erledigt betrachten. Mit Hilfe von EasyTransfer läuft meine Datenübertragung zwischenzeitlich problemlos und sehr stabil. RS485 sogar über 200m.
Nun zu meinen wenigen Erkenntnissen: GND war vorhanden, ist jetzt mit der RS485-Verbindung nicht mehr vorhanden. Serial1 wird nach wie vor noch benutzt. Ich hatte es auch mit den Steuerzeichen STX und ETX versucht aber der Mißerfolg blieb. Vermutung, das Interrupts das Problem verursachten verdichtete sich. Aber EasyTransfer war der Heiler.

Also, nochmals vielen Dank
Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 180 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Serielle Schnittstelle - Daten empfangen Datatom 8 774 22.05.2016 18:10
Letzter Beitrag: avoid
  Arduino MEGA2560 Timer PWM Einsteiger94 3 656 04.04.2016 10:38
Letzter Beitrag: RMR
  "WORT" über die serielle Schnittstelle auslesen hannes77 1 521 08.03.2016 12:13
Letzter Beitrag: Binatone
  SainSmart 5" TFT LCD Display + 5" TFT/SD Shield Kit Für Arduino Mega2560 R3 Falk84 14 1.238 19.02.2016 08:48
Letzter Beitrag: arduinopeter
  SPI-RAM 4x128 KB am MEGA2560 anschliessen arduinofan 7 481 22.01.2016 14:33
Letzter Beitrag: arduinofan
  image menu navi für mega2560 mit tft-lcd ArduTux 3 410 16.01.2016 15:52
Letzter Beitrag: arduinofan
  I ch brauche mehrere SDA und SCL am MEGA2560 arduinofan 5 752 10.01.2016 21:15
Letzter Beitrag: arduinofan
  Softserial nach Serial1 für den MEGA2560 umsetzen. arduinofan 2 423 27.12.2015 18:40
Letzter Beitrag: arduinofan
  Ankommende Daten(Webserver) am MEGA2560 für eine Aktion auswerten ? arduinofan 0 481 11.12.2015 09:06
Letzter Beitrag: arduinofan

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste