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 Schnittstelle lesen - merkwürdiges Problem
10.12.2014, 22:34
Beitrag #1
Serielle Schnittstelle lesen - merkwürdiges Problem
Hallo Community, ich habe ein merkwürdiges Problem bei der Kommunikation zwischen C++ (Linux) und Arduino.

Auf dem Arduino läuft folgender Code aus diesem Beispiel:
http://arduino.cc/en/Serial/read

Auf dem PC läuft dieser Code:
Https://github.com/THOMAS-Projekt/THOMAS...inoCom.cpp

Leider bekomme ich am PC keine Antwort. Er wartet nur.
Ich vermute es liegt an der Zeile:
Serial.availiable()

Sobald am in der Arduino IDE den Seriel Monitor öffne klappt es plötzlich?! Wieso?

Gibts eine alternative zu availiable?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.12.2014, 07:26
Beitrag #2
RE: Serielle Schnittstelle lesen - merkwürdiges Problem
Hallo Waishon,

die Antwort liegt schon in der Frage:
Serial.available() fragt RX0/TX0, also die Standardports ab. Wenn du den Monitor öffnest ist available() true - die Kommunikation läuft.
Alternativen:
1. Wenn du einen Mega hast benutze für die Kommunikation zum PC die Serial1,2 oder 3 - Ports und frage diese mit available() ab.
2. Wenn du einen Uno hast (oder eben Ardu's die nur einen RX/TX haben) benutze die SoftSerial-Lib und weise "Ersatzports" zu.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.12.2014, 09:56
Beitrag #3
RE: Serielle Schnittstelle lesen - merkwürdiges Problem
Hi,
ich habe mir den PC-Code nicht angeschaut, aber sendest Du auch was vom PC? Das read-Beispiel auf dem Arduino wartet ja erstmal, bis was reinkommt. Wenn der PC nichts sendet, dann kommt auch nichts rein. Schreib' für den Arduino mal einen Sketch, der einfach nur einmal pro Sekunde ein "Hallo" sendet. Probier das mit dem seriellen Monitor und dann mit Deinem PC-Programm aus.
Jetzt habe ich mir doch mal den PC-Code angeschaut. Das kann ja nicht alles sein, da fehlt das Hauptprogramm, oder?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.12.2014, 13:37
Beitrag #4
RE: Serielle Schnittstelle lesen - merkwürdiges Problem
Ne das ist nur die Kommunikation, der Rest ist aber auch auf Github (siehe ArduinoProtocol.cpp)

Ich habe eine Vermutung:
Wenn ich in C++ mit open() den Serial Port öffne startet doch der Arduino neu oder? Da das Programm allerdings sofort sendet ist der Arduino noch nicht gestartet und dann ist es doch kein Wunder, dass er nichts empfängt, oder?

Ja wir nutzen einen Mega. Was ist denn der unterschied/besser wenn man Serial1 etc nutzt? Es erfolgt ja über USB
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.12.2014, 15:37
Beitrag #5
RE: Serielle Schnittstelle lesen - merkwürdiges Problem
Hi,
dann baue doch einfach mal ein bisschen Wartezeit in Dein PC-Programm ein. Dann müsste man ja sehen, was los ist.
Bei normalen Arduinos (Uno, Nano etc.) ist die Verwendung von Hardware Serial (USB) für sowas oft ein bisschen schwierig. Man nimmt sich damit sozusagen den "Debug-Ausweg" weg. (...und hat das Problem mit dem Reset.) Besser ist da SoftwareSerial oder halt ein Mega, der hat mehrere Hardware Serials, was weniger auf die Performance geht. Das ist dann halt kein USB-Port mehr. Für USB braucht man dann einen extra FTDI. Ich denke, dass Serial1 etc. keinen Reset macht.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.12.2014, 15:46
Beitrag #6
RE: Serielle Schnittstelle lesen - merkwürdiges Problem
Also der FTDI mit dem Serial Port 1-3 wäre eine gute alternative.

Hat einer Erfahrung oder kann testen ob es dann nicht zu restart kommt?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.12.2014, 08:47 (Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2014 08:54 von Corvus.)
Beitrag #7
RE: Serielle Schnittstelle lesen - merkwürdiges Problem
Den Auto-Reset des Arduino kannst du z. B. mit einem Kondensator zwischen GND und RST verhindern. Eine Kapazität von 10μF sollten reichen, eine höhere Kapazität kann aber auch nicht schaden.
gruß lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 317 22.08.2017 15:17
Letzter Beitrag: Tommy56
  Problem mit LSM 303 Snörb 1 236 22.08.2017 14:16
Letzter Beitrag: Snörb
  Problem mit externem Interrupt manfred474 13 925 13.08.2017 08:54
Letzter Beitrag: MicroBahner
  Problem mit Klassen GuaAck 4 360 09.08.2017 09:28
Letzter Beitrag: MicroBahner
Question Problem mit TFT Sam217 8 681 20.07.2017 21:51
Letzter Beitrag: hotsystems
  RS485 Modbus lesen und Ladegerät regeln Stromsparer 18 1.860 18.07.2017 19:09
Letzter Beitrag: Binary1
  Problem FastLED fliege_m 3 447 16.07.2017 16:56
Letzter Beitrag: Tommy56
  Fragen :serielle eingabe und Externe Interrupts Treeshort 7 438 02.06.2017 16:52
Letzter Beitrag: MicroBahner
  2 Arduinos Serielle Übertragung mit SPI RFID Kit OE5AMP 18 1.020 05.05.2017 20:46
Letzter Beitrag: OE5AMP
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 1.315 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt

Gehe zu:


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