Weil ich da Probleme mit der Funktion habe, schreib ich diesen Thread.
Meine Info kommt da her : https://cdn.sparkfun.com/datasheets/BreakoutBoards/CCS811_Programming_Guide.pdf
(CCS811 Programming and Interfacing Guide)
Orginaltext : "When this pin is logic high the CCS811 enters sleep mode"
Leider funktioniert das aber nicht :
Das hier klappt zwar vom Stromverbrauch her (Attiny mitgemessen) :
1 |
void setup()
|
2 |
{
|
3 |
pinMode(1, OUTPUT); //das ist die onboard-LED
|
4 |
pinMode(3, OUTPUT); //GPIO für Sensor an (Wake=0)
|
5 |
digitalWrite(3,0); //Sensor an
|
6 |
//ccs.begin(); // ***** !!!
|
7 |
}
|
8 |
|
9 |
void loop()
|
10 |
{
|
11 |
digitalWrite(1,HIGH); //LED ein : kurzes Aufleuchten
|
12 |
delay(100);
|
13 |
digitalWrite(1,LOW); //LED aus
|
14 |
//--------------------------------------------------------
|
15 |
digitalWrite(3,0); //Sensor an (Wake=0)
|
16 |
delay(3000); //******17,2 mA***************
|
17 |
digitalWrite(3,1); //Sensor aus (Wake=1)
|
18 |
delay(3000); //******11,6 mA***************
|
Wenn ich aber messen will, und den Sensor initialisiere :
1 |
void setup()
|
2 |
{
|
3 |
pinMode(1, OUTPUT); //das ist die onboard-LED
|
4 |
pinMode(3, OUTPUT); //GPIO für Sensor an (Wake=0)
|
5 |
digitalWrite(3,0); //Sensor an
|
6 |
ccs.begin(); // ****************
|
7 |
}
|
8 |
|
9 |
void loop()
|
10 |
{
|
11 |
digitalWrite(1,HIGH); //LED ein : kurzes Aufleuchten
|
12 |
delay(100);
|
13 |
digitalWrite(1,LOW); //LED aus
|
14 |
//--------------------------------------------------------
|
15 |
digitalWrite(3,0); //Sensor an (Wake=0)
|
16 |
delay(3000); //******31,0 mA***************
|
17 |
digitalWrite(3,1); //Sensor aus (Wake=1)
|
18 |
delay(3000); //******29,4 mA***************
|
dann sinkt der Strom praktisch nicht mehr !
Weiter : wenn ich den IDLE-Mode aktiviere, geht der Strom wie beschrieben drastisch runter. ABER : Zurück in einen Betriebsmodus (z.b. 1SEC) bedeutet für den Sensor einen Reset, incl. neuer BAseline usw., der CO2-Wert ist dann stets 400 am Anfang.