Stap 3: Uploaden van de schets
int geleid = 13; de pin waar u de LED zal zetten
int sensorpin = A3; de analoge pin waar je je sensorLED
int resetteller = 0; de rest zijn tellers en variabelen te berekenen met
int sens = 0;
int teller = 0;
int basis = 1024;
int test = 1024;
int test2 = 1024;
int test3 = 1024;
Dit zijn de waarden te spelen met om beter (of erger) resultaten
int marge = 5; de ruimte tussen een positieve en negatieve lezing
int vertraging = 1; de snelheid van de lezingen; een lager nummer is een hogere snelheid
int monsters = 70; de hoeveelheid monsters te vergelijken zodat één lezing
int resetsamples = 30; Hoeveel cycli te voeren van het licht op voordat u de waarde meer niet vertrouwt
VOID Setup {}
pinMode led (, uitvoer);
Serial.begin(9600); geen reële deel van het programma, alleen voor foutopsporing
voor (teller = 0; teller < monsters; teller ++) {/ / herinner me de laagste waarde uit vele lezingen
Sens = analogRead(sensorpin);
Als (sens < basis) {basis = sens;}
delay(vertraging); de sensor moet een vertraging hier om haar adem te vangen
}
}
void loop {}
voor (teller = 0; teller < monsters; teller ++) {/ / herinner me de laagste waarde uit vele lezingen
Sens = analogRead(sensorpin);
delay(vertraging); de sensor moet een vertraging hier om haar adem te vangen
Als (sens < testen) {}
Test3 = sens; Vergeet niet de 3 laagste lezingen
Test2 = test3;
testen = test2;}
}
Als (test < basis-marge & & test2 < basis-marge & & test3 < basis-marge) {//all 3 lage lezingen mus worden < de basis lezing
digitalWrite (led, hoog);
resetteller ++; tellen hoe lang de LED brandt
}
else {}
digitalWrite (led, laag);
basis = test; Als de laagste test lezing hoger dan de basis is, de basis zal worden teruggesteld
resetteller = 0;
}
Als (resetteller > resetsamples) {basis = test;} als LED blijft op lang, we niet vertrouwen en basis reset
Serial.Print(basis); Serial.Print(""); Serial.Print(test); Serial.Print(""); Serial.println (sens); //just voor foutopsporing
testen = 1024;
}