@@ -5,44 +5,47 @@ void onChange(float lux) {}
5
5
TEMT6000::TEMT6000 ()
6
6
{
7
7
m_rawValue = 0 ;
8
- m_sampleTimeMillis; = 0 ;
8
+ m_sampleTimeMillis = 0 ;
9
9
m_onChangeCallback = &onChange;
10
10
}
11
11
12
- TEMT6000::setup (uint8_t pin, float vccVoltage)
12
+ void TEMT6000::setup (uint8_t pin, float vccVoltage)
13
13
{
14
14
m_pin = pin;
15
15
m_vccVoltage = vccVoltage;
16
16
m_rawValue = this ->getRawValue ();
17
+
18
+ pinMode (pin, INPUT);
17
19
}
18
20
19
- void TEMT6000::setOnChangeCallback (void (*callback)(), unsigned long sampleTimeMillis)
21
+ void TEMT6000::setOnChangeCallback (void (*callback)(float ), unsigned long sampleTimeMillis)
20
22
{
21
23
m_sampleTimeMillis = sampleTimeMillis;
22
24
m_timer.setup (RT_ON, m_sampleTimeMillis);
23
- m_fallingEdgeCallback = callback;
25
+ m_onChangeCallback = callback;
26
+ m_timer.start ();
24
27
}
25
28
26
- int TEMT6000::getRawValue ()
29
+ int16_t TEMT6000::getRawValue ()
27
30
{
28
31
return analogRead (m_pin);
29
32
}
30
33
31
34
float TEMT6000::getVoltage ()
32
35
{
33
- return this ->getRawValue () * m_vccVoltage / 1024.0 ;
36
+ return ( this ->getRawValue () * m_vccVoltage / 1023.0 ) ;
34
37
}
35
38
36
39
float TEMT6000::getCurrent ()
37
40
{
38
- return this ->getVoltage () / 10000.0 ; // 10.000 Ohms resistor
41
+ return ( this ->getVoltage () / 10000.0 ) ; // 10.000 Ohms resistor
39
42
}
40
43
41
44
float TEMT6000::getLux ()
42
45
{
43
46
// Convert current to microamps and apply formula
44
47
// Formula: Lux = 2.0 * Microamps
45
- return this ->getCurrent () * 1000000 * 2.0 ;
48
+ return ( this ->getCurrent () * 1000000 * 2.0 ) ;
46
49
}
47
50
48
51
void TEMT6000::loop ()
@@ -53,6 +56,7 @@ void TEMT6000::loop()
53
56
{
54
57
m_rawValue = this ->getRawValue ();
55
58
m_onChangeCallback (this ->getLux ());
59
+ m_timer.start ();
56
60
}
57
61
}
58
62
}
0 commit comments