@@ -25,15 +25,26 @@ The CO2 concentration supported by the sensor has a range from 400 ~ 5000 ppm ±
25
25
This makes the sensor applicable for outdoor and indoor measurements in
26
26
a normal building setting.
27
27
The sensor is not suitable for CO2 heavy "industrial" environments.
28
+ See also datasheet warning below.
28
29
29
30
** Warning** The temperature range the sensor can measure is ** UNKNOWN**
30
31
as there is no documentation how to convert the raw data to meaningful one.
32
+ As far as information could tell this temperature is for Aosong internal use.
33
+ See also #12 (closed issue).
34
+ If you can decode the temperature bits please let me know.
31
35
32
36
The sensor can be read over I2C and over Serial.
33
37
This library only support the I2C interface (see hardware notes below).
34
38
39
+ Feedback as always is welcome.
35
40
36
- #### Pre-heat period
41
+ ### Datasheet warning
42
+
43
+ _ Do not apply this product to safety protection devices or emergency stop equipment,
44
+ and any other applications that may cause personal injury due to the product's failure._
45
+
46
+
47
+ ### Pre-heat period
37
48
38
49
When the sensor starts up it has a pre-heat period of 120 seconds.
39
50
The library provides functions to check the time since the constructor is called.
@@ -42,33 +53,29 @@ During the preheat period one can make measurements but one should use those
42
53
carefully as these are less accurate than after the preheat period.
43
54
44
55
45
- #### Calibration
56
+ ### Calibration
46
57
47
58
Also important is the calibration of the sensor, although done in the factory,
48
59
a CO2 sensor needs regular calibration. See datasheet for details.
49
60
50
61
51
- #### Power
62
+ ### Power
52
63
53
64
The sensor must be powered with 5V and uses about 225 mW.
54
65
This implies the sensor uses 50 mA (@5V ) and needs a separate power supply.
55
66
One must connect GND from the power supply to the GND of the MCU.
56
67
57
68
58
- #### Datasheet warning
59
-
60
- Do not apply this product to safety protection devices or emergency stop equipment,
61
- and any other applications that may cause personal injury due to the product's failure.
62
-
63
-
64
- #### Operating conditions
69
+ ### Operating conditions
65
70
66
- - temperature: 0°C~ +50°C ==> keep away from freezing cold or direct sunlight.
67
- - humidity: 0% ~ 95% RH ==> non-condensing conditions.
68
- - Data refresh frequency: 2 seconds
71
+ | parameter | value | notes |
72
+ | :--------------------| :-------------:| :--------|
73
+ | temperature | 0°C~ +50°C | keep away from freezing cold or direct sunlight.
74
+ | humidity | 0% ~ 95% RH | keep in non-condensing conditions.
75
+ | Refresh frequency | 2 seconds |
69
76
70
77
71
- #### Hardware
78
+ ### Hardware
72
79
73
80
```
74
81
TOPVIEW ACD10
@@ -96,7 +103,7 @@ If pin 5 is connected to GND (LOW), Serial / UART mode is selected.
96
103
This latter serial mode is ** NOT** supported by this library.
97
104
98
105
99
- #### Related
106
+ ### Related
100
107
101
108
- https://emariete.com/en/sensor-co2-mh-z19b/
102
109
- https://emariete.com/en/sensor-co2-low-consumption-mh-z1311a-winsen/
@@ -108,7 +115,7 @@ This latter serial mode is **NOT** supported by this library.
108
115
- https://github.com/RobTillaart/Cozir
109
116
110
117
111
- #### Tested
118
+ ### Tested
112
119
113
120
TODO: Test on Arduino UNO and ESP32
114
121
@@ -131,7 +138,7 @@ Every time the power is shut off the pre-heat would run again internally.
131
138
It is unclear what effect this has on the lifetime and quality of the sensor.
132
139
133
140
134
- #### I2C multiplexing
141
+ ### I2C multiplexing
135
142
136
143
Sometimes you need to control more devices than possible with the default
137
144
address range the device provides.
@@ -151,7 +158,7 @@ too if they are behind the multiplexer.
151
158
See example ** TCA9548_demo_ACD10.ino**
152
159
153
160
154
- #### I2C Performance
161
+ ### I2C Performance
155
162
156
163
Only test ** readSensor()** as that is the main function.
157
164
@@ -166,7 +173,7 @@ Only test **readSensor()** as that is the main function.
166
173
| 600 KHz | |
167
174
168
175
169
- TODO: run performance sketch.
176
+ TODO: run performance sketch on hardware .
170
177
171
178
172
179
## Interface
@@ -175,15 +182,15 @@ TODO: run performance sketch.
175
182
#include " ACD10.h"
176
183
```
177
184
178
- #### Constructor
185
+ ### Constructor
179
186
180
187
- ** ACD10(TwoWire \* wire = &Wire)** optional select I2C bus.
181
188
- ** bool begin()** checks if device is visible on the I2C bus.
182
189
- ** bool isConnected()** Checks if device address can be found on I2C bus.
183
190
- ** uint8_t getAddress()** Returns the fixed address 0x2A (42).
184
191
185
192
186
- #### PreHeat
193
+ ### PreHeat
187
194
188
195
PreHeat functions assume the sensor is (and stays) connected to power.
189
196
@@ -192,7 +199,7 @@ PreHeat functions assume the sensor is (and stays) connected to power.
192
199
left before preHeat is complete.
193
200
194
201
195
- #### Request and Read
202
+ ### Request and Read
196
203
197
204
The interface of the sensor is made asynchronous as there is a delay needed
198
205
of around 80 milliseconds between a request for new data and the availability
@@ -220,7 +227,7 @@ Use 5~10 milliseconds above the minimal value the sensor still works.
220
227
- ** uint8_t getRequestTime()** returns the current request time in milliseconds.
221
228
222
229
223
- #### Calibration
230
+ ### Calibration
224
231
225
232
Read the datasheet about calibration process (twice).
226
233
Incorrect calibration leads to incorrect output.
@@ -235,7 +242,7 @@ from 400 to 5000, the parameter value should be in this range.
235
242
Note: One should wait 5 milliseconds between the calibration calls (see datasheet).
236
243
237
244
238
- #### Miscellaneous
245
+ ### Miscellaneous
239
246
240
247
- ** void factoryReset()** idem.
241
248
- ** bool readFactorySet()** Read back if factory reset was successful.
@@ -245,7 +252,7 @@ Minimum length is 11.
245
252
Minimum length is 11.
246
253
247
254
248
- #### Debug
255
+ ### Debug
249
256
250
257
- ** uint8_t getLastError()** returns last error of low level communication.
251
258
0 commit comments