modbus slave

This commit is contained in:
Wolfgang Hottgenroth
2014-11-07 19:24:19 +01:00
parent cebf295a8b
commit 11fee9ca4f

View File

@ -1,36 +1,52 @@
#include "Arduino.h" #include "Arduino.h"
// #include "Streaming.h"
#include "Metro.h" #include "Metro.h"
#include "ads1210.h" #include "ads1210.h"
#include "led.h" #include "led.h"
#include "SimpleModbusSlave.h"
const uint8_t LED_PIN = 8; const uint8_t LED_PIN = 8;
const uint8_t ADC_CS_PIN = 9; const uint8_t ADC_CS_PIN = 9;
const uint8_t ADC_RDY_PIN = 7; const uint8_t ADC_RDY_PIN = 7;
const uint8_t MODBUS_TX_ENABLE_PIN = 6;
const uint8_t MODBUS_ID = 3;
ADS1210 ads1210; ADS1210 ads1210;
LED led; LED led;
Metro secondTick = Metro(1000); Metro secondTick = Metro(1000);
uint32_t uptimeSeconds;
void setup() { struct {
// Serial.begin(9600); union {
delay(1000); uint32_t in;
uint16_t modbusRegisters[2]; // 0, 1
} adcValue;
union {
uint32_t in;
uint16_t modbusRegisters[2]; // 2, 3
} uptimeSeconds;
} modbusHoldingRegisters;
void setup() {
led.begin(LED_PIN); led.begin(LED_PIN);
ads1210.begin(ADC_CS_PIN, ADC_RDY_PIN); ads1210.begin(ADC_CS_PIN, ADC_RDY_PIN);
modbus_configure(&Serial, 1200, SERIAL_8N2, MODBUS_ID, MODBUS_TX_ENABLE_PIN,
sizeof(modbusHoldingReigsre), modbusHoldingRegisters)
uptimeSeconds = 0;
} }
void loop() { void loop() {
modbus_update();
ads1210.exec(); ads1210.exec();
modbusHoldingRegisters.adcValue.in = ads1210.value;
if (secondTick.check() == 1) { if (secondTick.check() == 1) {
led.toggle(); led.toggle();
uptimeSeconds++;
// Serial << "AdcValue: " << _HEX(ads1210.value) << endl; modbusHoldingRegisters.uptimeSeconds.in = uptimeSeconds;
} }
} }