10 #include "DCCpp_Uno.h" 11 #include "CurrentMonitor.h" 16 void CurrentMonitor::begin(
int pin,
const char *msg)
23 boolean CurrentMonitor::checkTime()
25 if(millis( ) - sampleTime < CURRENT_SAMPLE_TIME)
27 sampleTime = millis();
31 void CurrentMonitor::check()
35 this->current = (float) (analogRead(this->pin) * CURRENT_SAMPLE_SMOOTHING + this->current * (1.0-CURRENT_SAMPLE_SMOOTHING));
36 int signalPin = DCCppConfig::SignalEnablePinProg;
38 signalPin = DCCppConfig::SignalEnablePinMain;
41 if (this->current > CURRENT_SAMPLE_MAX && digitalRead(signalPin) == HIGH)
43 if (DCCppConfig::SignalEnablePinProg != 255)
44 digitalWrite(DCCppConfig::SignalEnablePinProg, LOW);
45 if (DCCppConfig::SignalEnablePinMain != 255)
46 digitalWrite(DCCppConfig::SignalEnablePinMain, LOW);
47 INTERFACE.print(this->msg);
51 long int CurrentMonitor::sampleTime=0;