-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathLDR.cpp
More file actions
35 lines (31 loc) · 763 Bytes
/
LDR.cpp
File metadata and controls
35 lines (31 loc) · 763 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
LDR
*/
#include "LDR.h"
LDR::LDR(byte pin) {
pinMode(PIN_LDR, INPUT);
_pin = pin;
_lastValue = 1;
_outputValue = 0;
_min = 1023;
_max = 0;
}
// Wert des LDR in Prozent
byte LDR::value() {
int rawVal, val;
rawVal = (1023 - analogRead(_pin));
if ((rawVal != _lastValue) && ((rawVal == 0) || (rawVal == 1023) || (rawVal > (_lastValue + LDR_HYSTERESE) || (rawVal < _lastValue - LDR_HYSTERESE)))) {
val = rawVal;
_lastValue = val;
if (val < _min) {
_min = val;
}
if (val > _max) {
_max = val + 1;
}
byte mapVal = map(val, _min, _max, 0, 100);
mapVal = constrain(mapVal, LDR_MIN_PERCENT, LDR_MAX_PERCENT);
_outputValue = mapVal;
}
return _outputValue;
}