2 serielle Schnittstellen --> Ausgabe auf Knopfdruck

Hallo,
ich habe selbst noch nie mit einem Arduino gearbeitet, habe aber ein Grundwissen programmieren. Deshalb kam ich bei Recherchen auf den Arduino um ein Problem mit der Weitergabe von seriellen Daten zu lösen.
Ich habe einen Rechner aus dem über die serielle Schnittstelle folgende Ausgabe geschieht:
image
Das Format ist immer gleich es ändern sich maximal die Zahlen.

Die Gegenstelle schafft es aber nicht verlässlich immer zuzuhören. Meine Idee ist, die zuletzt gesendeten Daten zu speichern und dann auf Knopfdruck auf der zweiten seriellen Schnittstelle auszugeben.
Ist das im Prinzip mit einem Arduino machbar und hat jemand vielleicht einen Tipp wie ich am besten vorgehe.
Ich bin für jede Nachfrage oder für jeden Tipp dankbar.
Gruß Tobi

Ihr Beitrag wurde an seinen aktuellen Speicherort verschoben, da er besser geeignet ist.

Natürlich!

Genau so, wie du es beschrieben hast.
Welches konkrete Problem plagt dich?

Ach schick.. Nen CNC.

Ja. Und ja.
Zwischenfragen:
Wie schnell kommen die Daten? 9600?
Und welches Level? RS232 oder schon TTL?

Du kannst das mit nem kleinen Nano bauen, mit einer Softwareserial-Schnittstelle.
Sicherer ist es mit einem MEGA, der hat von haus aus mehrere Hardwareserial.

Programmtechnisch keine Herausforderung.
Auf dem EmfängerPort lauschen, was an Zeichen kommt und in einen Zwischenpuffer schreiben bis %.
Dann in den Sendepuffer schreiben und der wartet auf den Tastendruck - oder auf einen neuen Zwischenpuffer.

Es fehlen ein paar wichtige Informationen wie Datenrate usw. für eine genaue Beurteilung, aber grundsätzlich ja. Praktisch wäre eine Hardware mit zwei UARTs. Und dann stellt sich die Frage nach den Spannungen an Deinem Rechner, also RS232 mit ±12 V oder 5 V oder ...

Welche Rolle spielt Geld? Als Bastler bin ich sparsam, bei einer Firma kommt es auf einen Euro nicht an, die Softwareentwicklung ist viel teurer.

Sorry Leute, habe die vorhergehenden Antworten nicht gesehen, war ja schon alles geschrieben :roll_eyes:

Hi schonmal vielen Dank für die schnelle Reaktionen auf die Frage.
In beiden Fällen ist es eine klassische RS232 Schnittstelle.
Somit würde ich für die beiden Schnittstellen vermutlich noch einen Umsetzer benötigen.
Da ich jetzt zumindest die Info habe das es geht (und sogar mit überschaubarem Aufwand) werde ich mir mal einen Satz Hardware bestellen und doch in die Programmierung abtauchen.

Ja.

Mega2560 mit mehreren UARTs.

Ja?

Die Salami!
Scheibchen für Scheibchen....

Mit der neuen Information gehe ich davon aus, dass ein Hardwarehandshake verwendet wird.
Also, dass das Ziel, der Quelle, durchaus zu verstehen geben will, dass gerade keiner zuhört.
Nur, dass eben wirklich keiner ein Ohr dafür hat.

Also, meine Glaskugel behauptet:
Ein Problem mit dem Kabel. z.B. Falsche oder fehlende Brücken.

Hi combie,
tatsächlich kann der Empfänger nicht dauerhaft zuhören. Etwas älteres Maschinchen. Deshalb dieser Workaround.

Noch nen Heckert-Berabeitungszentrum? :slight_smile:

Ist eigentlich ziemlich 'oversized'. Da die Übertragung nach meinem Verständnis nur in eine Richtung geht, reicht eine freie UART Schnittstelle aus. (Rx: Empfangen vom Rechner, TX: senden an das Empfangsgerät). Es ist ja nicht so das Rx/Tx einer Schnittstelle zwangsweise mit der gleichen Gegenstelle verbunden werden müssen :wink: Zumindest war von Software-Handshake bisher keine Rede.

Und dann reicht für diesen Zweck ein Leonardo oder (pro) Micro aus. Da bei diesen Arduinos ein nativer USB-Anschluß für den PC vorhanden ist, ist die serielle Schnittstelle an Pin 0/1 frei verfügbar.

Das habe ich schon verstanden!

Dann wird klassischer weise Hardware Handshake verwendet.

Darum könnte dieser Workaround ein Irrtum/Unnötig sein.

Da stimme ich Dir zu, ich nenne das mal die minimalistische Variante. Wäre dies mein Projekt, würde ich Dir herzlich für diese Anregung danken.

Wenn ich aber nun die Unerfahrenheit des Themenstellers mit den berechtigten "Anmerkungen" von @combie mische, lande ich wieder bei der von mir bevorzugten Vorgehensweise: Beim Mega2560 mit Serial1 empfangen, mit Serial2 senden und mir den Datenverkehr per USB anzeigen lassen. Wenn es dann mal läuft, kann man immer noch überlegen, es auf eine andere Hardware zu schrumpfen. Das hängt dann auch vom möglicherweise vorhandenen Hardwarehandshake ab.

Mein Mega2560 hat mir mit seinen UARTs schon manchen guten Dienst erwiesen.

Das Vorhandensein, kann man mit ein paar LEDs o.ä. locker überprüfen.

Wozu?
Er ist doch da.
Klassischerweise.

Merksatz:
-> Manche Annahmen sind so dermaßen falsch,
-> dass noch nicht einmal das Gegenteil richtig ist.

#8 #12
Ich finde es schade, das Du auf den TO eindrischst und das jetzt versuchst zu verharmlosen.
Aber nu; so sei es.

Du bist ja voll witzig....
Vielleicht solltest du mal dein Emotionsbarometer neu kalibrieren.

Ich habe noch eines!

Ich lese dies:

Da stellt sich mir die Frage, wie das festgestellt wird und was die Ursache sein könnte. Dazu habe ich noch keine zufriedenstellenden Informationen gelesen. Auch das "etwas ältere Maschinchen" sollte eine zuverlässige Kommunikation hinbekommen, möglicherweise auch mittels Hardwarehandshake und der Information "bin beschäftigt". Diese Information könnte der Arduino auswerten und gesendete Informationen bis zur Freigabe zwischenspeichern und danach automatisch, also ohne Knopfdruck, weiterleiten.

Ob sich der Themensteller mit dieser Möglichkeit beschäftigen möchte, bleibt natürlich ihm überlassen, hinweisen sollte man ihn aber darauf.

Ein lange nicht genutztes Testgerät aus meinem Fundus:

@to-bi-smart: Eventuell gibt es jemanden in Deinem Umfeld, der so ein Testgerät hat und auch bedienen kann, um eine Analyse durchführen zu können.

1 Like