1 #ifndef HEADER_LUMITRONIX_IFLEX_WORKSHOP_POWER_SENSE
2 #define HEADER_LUMITRONIX_IFLEX_WORKSHOP_POWER_SENSE
14 static constexpr
auto LUMITRONIX_IFLEX_WORKSHOP_POWER_SENSE_JACK_SENSE_PIN{4};
15 static constexpr
auto LUMITRONIX_IFLEX_WORKSHOP_POWER_SENSE_5V_EXT_SENSE_PIN{0};
19 uint8_t jackSensePin{LUMITRONIX_IFLEX_WORKSHOP_POWER_SENSE_JACK_SENSE_PIN};
20 uint8_t powerSensePin{LUMITRONIX_IFLEX_WORKSHOP_POWER_SENSE_5V_EXT_SENSE_PIN};
27 ::pinMode(jackSensePin, INPUT_PULLUP);
28 ::pinMode(powerSensePin, INPUT);
32 return HIGH == ::digitalRead(jackSensePin);
36 auto const THRESHOLD_VALUE =
static_cast<decltype(::analogRead(powerSensePin))
>((2.0 / 5.0) * 1024);
37 return ::analogRead(powerSensePin) > THRESHOLD_VALUE;
42 #define LUMITRONIX_CHECK_EXTERNAL_POWER \
44 if (!powerSense.IsBarrelJackPluggedIn()) { \
52 if (!powerSense.Is5VExtPresent()) { \
Definition: LUMITRONIX_iFlexWorkshop_PowerSense.h:17
bool IsBarrelJackPluggedIn()
Definition: LUMITRONIX_iFlexWorkshop_PowerSense.h:31
bool Is5VExtPresent()
Definition: LUMITRONIX_iFlexWorkshop_PowerSense.h:35
void Begin()
Definition: LUMITRONIX_iFlexWorkshop_PowerSense.h:26
LUMITRONIX_iFlexWorkshop_PowerSense()
Definition: LUMITRONIX_iFlexWorkshop_PowerSense.h:23