Serielle Daten übertragen...

Guten Abend zusammen,

bin noch neu in der Arduino Welt, und hoffe ihr könnt mir da etwas helfen :wink:

Ich möchte von einem Arduino Nano Seriell Daten senden an einen Arduino Uno, an den Uno ist ein LCD angeschlossen beide sind mit kabel verbunden, soweit klappt alles bis auf das ein simpler String erst auf dem Uno angezeigt wird sobald ich das TX Kabel abziehe???
Es scheint als wenn die Daten im Puffer bleiben und nicht in die Variable gespeichert werden.

Ein mal Sender Code:

Sender

Empfänger:

Empfänger

Vielen dank schon mal!

Schöne grüße Samuel84

Poste deine Sketche bitte hier direkt, mit Code-Tags ([code]Hier der Sketch[/code] ohne die *), das kannst du auch nachträglich in deinen Posting ändern.

Die Serielle ist kein Bus.
Also genau 2 Partner, und nicht 4, wie bei dir.

Pin0 und Pin1 solltest du nicht für eigene Zwecke verwenden, es sei denn, du weißt GENAU was du da tust.

Vermutlich suchst du SoftwareSerial
Oder möchtest gar I2C verwenden.

Falls du das hier meinst " * LCD D7 pin to digital pin 2" das steht nur in Grau als Kommentar, pin 2 wird sonst nicht verwendet.

Ich spreche von "Pin0 und Pin1" und du von "D7 pin to digital pin 2".

:o

Samuel84:
bin noch neu in der Arduino Welt, und hoffe ihr könnt mir da etwas helfen :wink:

Wieso nimmst Du nicht das Programm aus den Beispielen der IDE und testest zunächst Display und serielle Übertragung separat?

Wenn Du noch neu bist, solltest Du Dich erst mit einfacheren Dingen herumschlagen als mit LC-Display und serieller Übertragung.

Gruß

Gregor

Das habe ich schon alles getestet und es klappt alles ohne Probleme, nur halt nicht wenn die Daten von einem Nano kommen.

Hi

Da Uno und Nano exakt der gleiche Chip sind - sollte Das keine größere Rolle spielen.

MfG

nimm doch SoftwareSerial

Samuel84:
Das habe ich schon alles getestet und es klappt alles ohne Probleme, nur halt nicht wenn die Daten von einem Nano kommen.

Ich wiederhole: Die Serielle ist kein Bus.

Könntest du mir ein kleines Beispiel geben wie ich seriell von einem Arduino zum anderen ein Wort übertragen kann?

Könntest du mir ein kleines Beispiel geben wie ich seriell von einem Arduino zum anderen ein Wort übertragen kann?

Du könntest nach diesen Worten suchen und dir die zugehörigen, der IDE beiliegenden, Beispiele ansehen.

Vermutlich suchst du SoftwareSerial
Oder möchtest gar I2C verwenden.

Hallo zusammen,
falls jemand auch mal so ein Problem haben sollte, hier die Lösung:

Sender:
void setup()
{
  Serial.begin(115200);

  Serial.println("Test!");
  delay(1000);
}

void loop()
{
 for (int i = 0; i <= 25; i++)
 {
   Serial.print (i); //Send i to Rx Arduino
   Serial.print("\n");

   delay(1000);  
 }
}
 Empfänger:
// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

String incomingByte = ""; // for incoming serial data

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
  delay("5000");

  Serial.begin(115200); // opens serial port, sets data rate to 9600 bps
  lcd.clear();
}

void loop() {

 // reply only when you receive data:
  if (Serial.available() > 0) {
    // read the incoming byte:
    incomingByte = Serial.readStringUntil('\r\n');

    // say what you got:
    lcd.clear();
    lcd.print("I received: ");
    lcd.setCursor(0, 1); // bottom left
    lcd.print(incomingByte);
    lcd.setCursor(0, 0); // bottom left
    Serial.print(incomingByte);
  }
}

Nun wird alles richtig auf dem LCD und auch im Terminal am PC angezeigt.

Schöne Grüße

hier die Lösung:

Sicher, dass das eine "Lösung" ist?
Und nicht eher ein "Irrtum" ...

Samuel84:
Hallo zusammen,
falls jemand auch mal so ein Problem haben sollte, hier die Lösung:

Welche Lösung ?

Warum postest du nur Fragmente ?
Und liest nicht, was wir schreiben ?

Wenn du unsere Posts ignorierst, darfst du dich nicht wundern, wenn keine Antworten kommen.

readStringUntil('\r\n')

Macht nicht was du denkst. Warnungen aktivieren!

(deleted)

Peter-CAD-HST:
Moin

gibt es hier auch konstruktive Kommentare ?

Gibt es hier nur uneinsichtige Fragesteller, die nie nicht auf klare Ansagen reagieren?

Dass das Empfangen und Parsen von seriellen (bzw. Streamingdaten im Allgemeinen) Daten nicht si trivial ist, wie es am Anfang aussieht, zeigen die zahlreichen Fragen dazu.
Es wurden hier im Forum bereits Lösungen dafür gefunden, die man schon als perfekt bezeichnen kann. Das Rad muss man nicht nochmal erfinden. Das ist z.B. einer der Fälle, wo C&P durchaus erwünscht ist.

Bei deiner lcd-Ausgabe ist auch noch ein Schönheitsfehler drin. Mag momentan vielleicht noch nicht auffallen, das kommt aber später garantiert noch.

Und Variablen des Typs "String" sollte man mit 328ern nicht verwenden.