Modbus RTU Slave SW-Serial-lal
A program Arduino UNO-n fut. Az UNO-nak csak egy soros portja van, ezért a sw-serial egy nagyon hasznos funkció, mert több kvázi-UART-tot is nyithatunk vele. Problémája, hogy több kommunikációs megoldással nem működik. Ebben az esetben viszont igen, az Arduino Modbus RTU Slaveként működik, miközben a serial monitor is fut rajta.
Vezetékezés
Könyvtár
- SoftwareSerial.h: https://www.arduino.cc/en/Reference/softwareSerial
Program
#include <ModbusRtu.h> #include <SoftwareSerial.h> #define SSerialTxControl 10 SoftwareSerial mySerial(2, 3); int count = 0; // data array for modbus network sharing uint16_t au16data[16] = { 3, 1415, 9265, 4, 2, 7182, 28182, 8, 0, 0, 0, 0, 0, 0, 1, -1 }; Modbus slave(1); void setup() { Serial.begin(9600); slave.begin( &mySerial, 9600, SSerialTxControl ); slave.start(); } void loop() { count++; au16data[0] = count; delay(100); slave.poll( au16data, 16 ); }