bin noch neu in der Arduino Welt, und hoffe ihr könnt mir da etwas helfen
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.
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.
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.
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.