Es gibt nicht den einen Arduino, sondern sehr, sehr viele. Mit SoftwareSerial kannst Du die meisten digitalen Pins als serielle Schnittstelle verwenden, begrenzt aber auf ca. 9600 Baud beim UNO. Schneller geht es mit einer UART1) in Hardware. UNO und Nano haben nur eine davon, die Du zwar verwenden könntest, aber dann mußt Du für den seriellen Monitor und ein neues Programm umstöpseln. Das ist fehlerträchtig und umständlich und daher nicht empfehlenswert, gerade für Anfänger.
Andere Arduinos wie der Mega2560 haben mehrere UARTs in Hardware eingebaut, da kann man die zusätzlichen einfach und auch mit höheren Baudraten verwenden.
Auf kurzen Entfernungen kann man die UARTs der Arduinos direkt miteinander verbinden. Über größere Entfernungen bietet sich zusätzliche Hardware wie z. B. RS485 an. RS485 communications
Genau betrachtet übertragen viele Schnittstellen Daten seriell, weshalb auch CAN-Bus und I²C zu Deiner Frage passen.
Beantworte bitte die Fragen in #3 und Du bekommst Antworten, die besser zu Deinem Projekt passen.
Anm.:
UART und RS232 sind in der Kommunikation gleich, aber UART verwendet nur 0 bis 5 V oder auch 0 bis 3,3 V. Mit zusätzlicher Hardware kann man aus einer UART RS232, RS422 oder RS485 machen, wobei eventuell zusätzlich die Eigenarten eines Datenbusses berücksichtig werden müssen.
ich habe einen UNO und einen NANO die sollen miteinander sprechen. Es muss über rs232 sein, da ich noch etwas anderes dazuwischen schalten werde..(ist aber erstmal nicht wichtig ) da alles auf einem Tisch liegt ist die entfernung egal also = ca 30cm.
das ich von RS232 auf TTL232(bei meiner späteren Anwendung) muss weiß ich....da nehme ich umsetzer dafür.
DIe Geschwindigkeit spielt auch keine rolle 9600Baud langt mir vollkommen.
Ich lese erstmal das von noiasca gepostete Tutorial durch...
evtl wird das SoftwareSerial dann in frage kommen.
Also zu SoftwareSerial....
wo finde ich denn da Dokumenationen wie das Funktioniert ?
oder ein funktionierendes Besipiel das man Nachbauen kann ?
Ich habe dies aus Pin 2,3 auch schon Probiert,
Und der PIN schein auf dauer +5V zu stehen
//Arduino UNO als Sender
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5); // RX, TX
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
mySerial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
mySerial.println(millis()/1000);
Serial.println((millis()/1000));
delay(2000);
}
Ok vielen Dank,
es hat soweit funktioniert das ein Adruino aus einer Softwareserial Daten sendet- und das zweite auf einem Softwareserial diese Daten liest.
Da ich dann noch etwas zwischen schalte...hat soweit auch funktioniert.
Nun die Frage kann das dann auch ein Arduino auf zb Softwareserial_A an PIN 2 uns 3 Daten senden, und auf Softwareserial_B an PIN 4 und 5 die Daten wieder lesen ?
Wenn du damit meinst, auf ein und dem selben beides gleichzeitig, dann lautet die Antwort NEIN.
Das geht nicht, da der Controller erst eine Sache (Senden) abarbeiten muss und dann die nächste (Empfangen) .
Bei Hardwareserial ginge das, weil die Hardware "im Hintergrund" Daten verschickt und empfängt. Bei Softwareserial müßte der µC zwei Dinge gleichzeitig machen, was nicht geht.
Hallo noiasca,
Ich habe ein UNO und ein NANO vor mir liegen - das zu den warum - sonst muss ich um es zu testen gleich was anderes kaufen...sollte mit den zwei ja gehen - und ja es geht auch.
Das ich zwei brauche liegt anscheinend daran das ich bei diesen nicht senden und empfangen mit einem kann - evtl ja dann mit einem MEGA....den müsste ich mir erst kaufen (wird aber noch passieren).
Das ich es nicht genauer ausführe hat seine Gründe...(bitte um Verständnis)
Aber danke für die vielen Tipps und Hinweise, diese haben geholfen das ich mit dem UNO zb die millis() an das NANO seriell übertragen konnte. Und somit die Serielle Datenstrecke auswerten konnte ob diese Funktioiniert oder nicht. (daher erwähnte ich das noch was dazuwischen schalte)
Nun werde ich den MEGA kaufen und das gleiche mit dem Mega testen, von UNO zu MEGA. Und ob der MEGA auf COM1 senden und COM2 empfangen kann.
Eine Frage wenn ich ein anderes BOARD nehme was ist denn der Unterschied zwischen
1.) Joy-it ARD_MEGA2560R3 Kompatibles Board Arduino MEGA 2560R3
2.) [Arduino A000067 Board Mega 2560 Core]
diese habe ich beii CONRAD gesehen - erscheinen für mich gleich bis auf den Preis ?
Liege ich da richtig ?