poi ho provato questo
void setup() {
Serial.begin(9600);
// initialize the sensor pin as an input
pinMode(sensorPin, INPUT);
// Read starting value for millis... (just some value)
while(digitalRead(sensorPin) == LOW) {;}
hoog = millis();
}
void loop(){
// Check for high and low timing - low time * 2 = PPM
while(digitalRead(sensorPin) == HIGH) {;}
laag = millis();
hoogTijd = laag - hoog;
while(digitalRead(sensorPin) == LOW) {;}
hoog = millis();
laagTijd = hoog - laag;
// Validity check high+low = 1004 (small margin or error allowed -> 990)
if(laagTijd + hoogTijd > 990)
{
Serial.print("H: ");
Serial.println(hoogTijd,DEC);
Serial.print("L: ");
Serial.println(laagTijd,DEC);
Serial.print("CO2 - ");
Serial.print(laagTijd * 2,DEC);
Serial.println(" ppm");
} else {
// Output in case of invalid check: value instead of 1004 ms
Serial.print("-- CK:");
Serial.println(laagTijd+hoogTijd, DEC);
}
}
ancora peggio...