Kommunikation zwischen 2 Arduinos?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Über die Seriellen Pins TXD und RXD

Wenn du Leitungen verwenden willst dann die über Kreuz verbinden und den GND der beiden verbinden.

Du kannst dir auch zwei Funkmodule besorgen die du dann mit jeweils RXD/TXD verbindest und darüber drahtlos kommunizieren.


David1711784 
Beitragsersteller
 17.09.2021, 22:48

Würde das nicht die USB Verbindung des Leonardos stören? Dieser ist nämlich auch dauerhaft an einem PC angeschlossen.

communicator9  17.09.2021, 22:58
@David1711784

Gibt im Netz und auf YouTube ganzen Haufen Tutorials wie man das macht.

Wenn du die beiden mit einer längeren Leitung verbinden möchtest dann setz die Signale mit zwei MAX232 auf RS232 Pegel um, das ist Störsicherer.

David1711784 
Beitragsersteller
 17.09.2021, 23:03
@communicator9

Ich schreibe grade schon den Code um.
die Arduinos sind direkt nebeneinander also sollte Störung kein großes Problem sein aber sollte es doch Störungen geben werde ich mir das mal im Kopf behalten

RareDevil  18.09.2021, 09:54
@communicator9

Falsch. Die USB vom Arduino greift auf die Rx und Tx ( PIN 0 und 1 ) zu. Entweder extern oder per USB. Beides geht nicht, außer der Arduino hat eine zweite serielle Schnittstelle. Haben aber die beiden nicht. Lösung wäre Softwareseriell per Library einbinden und andere Pins nutzen.

communicator9  18.09.2021, 17:07
@communicator9

Ich hab mir das heute nochmal angeschaut - beim Nano und Leonardo steht wirklich nur eine UART zur Verfügung, die für USB verwendet wird.

Ich habe bisher nur den Mega verwendet und da ist das anders, da stehen mehrere UART´s unabhängig von USB zur Verfügung.

Ich möchte mich dafür bei dir entschuldigen dass ich so einem Schmarrn erzählt habe. Hoffentlich hast du dir nicht schon zu viel Arbeit gemacht.

Wie schon hier kommentiert wäre eine Lösung Softwareseriell per Library einbinden und andere Pins zu nutzen. Im Netz sollte eine solche Softwarelibrary zu finden sein.

Oder eben I2C oder SPI.

communicator9  18.09.2021, 17:09
@David1711784

Ich hab mir das heute nochmal angeschaut - beim Nano und Leonardo steht wirklich nur eine UART zur Verfügung, die für USB verwendet wird.

Ich habe bisher nur den Mega verwendet und da ist das anders, da stehen mehrere UART´s unabhängig von USB zur Verfügung.

Ich möchte mich dafür bei dir entschuldigen dass ich so einem Schmarrn erzählt habe. Hoffentlich hast du dir nicht schon zu viel Arbeit gemacht.

Wie schon hier kommentiert wäre eine Lösung Softwareseriell per Library einbinden und andere Pins zu nutzen. Im Netz sollte eine solche Softwarelibrary zu finden sein.

Oder eben I2C oder SPI.

David1711784 
Beitragsersteller
 20.09.2021, 23:20
@communicator9

Ich habe tatsächlich nachdem ich bemerkt habe dass es nicht funktioniert in einem Discord nachgefragt und jetzt benutze ich tatsächlich Software Serial und es funktioniert ich habe zwar noch ein Problem mit der SD karte aber das sollte auch nicht zu schwer werden.

communicator9  21.09.2021, 02:56
@David1711784

Dann bin ich ja froh dass es funktioniert. Die SD Card sollte über SPI eigentlich kein Problem sein. Du musst nur beachten dass die SD Card mit 3,3V versorgt wird, man braucht also einen Spannungsregler (LDO) 5V/3,3V.

Die Pegel der Schnittstelle musst du natürlich auch wandeln. Manche machen das mit Widerstands Spannungsteilern, das ist aber nicht empefehlenswert.

Besser ist es einen richtigen Pegelwandler zu benutzen, ich benutze den MAX3392E damit wandelst du MOSI (DO), CLK und CS von den 5V Arduino Pegel auf die 3,3V Pegel der SD Card. Und den MISO (DI) wandelst du von dem 3,3V Pegel der SD Card auf den 5V Pegel des Arduino.

Gibt aber schon fertige SD Cardreader Baugruppen für den Arduino zu kaufen, die den Spannungsregler und den Pegelwandler schon drauf haben. Aber hier drauf achten, dass es wirklich ein Pegelwandler IC ist und nicht nur Widerstands Spannugsteiler.

SD Cardreader haben normalerweise auch einen Schaltkontakt um festzustellen ob die Card richtig gesteckt ist, den Kontakt kannst du ganz normal mit 5V I/O Pin einlesen, der hat keine Verbindung zur SD Card.

Je nach SD Card musst du FAT16 oder FAT32 Formatieren.

David1711784 
Beitragsersteller
 23.09.2021, 20:29
@communicator9

Ich verwende ein sd carden modul was schon das ganze installiert hat
Und das "Problem" mit der SD Karte war nur meine Dummheit zu vergessen myFile.open(); hinzuschreiben. Das Projekt ist also fertig und funktioniert einwandfrei.

ganz easy: mit Serial.

TX->RX

RX->TX

GND->GND

schon könne die beiden (und nur diese beiden) mit derselben baudrate unterhalten :)

Verkabelung:

Leonardo       Nano
  GND    <-->   GND
   TX    <-->   RX
   RX    <-->   TX

Dann kannst du mit der Serial-Klasse arbeiten.