Vous êtes sur la page 1sur 6

UNIVERSIDAD TECNOLÓGICA DE LA

MIXTECA

MAESTRÍA EN ELECTRÓNICA
OPCIÓN SISTEMAS INTELIGENTES APLICADOS

MODBUS maestro, arduino esclavo.

Materia:
Programación de interfaces

Presenta
César Gabriel Pérez Ibarra

Rubén Omar García Valladares

Profesor

Dr. Fermín Hugo Ramírez Leyva


24/mayo/2018

Página | 1
Índice
Objetivo. ........................................................................................................................................ 3
Materiales. .................................................................................................................................... 3
Desarrollo. ..................................................................................................................................... 3
Resultados. .................................................................................................................................... 4
Conclusiones. ................................................................................................................................ 4
Anexos ........................................................................................................................................... 5

Página | 2
Objetivo.
Utilizar el protocolo MUDBUS para hacer la lectura de registros de entrada y
escribir una bobina, empleando como maestro la interfaz en LabVIEW y un
arduino como esclavo.

Materiales.
 Arduino UNO.
 Computadora.
 Potenciómetro
 Leds
 Resistencias

Desarrollo.
Se utilizó la librería Modbus.h y ModbusSerial.h, esta librería facilita la comunicación con el
protocolo MODBUS, es necesario él establecer constantes con los valores de los registros se
habilita en el arduino la lectura analógica (A0), con el uso de la función addHreg el valor
obtenido se almacenara y este será enviado cuando el maestro haga la solicitud de una lectura
de registro. Se habilita una salida digital (pin 13), con la función addIreg, permite la escritura de
bobina cuando el maestro lo indique esta encenderá o apagara un led según sea el caso.

Ilustración 1 coneccion de auduino, led y potenciometro

Página | 3
Se empleó la interfaz proporcionada por el profesor para establecer la comunicación entre
LabVIEW y el arduino con usando el protocolo MODBUS.

Ilustración 2 INTERFAZ MODBUS LabVIEW

Se eligió como dirección de los registros de la bobina el 100 y como registro de entrada 200. La
comunicación serial se estableció en 19200 bps.

Resultados.
Se logró establecer la comunicación entre LabVIEW como maestro y el arduino como esclavo.

Al hacer la petición de lectura de registro se obtiene el valor del potenciómetro en ese momento,
se indica el valor que se desea tengo el pin digital (0 , 1) logrando encender o apagar el led.

Conclusiones.
.

Las pruebas realizadas mostraron resultados totalmente satisfactorios.

Página | 4
Anexos
Código implementado en el arduino para trabajar como esclavo.

#include <Modbus.h>

#include <ModbusSerial.h>

//Modbus Registers Offsets (0-9999)

const int SENSOR_IREG = 100;

const int LAMP1_COIL = 200;

//Used Pins

const int sensorPin = A0;

const int ledPin = 13;

// ModbusSerial object

ModbusSerial mb;

long ts;

void setup() {

// Config Modbus Serial (port, speed, byte format)

mb.config(&Serial, 19200, SERIAL_8N1);

Página | 5
// Set the Slave ID (1-247)

mb.setSlaveId(10);

// Set ledPin mode

pinMode(ledPin, OUTPUT);

// Add LAMP1_COIL register - Use addCoil() for digital outputs

mb.addHreg(LAMP1_COIL);

// Add SENSOR_IREG register - Use addIreg() for analog Inputs

mb.addIreg(SENSOR_IREG);

ts = millis();

void loop() {

//Call once inside loop() - all magic here

mb.task();

digitalWrite(ledPin, mb.Hreg(LAMP1_COIL));

//Read each two seconds

if (millis() > ts + 2000) {

ts = millis();

//Setting raw value (0-1024)

mb.Ireg(SENSOR_IREG, analogRead(sensorPin));

Página | 6

Vous aimerez peut-être aussi