Hilfe - Arduino will Modbus Temperatursensor nicht auslesen (RS485 Linksprite)

Hallo,

der Fehler ist hier

  Serial.begin(9600);
  // slave ID 1
  node.begin(1, Serial);

Du verwendest Serial doppelt, sowohl für die Modbus Library als auch für die serielle Ausgabe. Daher kommen die merkwürdigen Zeichen im seriellen Monitor, da die Modbus Daten auch dahin geleitet werden. Die Pins 0 und 1 sind ja nicht nur mit dem Shield, sondern auch mit dem USB des Uno verbunden.

Das scheint bei dieser Lib allerdings so gedacht zu sein, in einem Beispiel wird das da auch so gemacht. Wahrscheinlich werden nur Daten auf die RS485 geleitet, wenn die Steuerleitungen auf den Pins 2 und 3 entsprechend stehen.

Man muss aber bei Serial.begin die Baudrate einstellen, die der Modbus haben will. Den seriellen Monitor muss man entsprechend umstellen. Sonst wird das nicht gehen.

Wenn man das Shield mit einem Uno verwenden will, ohne dass die Modbusdaten die serielle Ausgabe stören, muss man wohl SoftwareSerial verwenden. Ansonsten eher einen Leonardo, da sind die Pins 0 und 1 nicht mit dem USB verbunden.