Zwei verschiedene Ports über eine Schnittstelle kommuniezieren ?

Ist es möglich, vom Computer aus zwei Ports zu öffnen und über einen Arduino separat zu kommunizieren ?

Zum Beispiel…
Ich öffne zwei Ports am Computer und schicke zwei verschiedene Nachrichten an einen Arduino, kann der Arduino zwei verschiedene Nachrichten separat empfangen über eine Schnittstelle, ist sowas möglich ?

Mit freundlichen Grüßen

Da müsstest Du mal erklären, was Du mit "Ports" meinst und welchen Arduino Du benutzen willst.

Falls Du 2 Mal COM (USB) meinst - unter Umständen, aber nicht an der gleichen Seriellen Schnittstelle vom Arduino.
Über Netzwerk ist mehr möglich.

Sollen die 2 "Ports" am gleichen PC sein? Welchen Sinn soill das haben?

Gruß Tommy

Es gibt auch Arduino mit mehreren seriellen Hardware Schnittstellen. Man kann auch eine Hardware Schnittstelle nehmen und eine zweite in Software emulieren.

Aber sage eben was du genau vorhast. So ziemlich der einzige Zweck davon wäre das zwei getrennte Programme mit dem Arduino kommunizieren

Ich habe sechs Nanochips mit jeweils einen HC12-Modul bestückt.
Jetzt senden die sechs Nanochips an eine Arduino Mega 2560 Werte.
Da es leider zu Überschneidungen der Nachrichten kommt oder zum verlangsamten auslesen der Werte,
habe ich mir gedacht, das man den Mega auch nochmal mit sechs HC12-Module versieht und die separat mit verschiedenen Kanäle senden lässt und von Mega wieder separat zu den Computer übertragen lässt.
Nur ist das Problem, das mein Programm auf den Computer nebenbei befehle an die Nanochips sendet und es dann wieder zur Überschneidungen kommt oder ein verlangsamtes auslesen.

Deswegen wollte ich wissen, ob es nicht möglich wäre über die eine Serielle Schnittstelle vom Mega zum Computer eine mehrfach Verbindung zu öffnen ?

Ich hoffe, man versteht was ich meine

Eine normale serielle Schnittstelle ist Punkt to Punkt. Für Bus-Systeme gibt es andere Schnittstellen

Der Mega hat aber vier serielle Hardware Schnittstellen. Du brauchst für die anderen nur einen TTL/USB-Konverter (oder evtl. RS232)

Was verstehst du unter "Nanochips" ?

Und wenn das bei dir alles so zeitkritisch ist, solltest du das mal überdenken und auf Funk komplett verzichten.

Serenifly:
Eine normale serielle Schnittstelle ist Punkt to Punkt. Für Bus-Systeme gibt es andere Schnittstellen

Der Mega hat aber vier serielle Hardware Schnittstellen. Du brauchst für die anderen nur einen TTL/USB-Konverter (oder evtl. RS232)

Gibt es von Arduino ein Board was sechs serielle Hardware Schnittstellen besitzt ?
Dann würde es nämlich wie du es gerade beschrieben hast, mit den TTL/USB-Konverter super funktionieren.

ChrisGP:
Gibt es von Arduino ein Board was sechs serielle Hardware Schnittstellen besitzt ?
Dann würde es nämlich wie du es gerade beschrieben hast, mit den TTL/USB-Konverter super funktionieren.

Nein gibt es nicht.
Der Mega mit 4 (3+1) ist der einzige mir bekannte.

Allerdings einfach mal die Frage, was willst du damit erreichen.

Ich sehe in deinem Konstrukt einen Entwicklungsfehler.
Oder beschreibe mal besser, was das soll.

Hallo,

Glaskugelmode = ON

Um das vielleicht aufzudrösseln. Ich nehme an mit Nanochips sind Arduino Nano Boards gemeint. Alle mit HC12 bestückt. Diese senden aktuell alle wild drauflos und müllen den einen Mega mit Daten zu. Klassisches Kommunikationsproblem. Ein Mann wird von 6 Frauen zeitgleich zugequatscht. Ich würde abhauen.
@ TO: Problem erkannt?

Der Mega muss reihum die Nanos abfragen die daraufhin ihre aktuellen Werte an ihn senden.
Dafür ist zwingend ein Protokoll notwendig.

Glaskugelmode = OFF

Ist schon gut, wenn man eine Glaskugel zur Verfügung hat.

Ich habe einfach erwartet, dass der TO uns bessere Informationen liefert.
Aber evtl. sind unsere Fragen auch zu kompliziert.

Das Problem habe ich schon erkannt, ich habe nur gedacht, das es vielleicht eine andere Lösung für das Problem geben würde.

Ich habe mal ein paar Bilder angehangen, für das bessere Verständnis :wink:

