Hier mal ein Beispiel, wie man 2 Arduinos verbinden und Daten senden kann.
Der Aufbau besteht aus:
- der erste Arduino ist der Sender, an dem sind 2 Buttons angeschlossen
- der zweite Arduino ist der Empfänger, an dem sind 2 LEDs angeschlossen
- Die 2 Arduinos sind mit 3 Kabeln verbunden, GND -> GND, TX -> RX, RX -> TX
- wenn der Empfänger kein Signal bekommt, dann sind die LEDs an
- wenn der Empfänger ein Signal bekommt, dann gehen die LEDs für eine Sekunde aus

Sender
// Pins
int ch01 = 2; // roter Button
int ch02 = 3; // grüner Button
int pause = 500;
void setup() {
pinMode(ch01, INPUT);
pinMode(ch02, INPUT);
Serial.begin(9600);
Serial.println("warte auf Eingabe...");
}
void loop() {
delay(20);
Serial.flush();
int button_1 = digitalRead(ch01);
int button_2 = digitalRead(ch02);
Serial.flush();
if (button_1 == HIGH) {
char zeichenkette[] = "RED";
sendZeichen(zeichenkette);
} else if (button_2 == HIGH) {
char zeichenkette[] = "GREEN";
sendZeichen(zeichenkette);
}
}
void sendZeichen(char zeichenkette[]) {
// setze ein Zeilenumbruch ans Ende der Zeichenkette
char zeilenumbruch[] = "\n";
strcat( zeichenkette, zeilenumbruch );
// Sende Zeichenkette mit Zeilenumbruch
Serial.write(zeichenkette);
delay(pause);
}Code-Sprache: JavaScript (javascript)
Empfänger
// Quelle
// https://gist.github.com/ladislas/5759763
String inData;
int pause = 1000;
int ch01 = 2; // rote LED
int ch02 = 3; // grüne LED
void setup() {
pinMode(ch01, OUTPUT);
pinMode(ch02, OUTPUT);
// LEDs an
digitalWrite(ch01, HIGH);
digitalWrite(ch02, HIGH);
Serial.begin(9600);
Serial.println("warte auf Signal...");
}
void loop() {
// Der Empfänger liest jedes Zeichen, der Zeichenkette einzeln aus,
// hier werden die einzelnen Zeichen wieder zu einer Zeichenkette zusammen gebaut,
// ein Zeilenumbruch ist das Ende der Zeichenkette und danach
// wird auf die nächste Zeichenkette gewartet
while (Serial.available() > 0)
{
// ein Zeilenumbruch macht man mit dem Befehl "\n"
char recieved = Serial.read(); // Empfangen
// das "\n" wird nicht mit in die Zeichenkette eingefügt
if (recieved != '\n'){
// Einzelne Zeichen zu einer Zeichenkette zusammenbauen
inData += recieved;
}
// Wenn ein Zeilenumbruch kommt, dann die Zeichenkette ausgeben.
if (recieved == '\n')
{
Serial.print("Arduino Received: ");
Serial.println(inData);
startAction(inData);
inData = ""; // Lösche die gespeicherte Zeichenkette
}
}
}
void startAction(String inData){
if (inData == "RED") {
Serial.println("LED: RED");
digitalWrite(ch01, LOW); // LED aus
delay(pause); // Pause
digitalWrite(ch01, HIGH); // LED an
} else if (inData == "GREEN") {
Serial.println("LED: GREEN");
digitalWrite(ch02, LOW); // LED aus
delay(pause); // Pause
digitalWrite(ch02, HIGH); // LED an
}
}Code-Sprache: JavaScript (javascript)