I understand that this part initializes my serial port for Modbus communication but this should not be enough to establish a link with my sensor?
In the same way, this process should be executed correctly if the Modbus communication is already initialized or I need something else?
I have been guided by the following code as a reference:
#include <ModbusMaster.h>
#define MAX485_DE 3
#define MAX485_RE_NEG 2
ModbusMaster node;
void preTransmission()
{
digitalWrite(MAX485_RE_NEG, 1);
digitalWrite(MAX485_DE, 1);
}
void postTransmission()
{
digitalWrite(MAX485_RE_NEG, 0);
digitalWrite(MAX485_DE, 0);
}
void setup()
{
pinMode(MAX485_RE_NEG, OUTPUT);
pinMode(MAX485_DE, OUTPUT);
digitalWrite(MAX485_RE_NEG, 0);
digitalWrite(MAX485_DE, 0);
Serial.begin(9600);
// Modbus slave ID 2
node.begin(2, Serial);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
}
//bool state = true;
void loop()
{
uint8_t result;
result=node.readHoldingRegisters(0x0017, 1);
if (result == node.ku8MBSuccess)
{
Serial.print("Vbatt: ");
Serial.println(node.getResponseBuffer(0x00));
}
delay(500);
}