Medidor de corriente monofasico dds230 comunicación modbus rtu

Hola

Hoy por fin despues de mas de dos meses e conseguido leer los datos del medidor dds238 - 2ZN/S, he utilizado un arduino mega y un modulo max485.

Como siempre y con ensayo error he dado con el problema por el cual no comunicaba, El modulo max485 estando conectado y en prueba fallida he quitado la alimentación al mismo y ha quedado solo con los cable de A y B, junto con los cables de RO(rx) al pin 11, DI (tx) al pin 12, los pines de control DE y RE conectados al pin 4 de control (alto/bajo), y aparecieron datos por el monitor serie en el  ordenador.

Federico, te llamo y lo vemos, aún hay muchas cosas que no entiendo y otras debo averiguar pues como queda resuelto no me vale para la utilidad que le quiero dar.

 

Este es el sket .ino las librerias dds238.h,  dds238_Config_User.h, dds238.cpp no incluidas

#include <SoftwareSerial.h>    

    #include "dds238.h"                                                                //import dds238 library

SoftwareSerial swSerdds238(11, 12);                                                //config SoftwareSerial (rx->pin13 / tx->pin15)

dds238 dds238(swSerdds238, 9600, 4);                                             //config dds238

void setup() {   Serial.begin(115200);                                                         //initialize serial   dds238.begin();                                                                  //initialize dds238 communication }

void loop() {     Serial.print("Voltage:   ");   Serial.print(dds238.readVal(dds238_VOLTAGE, 2)/10, 2);                                //display voltage   Serial.println("V");

  delay(100);

  Serial.print("Current:   ");   Serial.print(dds238.readVal(dds238_CURRENT, 2)/100, 2);                                //display current     Serial.println("A");

  delay(100);

  Serial.print("Power:     ");   Serial.print(dds238.readVal(dds238_POWER, 2)/3100, 2);                                  //display power   Serial.println("W");

  delay(100);

  Serial.print("Power inversos:     ");   Serial.print(dds238.readVal(dds238_EXPORT_ACTIVE_ENERGY, 2), 2);                                  //display power   Serial.println("-W");

  delay(100);     Serial.print("Frequency: ");   Serial.print(dds238.readVal(dds238_FREQUENCY, 2)/100, 2);                              //display frequency   Serial.println("Hz");   Serial.println();      Serial.println();   

  delay(500);                                                               //wait a while before next loop }

 

Descargar la librería  la librería aquí SoftwareSerial.h

Descarga el código completo  Watimetro blpolar dds238 lectura modbus rtu