Dear Team,
I need your support for my project Can you guide me
I m using ELMEASURE ELECTRICAL METER,I need to take a reading form that meter through RS485 ,i getting Result from that meter through MY Arduino CODE, here I attached my code
but its is hex format i dont know how to convert in FLOAT32 format
i using your software for checking its working properly can you help me for this.
bcz i struggle last 30days for this.
Please Help ME.
thanks in advance
#include <ModbusMaster.h>
#include <SoftwareSerial.h>
#include <IEEE754tools.h>
#undef int
#include <stdio.h>
#define LED_13 13 // define LED pin
#define MAX485_TX_ENABLE 7 // EIA-485 transmit control pin
#define EIA485_RX 9 // EIA-485 serial receive pin
#define EIA485_TX 10 // EIA-485 serial transmit pin
ModbusMaster node;
SoftwareSerial RS485Serial(EIA485_RX, EIA485_TX); // RX, TX
void preTransmission() {
digitalWrite(MAX485_TX_ENABLE, true);
}
void postTransmission() {
digitalWrite(MAX485_TX_ENABLE, false);
}
void setup() {
pinMode(MAX485_TX_ENABLE, OUTPUT);
digitalWrite(MAX485_TX_ENABLE, false);
Serial.begin(9600);
RS485Serial.begin(9600);
node.begin(1, RS485Serial);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
Serial.print("My Little SCADA System\n");
}
void loop() {
uint32_t result;
result = node.readHoldingRegisters(100, 20);//40000 40100 0X9CA4
if (result == node.ku8MBSuccess)
{
Serial.print("Reg 1: ");
Serial.println(node.getResponseBuffer(1));
uint16_t x=node.getResponseBuffer(1);
Serial.println(x);
Serial.println(x, HEX);
Serial.print("Reg 2: ");
Serial.println(node.getResponseBuffer(17));
uint16_t xy =node.getResponseBuffer(17);
Serial.println(xy);
Serial.println(xy, HEX);
}
else {
Serial.print("Error getting data\n");
}
delay(1000);
}
sketch_may28a.ino (1.4 KB)