I am doing dc meter 1000v with ardunio and rs 485.The problem is that when i am sending register value from ardunio i am not getting the output as i want, the output is in hexa decimal, and i cant figure out where is the voltage and current???? plus when i am changing voltage input i am not getting change output so far the code is...
#include <Stdio.h>
#include <SoftwareSerial.h>
#define RX 4
#define TX 5
SoftwareSerial softSerial(RX, TX);
#define dirPin 16
char charArray[6];
uint8_t HeadingData[] = {0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x71, 0xCB};
void setup()
{
Serial.begin(9600);
softSerial.begin(9600);
Serial.println("\n\nStart\n");
pinMode(dirPin, OUTPUT);
}
void loop()
{
digitalWrite(dirPin, HIGH); //Trans En
sendMSG(HeadingData, sizeof(HeadingData));
digitalWrite(dirPin, LOW); // Rec En
recieveMSG();
delay(1000);
}
void recieveMSG()
{
int charIndex = 0;
delay(100);
while (softSerial.available())
{
int recieved = softSerial.read();
// Serial.print("recieved byte in DEC = ");
// Serial.println(recieved);
Serial.print("recieved byte in HEX = ");
Serial.println(recieved, HEX);
// delay(50000);
// charArray[charIndex] = recieved; // store everything that was read in charArray byte-by-byte
// charIndex++;
// Serial.println(charArray[0], HEX);
// Serial.println(charArray[1], HEX);
// Serial.println(charArray[2], HEX);
// Serial.println(charArray[3], HEX);
// Serial.println(charArray[4], HEX);
// Serial.println(charArray[5], HEX);
// Serial.println("message recieved\n\n");
}
}
void sendMSG(uint8_t Message[], int len)
{
for (int i = 0; i < len; i++)
{
softSerial.write(Message*);*
- delay(10);*
_ Serial.print(Message*, HEX);_
_ Serial.print(" ");_
_ }_
_ Serial.println("\n\n");_
_}*_
please tell where i am wrong whats needs to be change??