Hi,am trying to communicate with power-factor controller [Selec APFC 148-312] using modbus RTU,am following example sketch from modbusmaster library. am able to get the raw data from the instrument but data structure seems to be in decimal format, can someone help me to convert this into float.thank you
#include <ModbusMaster.h>
#define MAX485_DE 3
#define MAX485_RE_NEG 2
// instantiate ModbusMaster object
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);
// Init in receive mode
digitalWrite(MAX485_RE_NEG, 0);
digitalWrite(MAX485_DE, 0);
// Modbus communication runs at 9600 baud
Serial.begin(9600);
// Modbus slave ID 1
node.begin(1, Serial);
// Callbacks allow us to configure the RS485 transceiver correctly
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
}
void loop()
{
float result;
result = node.readInputRegisters(0x30000, 10);
if (result == node.ku8MBSuccess)
{
Serial.print("V1N: ");
Serial.println(node.getResponseBuffer(0x01));
Serial.print("V2N: ");
Serial.println(node.getResponseBuffer(0x02));
Serial.print("V3N: ");
Serial.println(node.getResponseBuffer(0x03));
Serial.print("Vavg: ");
Serial.println(node.getResponseBuffer(0x04));
Serial.print("V12: ");
Serial.println(node.getResponseBuffer(0x05));
Serial.print("V23: ");
Serial.println(node.getResponseBuffer(0x06));
Serial.print("V31: ");
Serial.println(node.getResponseBuffer(0x07));
Serial.print("L-L avg: ");
Serial.println(node.getResponseBuffer(0x08));
}
delay(1000);
}


