Hallo liebe Community,
gerne würde ich mit meinem Arduino Mega2560 und einem MAX485 Modul über die Modbusschnittstelle Daten über RS485 an meinem Wechselrichter von Growatt (MIC 1500-tlx) auslesen.
Ich habe die Pins vom MAX485
DI--> TX1 (Arduino)
R0--> RX0(Arduino)
DE,RE --> Digitalpin 2 (Arduino)
GND --> 0V
VCC --> +5V
A,B mit der Modbusschnittstelle des Growatt Mic 1500 tlx
verbunden.
verbunden.
Ich habe es mit einem bestehenden Code probiert, leider komme ich da erstmal nicht weiter da ich keine Verbindung aufbauen, kann. stehe in diesem Punkt was Modbus betrifft leider auf dem schlauch.
//#include <ArduinoModbus.h>
#include <ModbusMaster.h>
#define MAX485_DE 2 // Pin names that are connected between the MAX485 TTL to RS-485 converter module and Arduino Mega.
#define MAX485_RE_NEG 2
ModbusMaster growatt;
// preTrasnmission() and postTrasmission() for making the Pins RE and DE of Max485 TTL to RS-485 convertor module high or low to Transmit or Receive data
void preTransmission()
{
digitalWrite(MAX485_RE_NEG, 1);
digitalWrite(MAX485_DE, 1);
}
void postTransmission()
{
digitalWrite(MAX485_RE_NEG, 0);
digitalWrite(MAX485_DE, 0);
}
void setup() {
// put your setup code here, to run once:
pinMode(MAX485_RE_NEG, OUTPUT);
pinMode(MAX485_DE, OUTPUT);
// intit receive mode
digitalWrite(MAX485_RE_NEG, 0);
digitalWrite(MAX485_DE, 0);
Serial.begin(9600);
growatt.begin(1, Serial);
growatt.preTransmission(preTransmission);
growatt.postTransmission(postTransmission);
}
void loop() {
// put your main code here, to run repeatedly:
long result;
result = growatt.readInputRegisters(0, 2);
Serial.print(growatt.readInputRegisters(0, 2));
delay(1000);
}
hat jemand evtl. einen funktionierenden Einstiegscode für eine Input Register Adresse?
Der Serielle Monitor gibt mir diese Daten aktuell aus, welche irgendwie verwirrend sind.....