Ich habe hier ein orginal Arduino Uno R3 Board. Ich habe einen Solarregler, welcher mit 19200 Baudrate (fest!) an RX sendet.
Für den Arduino sollte das kein Problem sein
Bisher habe ich das Empfangene auf einen kleinen LCD Display ausgegeben, was auch gut geklappt hat.
Nun möchte ich das ganze auf den PC ausgeben (COM-Port), leider zeigt er mir immer nur den Begrüßungstext an, hat aber keine Daten (auch keine Anzeige auf dem LCD)
Ich nutze hierfür die Software Serial um einen neuen Input Pin festzulegen, da der Uno bekanntlich nur einen Anschluss hat
//define additional serial input
#include <SoftwareSerial.h>
SoftwareSerial SolarInput(2, 3); // RX2, TX2
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
String label;
String val;
int i=0;
void setup() {
//Display setup
lcd.init(); //initialize the lcd
lcd.backlight(); //open the backlight
//Serial start
Serial.begin(19200);
Serial.print("Test beginnt");
SolarInput.begin(19200);
}
void loop() {
if (SolarInput.available())
{
label = SolarInput.readStringUntil('\t');
val = SolarInput.readStringUntil('\r\r\n');
lcd.print(label);
lcd.print(":");
lcd.print(val);
Serial.print(label);
Serial.print(":");
Serial.print(val);
}
}
Auch schon mit AltSoftSerial probiert (ersten 2 Zeilen ersetzt)
#include <AltSoftSerial.h>
AltSoftSerial SolarInput(2, 3); // RX2, TX2
und
#include <AltSoftSerial.h>
AltSoftSerial SolarInput // RX2, TX2
Und nochmal der Hinweis: Angeschlossen am "normalen" RX/TX zeigt er mir die Daten auf den LCD an!
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
String label;
String val;
int i=0;
void setup() {
//Display setup
lcd.init(); //initialize the lcd
lcd.backlight(); //open the backlight
//Serial start
Serial.begin(19200);
}
void loop() {
if (Serial.available())
{
label = Serial.readStringUntil('\t');
val = Serial.readStringUntil('\r\r\n');
lcd.print(label);
lcd.print(":");
lcd.print(val);
}
}
Somit schließe ich aus, dass es am Solarregler liegt
Jemand eine Idee?
Grüße