Comunicacion RS485

Hola buenas tardes tengo un problema y espero y puedan ayudar, lo que pasa es que estoy tratando de comunicar mi arduino uno a un flujometro ultrasonico TUF 2000b a traves del protocolo de comunicacion RS485, he tratado de buscar algunos codigos en internet pero no me han dado buenos resultados a la hora de obtener los datos, ayudaaa, gracias espero que alguien me pueda auxiliar

/* Nick Touran's MODBUS-reading ESP8266 code for the TUF-2000M Ultrasonic flow meter */
#include <SoftwareSerial.h>
#include <ModbusMaster.h>

#define RX_PIN D2 // connect to converter's RX wire
#define TX_PIN D3 // connect to converter's TX wire
#define MODBUS_DEVICE_ID 1
#define FLOW_REGISTER 1 (TUF-2000M Ultrasonic Flow Meter User Manual.pdf, section 7.1.1 MODBUS REGISTERS TABLE)
#define FLOW_DATA_SIZE 2

SoftwareSerial swSerial(RX_PIN, TX_PIN);
ModbusMaster sensor;

void setup()
{
  Serial.begin(9600);
  Serial.println("Welcome");
  swSerial.begin(9600);
  sensor.begin(MODBUS_DEVICE_ID, swSerial);
}

void loop() 
{
  readFlow();
  delay(3000);
}

void readFlow() {
  uint8_t j, result;
  uint16_t buf[FLOW_DATA_SIZE];
  uint16_t temp;
  float flow;

  Serial.println("Reading registers");
  result = sensor.readHoldingRegisters(FLOW_REGISTER, FLOW_DATA_SIZE);
  
  if (result == sensor.ku8MBSuccess)
  {
    Serial.println("Success! Processing...");
    for (j = 0; j < FLOW_DATA_SIZE; j++)
    {
      buf[j] = sensor.getResponseBuffer(j);
      Serial.print(buf[j]);
      Serial.print(" ");
    }
    Serial.println("<- done");
    // swap bytes because the data comes in Big Endian!
    temp = buf[1];
    buf[1]=buf[0];
    buf[0]=temp;
    // hand-assemble a single-precision float from the bytestream
    memcpy(&flow, &buf, sizeof(float));
    Serial.print("Flow is ");
    Serial.println(flow, 6);
  }
  else {
    Serial.print("Failure. Code: ");
    Serial.println(result);
  }
}

manual de usuario adjunto.

Espero que ayude…

Manual.pdf (890 KB)

@sherzaad ¡Un lujo lo suyo!
Más colaboración no se puede pedir.

Saludos

A @jhhonatan recuerda leer las normas del foro. en ellas hubieras visto que buscando en Google Arduino TUF 2000b obtenias soluciones de todo tipo.

Ahorrense tiempo aprendiendo a buscar. Es muy simple.
Y ojo lo dice el punto 3 de las normas, Buscar antes de postear

Felicitaciones a @sherzaad le doy +1 karma

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.