@@ -20,44 +20,25 @@ SFEWeatherMeterKit::SFEWeatherMeterKit(uint8_t windDirectionPin, uint8_t windSpe
20
20
_rainfallPin = rainfallPin;
21
21
22
22
// The wind vane has 8 switches, but 2 could close at the same time, which
23
- // results in 16 possible positions. The datasheet specifies the resistance
24
- // for each direction, which were used to calculate the expected ADC values
25
- // for a 12-bit ADC (4095 max) with a 10k pullup
26
- _calibrationParams.vaneADCValues [WMK_ANGLE_0_0] = 3143 ;
27
- _calibrationParams.vaneADCValues [WMK_ANGLE_22_5] = 1624 ;
28
- _calibrationParams.vaneADCValues [WMK_ANGLE_45_0] = 1845 ;
29
- _calibrationParams.vaneADCValues [WMK_ANGLE_67_5] = 335 ;
30
- _calibrationParams.vaneADCValues [WMK_ANGLE_90_0] = 372 ;
31
- _calibrationParams.vaneADCValues [WMK_ANGLE_112_5] = 264 ;
32
- _calibrationParams.vaneADCValues [WMK_ANGLE_135_0] = 738 ;
33
- _calibrationParams.vaneADCValues [WMK_ANGLE_157_5] = 506 ;
34
- _calibrationParams.vaneADCValues [WMK_ANGLE_180_0] = 1149 ;
35
- _calibrationParams.vaneADCValues [WMK_ANGLE_202_5] = 979 ;
36
- _calibrationParams.vaneADCValues [WMK_ANGLE_225_0] = 2520 ;
37
- _calibrationParams.vaneADCValues [WMK_ANGLE_247_5] = 2397 ;
38
- _calibrationParams.vaneADCValues [WMK_ANGLE_270_0] = 3780 ;
39
- _calibrationParams.vaneADCValues [WMK_ANGLE_292_5] = 3309 ;
40
- _calibrationParams.vaneADCValues [WMK_ANGLE_315_0] = 3548 ;
41
- _calibrationParams.vaneADCValues [WMK_ANGLE_337_5] = 2810 ;
42
-
43
- // The SparkFun Weather Shield Values uses a slightly different circuit, the
44
- // expected 12-bit values for it are specified here
45
- // _calibrationParams.vaneADCValues[WMK_ANGLE_0_0] = 3610;
46
- // _calibrationParams.vaneADCValues[WMK_ANGLE_22_5] = 2645;
47
- // _calibrationParams.vaneADCValues[WMK_ANGLE_45_0] = 2803;
48
- // _calibrationParams.vaneADCValues[WMK_ANGLE_67_5] = 1560;
49
- // _calibrationParams.vaneADCValues[WMK_ANGLE_90_0] = 1595;
50
- // _calibrationParams.vaneADCValues[WMK_ANGLE_112_5] = 1490;
51
- // _calibrationParams.vaneADCValues[WMK_ANGLE_135_0] = 1932;
52
- // _calibrationParams.vaneADCValues[WMK_ANGLE_157_5] = 1722;
53
- // _calibrationParams.vaneADCValues[WMK_ANGLE_180_0] = 2279;
54
- // _calibrationParams.vaneADCValues[WMK_ANGLE_202_5] = 2139;
55
- // _calibrationParams.vaneADCValues[WMK_ANGLE_225_0] = 3247;
56
- // _calibrationParams.vaneADCValues[WMK_ANGLE_247_5] = 3171;
57
- // _calibrationParams.vaneADCValues[WMK_ANGLE_270_0] = 3943;
58
- // _calibrationParams.vaneADCValues[WMK_ANGLE_292_5] = 3701;
59
- // _calibrationParams.vaneADCValues[WMK_ANGLE_315_0] = 3826;
60
- // _calibrationParams.vaneADCValues[WMK_ANGLE_337_5] = 3422;
23
+ // results in 16 possible positions. Each position has a different resistor,
24
+ // resulting in different ADC values. The expected ADC values has been
25
+ // experiemntally determined for various platforms, see the constants file
26
+ _calibrationParams.vaneADCValues [WMK_ANGLE_0_0] = SFE_WMK_ADC_ANGLE_0_0;
27
+ _calibrationParams.vaneADCValues [WMK_ANGLE_22_5] = SFE_WMK_ADC_ANGLE_22_5;
28
+ _calibrationParams.vaneADCValues [WMK_ANGLE_45_0] = SFE_WMK_ADC_ANGLE_45_0;
29
+ _calibrationParams.vaneADCValues [WMK_ANGLE_67_5] = SFE_WMK_ADC_ANGLE_67_5;
30
+ _calibrationParams.vaneADCValues [WMK_ANGLE_90_0] = SFE_WMK_ADC_ANGLE_90_0;
31
+ _calibrationParams.vaneADCValues [WMK_ANGLE_112_5] = SFE_WMK_ADC_ANGLE_112_5;
32
+ _calibrationParams.vaneADCValues [WMK_ANGLE_135_0] = SFE_WMK_ADC_ANGLE_135_0;
33
+ _calibrationParams.vaneADCValues [WMK_ANGLE_157_5] = SFE_WMK_ADC_ANGLE_157_5;
34
+ _calibrationParams.vaneADCValues [WMK_ANGLE_180_0] = SFE_WMK_ADC_ANGLE_180_0;
35
+ _calibrationParams.vaneADCValues [WMK_ANGLE_202_5] = SFE_WMK_ADC_ANGLE_202_5;
36
+ _calibrationParams.vaneADCValues [WMK_ANGLE_225_0] = SFE_WMK_ADC_ANGLE_225_0;
37
+ _calibrationParams.vaneADCValues [WMK_ANGLE_247_5] = SFE_WMK_ADC_ANGLE_247_5;
38
+ _calibrationParams.vaneADCValues [WMK_ANGLE_270_0] = SFE_WMK_ADC_ANGLE_270_0;
39
+ _calibrationParams.vaneADCValues [WMK_ANGLE_292_5] = SFE_WMK_ADC_ANGLE_292_5;
40
+ _calibrationParams.vaneADCValues [WMK_ANGLE_315_0] = SFE_WMK_ADC_ANGLE_315_0;
41
+ _calibrationParams.vaneADCValues [WMK_ANGLE_337_5] = SFE_WMK_ADC_ANGLE_337_5;
61
42
62
43
// Datasheet specifies 2.4kph of wind causes one trigger per second
63
44
_calibrationParams.kphPerCountPerSec = 2.4 ;
@@ -120,7 +101,7 @@ void SFEWeatherMeterKit::setADCResolutionBits(uint8_t resolutionBits)
120
101
{
121
102
for (uint8_t i = 0 ; i < WMK_NUM_ANGLES; i++)
122
103
{
123
- int8_t bitShift = (SFE_WIND_VANE_ADC_RESOLUTION_DEFAULT ) - resolutionBits;
104
+ int8_t bitShift = (SFE_WMK_ADC_RESOLUTION ) - resolutionBits;
124
105
125
106
if (bitShift > 0 )
126
107
{
0 commit comments