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