Ps. Das Programm funktioniert einwandfrei, ich wollte nur die Kommunikation-Geschwindigkeit erhöhen.

Hm, wenn das so aussieht, wie von der Glaskugel beschrieben, wird man zwischen PC und Mega ein Protokoll brauchen, dass die Daten verpackt in Botschaften wie "das ist von Nano1" oder "das ist für Nano3".

Zusätzliche serielle Schnittstellen kann man über SPI anbinden. Die nötigen Chips sind wahrscheinlich alle SMD.

Die Schnittstelle zum PC ist natürlich ein Flaschenhals. Weil da die Daten von allen sechs anderen Schnittstellen rüber müssten.

Ansonsten: Der Teensy 3.6 hat sechs Hardware-Serial, die USB-Serial läuft mit 12 MBit/s. Der Teensy 4.0 hat sieben Hardware-Serial, die USB-Serial läuft mit 480 MBit/s. Beide sind aber 3,3 V Controller, nicht 5 V tolerant.

ChrisGP:
Ich habe sechs Nanochips mit jeweils einen HC12-Modul bestückt.
Jetzt senden die sechs Nanochips an eine Arduino Mega 2560 Werte.
Da es leider zu Überschneidungen der Nachrichten kommt oder zum verlangsamten auslesen der Werte,
habe ich mir gedacht, das man den Mega auch nochmal mit sechs HC12-Module versieht und die separat mit verschiedenen Kanäle senden lässt und von Mega wieder separat zu den Computer übertragen lässt.
Nur ist das Problem, das mein Programm auf den Computer nebenbei befehle an die Nanochips sendet und es dann wieder zur Überschneidungen kommt oder ein verlangsamtes auslesen.

Es beißen sich nicht bereits die 6 HC12? oder können diese Sendekonflickte erkennen und beheben?
Falls die sich nicht beißen mußt der Mega die Datensendung der NANOs erbittten ( Master-Slave-Betrieb)

Grüße Uwe

Es beißen sich nicht bereits die 6 HC12?

Natürlich.

Ist wie beim CB Funk... immer nur einer darf senden.
Es ist ein Protokoll von Nöten, irgendeine Form von Master Slave, Zeitscheiben Verfahren, was auch immer.

Das kann nicht durch mehrere Transceiver ersetzt werden.
Außerdem beteilige ich mich üblicher Weise nicht an Fernzünder/Sprengdingen

uwefed:
Es beißen sich nicht bereits die 6 HC12? oder können diese Sendekonflickte erkennen und beheben?
Falls die sich nicht beißen mußt der Mega die Datensendung der NANOs erbittten ( Master-Slave-Betrieb)

Grüße Uwe

Sie senden nacheinander, es klappt auch einwandfrei, leider ist die Kommunikations-Geschwindigkeit vom Mega sehr langsam, die Verarbeitung auf den Mega und das weiterleiten dauert etwas, dadurch ist fast Zeitgleiches zünden unmöglich, im Moment ist 1 1/2 Sekunden unterschied bis zur nächsten Zündung.

Ich würde das gerne echt verkürzt bekommen.

Zur not, werde ich einen neuen Abschnitt schreiben, der das erkennen der zeitgleichen Zündungen registriert und in ein Packet verpackt und übermittelt, somit wäre das zeitgleiche Zünden möglich aber die Verarbeitungsgeschwindigkeit von Mega würde dann immer noch 1 1/2 Sekunden dauern....

ChrisGP:
im Moment ist 1 1/2 Sekunden unterschied bis zur nächsten Zündung.

Ich würde das gerne echt verkürzt bekommen.

Mit welcher Baudrate fährst Du die seriellen Anbindungen (besonders der HC12)? Ich denke, dass eher dort oder in ungünstiger Programmierung / Konzeption der Flaschenhals steckt.

Gruß Tommy

ChrisGP:
.... dann immer noch 1 1/2 Sekunden dauern....

Dann machst du irgendwas verkehrt.

Hallo,

ich hatte ehrlich gesagt auch mehr Informationen erwartet.
6x fast die gleichen Bilder sind keine hilfreichen Informationen.

Wie senden die Nanos nacheinander?
Woher wissen diese voneinander wann der Nächste senden darf?
Was muss man unter "Sprengung" verstehen? Bist du im Libanon unterwegs?

ChrisGP:
leider ist die Kommunikations-Geschwindigkeit vom Mega sehr langsam

Was ist denn deine Baudrate? Und wie viele Daten sendest du so? Der Mega kann auch mit 500.000 Baud laufen.

Ein Byte braucht 1 / Baudrate * 10 Sekunden. Bei 9600 Baud sind das ca. 1ms. Bei 500k nur 20µs

Die serielle Schnittstelle ist generell recht langsam, ja. Der Mega Arduino mit seinen nur 16MHz ist da aber nicht wirklich schuldig