modbus slave works, second adc added
This commit is contained in:
@ -7,12 +7,15 @@
|
||||
#include "SimpleModbusSlave.h"
|
||||
|
||||
const uint8_t LED_PIN = 8;
|
||||
const uint8_t ADC_CS_PIN = 9;
|
||||
const uint8_t ADC_RDY_PIN = 7;
|
||||
const uint8_t ADC_1_CS_PIN = 9;
|
||||
const uint8_t ADC_1_RDY_PIN = 7;
|
||||
const uint8_t ADC_2_CS_PIN = 2;
|
||||
const uint8_t ADC_2_RDY_PIN = 3;
|
||||
const uint8_t MODBUS_TX_ENABLE_PIN = 6;
|
||||
const uint8_t MODBUS_ID = 3;
|
||||
|
||||
ADS1210 ads1210;
|
||||
ADS1210 ads1210_1;
|
||||
ADS1210 ads1210_2;
|
||||
LED led;
|
||||
Metro secondTick = Metro(1000);
|
||||
uint32_t uptimeSeconds;
|
||||
@ -22,27 +25,35 @@ struct {
|
||||
union {
|
||||
uint32_t in;
|
||||
uint16_t modbusRegisters[2]; // 0, 1
|
||||
} adcValue;
|
||||
} adc1Value;
|
||||
union {
|
||||
uint32_t in;
|
||||
uint16_t modbusRegisters[2]; // 2, 3
|
||||
} adc2Value;
|
||||
union {
|
||||
uint32_t in;
|
||||
uint16_t modbusRegisters[2]; // 4, 5
|
||||
} uptimeSeconds;
|
||||
} modbusHoldingRegisters;
|
||||
|
||||
|
||||
void setup() {
|
||||
led.begin(LED_PIN);
|
||||
ads1210.begin(ADC_CS_PIN, ADC_RDY_PIN);
|
||||
ads1210_1.begin(ADC_1_CS_PIN, ADC_1_RDY_PIN);
|
||||
ads1210_2.begin(ADC_2_CS_PIN, ADC_2_RDY_PIN);
|
||||
modbus_configure(&Serial, 1200, SERIAL_8N2, MODBUS_ID, MODBUS_TX_ENABLE_PIN,
|
||||
sizeof(modbusHoldingRegisters), modbusHoldingRegisters)
|
||||
sizeof(modbusHoldingRegisters), (uint16_t*)(&modbusHoldingRegisters));
|
||||
uptimeSeconds = 0;
|
||||
}
|
||||
|
||||
void loop() {
|
||||
modbus_update();
|
||||
|
||||
ads1210.exec();
|
||||
modbusHoldingRegisters.adcValue.in = ads1210.value;
|
||||
ads1210_1.exec();
|
||||
modbusHoldingRegisters.adc1Value.in = ads1210_1.value;
|
||||
|
||||
ads1210_2.exec();
|
||||
modbusHoldingRegisters.adc2Value.in = ads1210_2.value;
|
||||
|
||||
if (secondTick.check() == 1) {
|
||||
led.toggle();
|
||||
|
Reference in New Issue
Block a user