thermometer stuff
This commit is contained in:
@ -5,8 +5,11 @@
|
||||
#include "ads1210.h"
|
||||
#include "led.h"
|
||||
#include "SimpleModbusSlave.h"
|
||||
#include "Thermometer.h"
|
||||
#include "Config.h"
|
||||
|
||||
|
||||
|
||||
const uint8_t LED_PIN = 8;
|
||||
|
||||
const uint8_t ADC_1_CS_PIN = 9;
|
||||
@ -23,6 +26,8 @@ const uint32_t MODBUS_BAUD = 1200;
|
||||
|
||||
ADS1210 ads1210_1;
|
||||
ADS1210 ads1210_2;
|
||||
Thermometer thermometer1;
|
||||
Thermometer thermometer2;
|
||||
LED led;
|
||||
Metro secondTick = Metro(1000);
|
||||
uint32_t uptimeSeconds;
|
||||
@ -42,21 +47,37 @@ struct {
|
||||
uint16_t modbusRegisters[2]; // 4, 5
|
||||
} adc1R;
|
||||
union {
|
||||
uint32_t in;
|
||||
float in;
|
||||
uint16_t modbusRegisters[2]; // 6, 7
|
||||
} adc2Value;
|
||||
} temperature1Raw;
|
||||
union {
|
||||
float in;
|
||||
uint16_t modbusRegisters[2]; // 8, 9
|
||||
} temperature1;
|
||||
union {
|
||||
uint32_t in;
|
||||
uint16_t modbusRegisters[2]; // 10, 11
|
||||
} adc2Value;
|
||||
union {
|
||||
float in;
|
||||
uint16_t modbusRegisters[2]; // 12, 13
|
||||
} adc2U;
|
||||
union {
|
||||
float in;
|
||||
uint16_t modbusRegisters[2]; // 10, 11
|
||||
uint16_t modbusRegisters[2]; // 14, 15
|
||||
} adc2R;
|
||||
union {
|
||||
uint32_t in;
|
||||
uint16_t modbusRegisters[2]; // 12, 13
|
||||
uint16_t modbusRegisters[2]; // 16, 17
|
||||
} uptimeSeconds;
|
||||
union {
|
||||
float in;
|
||||
uint16_t modbusRegisters[2]; // 18, 19
|
||||
} temperature2Raw;
|
||||
union {
|
||||
float in;
|
||||
uint16_t modbusRegisters[2]; // 20, 21
|
||||
} temperature2;
|
||||
} modbusHoldingRegisters;
|
||||
|
||||
|
||||
@ -66,6 +87,8 @@ void setup() {
|
||||
led.begin(LED_PIN);
|
||||
ads1210_1.begin(ADC_1_CS_PIN, ADC_1_RDY_PIN, Config::ADC1START);
|
||||
ads1210_2.begin(ADC_2_CS_PIN, ADC_2_RDY_PIN, Config::ADC2START);
|
||||
thermometer1.begin(Config::THERMO1START);
|
||||
thermometer2.begin(Config::THERMO2START);
|
||||
modbus_configure(&Serial, MODBUS_BAUD, SERIAL_8N2, MODBUS_ID, MODBUS_TX_ENABLE_PIN,
|
||||
sizeof(modbusHoldingRegisters), (uint16_t*)(&modbusHoldingRegisters));
|
||||
uptimeSeconds = 0;
|
||||
@ -78,12 +101,18 @@ void loop() {
|
||||
modbusHoldingRegisters.adc1Value.in = ads1210_1.value;
|
||||
modbusHoldingRegisters.adc1U.in = ads1210_1.u;
|
||||
modbusHoldingRegisters.adc1R.in = ads1210_1.r;
|
||||
thermometer1.exec(ads1210_1.r);
|
||||
modbusHoldingRegisters.temperature1Raw = thermometer1.temperatureRaw;
|
||||
modbusHoldingRegisters.temperature1 = thermometer1.temperatur;
|
||||
|
||||
|
||||
ads1210_2.exec();
|
||||
modbusHoldingRegisters.adc2Value.in = ads1210_2.value;
|
||||
modbusHoldingRegisters.adc2U.in = ads1210_2.u;
|
||||
modbusHoldingRegisters.adc2R.in = ads1210_2.r;
|
||||
thermometer2.exec(ads1210_2.r);
|
||||
modbusHoldingRegisters.temperature2Raw = thermometer2.temperatureRaw;
|
||||
modbusHoldingRegisters.temperature2 = thermometer2.temperatur;
|
||||
|
||||
if (secondTick.check() == 1) {
|
||||
led.toggle();
|
||||
|
Reference in New Issue
Block a user