Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* -----------------------------------------------------------------------------------
- A sketch for the modbus RTU USB power strip based on the arduino-modbus-slave library by Jason Vreeland released on 3/7/2010 under GNU license
- Rev: 30 July 2013, by Ayush Sagar for GSoc 2013
- -----------------------------------------------------------------------------------*/
- #include <modbus.h>
- #include <modbusDevice.h>
- #include <modbusRegBank.h>
- #include <modbusSlave.h>
- //Setup register bank
- //All of the data accumulated will be stored here
- modbusDevice regBank;
- //Create the modbus slave protocol handler
- modbusSlave slave;
- void setup()
- {
- //Assign the modbus slave ID.
- regBank.setId(1);
- /*
- modbus registers follow the following format
- 00001-09999 Coils (Digital Outputs), A master device can read and write to these registers
- 10001-19999 Discrete Inputs (Digital Inputs), A master device can only read the values from these registers
- 30001-39999 Input Registers (Analog Inputs), A master device can only read the values from these registers
- 40001-49999 Holding Registers (Analog Outputs), A master device can read and write to these registers
- Analog values are 16 bit unsigned words stored with a range of 0-32767
- Digital values are stored as bytes, a zero value is OFF and any nonzer value is ON
- */
- //Add Digital Output registers (Coils) 00001-00016 to the register bank
- regBank.add(1);
- regBank.add(2);
- regBank.add(3);
- regBank.add(4);
- regBank.add(5);
- regBank.add(6);
- regBank.add(7);
- regBank.add(8);
- regBank.add(9);
- regBank.add(10);
- regBank.add(11);
- regBank.add(12);
- /*
- //Not adding other registers because they are not needed
- Assign the modbus device object to the protocol handler
- This is where the protocol handler will look to read and write
- register data. Currently, a modbus slave protocol handler may
- only have one device assigned to it.
- */
- slave._device = ®Bank;
- // Initialize the serial port for coms at 9600 baud
- slave.setBaud(9600);
- // Initialize Aruino IO pins
- pinMode(2, OUTPUT);
- pinMode(3, OUTPUT);
- pinMode(4, OUTPUT);
- pinMode(5, OUTPUT);
- pinMode(6, OUTPUT);
- pinMode(7, OUTPUT);
- pinMode(8, OUTPUT);
- pinMode(9, OUTPUT);
- pinMode(10, OUTPUT);
- pinMode(11, OUTPUT);
- pinMode(12, OUTPUT);
- pinMode(13, OUTPUT);
- }
- void loop()
- {
- digitalWrite(2,regBank.get(1));
- digitalWrite(3,regBank.get(2));
- digitalWrite(4,regBank.get(3));
- digitalWrite(5,regBank.get(4));
- digitalWrite(6,regBank.get(5));
- digitalWrite(7,regBank.get(6));
- digitalWrite(8,regBank.get(7));
- digitalWrite(9,regBank.get(8));
- digitalWrite(10,regBank.get(9));
- digitalWrite(11,regBank.get(10));
- digitalWrite(12,regBank.get(11));
- digitalWrite(13,regBank.get(12));
- slave.run();
- }
- /*-----------------------------------------------------------------------------------*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement