I have Code for Mod bus Library as below. I have Gone through lots of forum. How to assign device ID, slave address, length using below library function:
#include <SimpleModbusSlave.h>
#define LED 9
enum
{
ADC_VAL,
PWM_VAL,
HOLDING_REGS_SIZE // leave this one
};
unsigned int holdingRegs[HOLDING_REGS_SIZE];
void setup()
{
modbus_configure(&Serial, 9600, SERIAL_8N2, 1, 2, HOLDING_REGS_SIZE, holdingRegs);
pinMode(LED, OUTPUT);
}
void loop()
{
modbus_update();
holdingRegs[ADC_VAL] = analogRead(A0); // update data to be read by the master to adjust the PWM
analogWrite(LED, holdingRegs[PWM_VAL]>>2); // constrain adc value from the arduino master to 255
}
I am getting Error has.
SimpleModbusSlaveArduino.cpp: In function 'void setup()':
SimpleModbusSlaveArduino:79: error: 'SERIAL_8N2' was not declared in this scope
Let me know how to resolve issue.
Best Answer
Open up SimpleModbusSlave.c. Check the format of modbus_configure() matches what you have.
Open up SimpleModbusSlave.h. Check the define for SERIAL_8N2 exists.
I'm guessing it should be
modbus_configure(9600, 1, 2, HOLDING_REGS_SIZE);