Liczymy obroty silniczka D65:
który przy zasilaniu 6V powinien mieć 100 rpm (=obrotów na minutę). My wykorzystujemy poznaną czujkę odbiciową TCRT5000:
Pierwsze zgrubne wyniki dały 1 pełen obrót w czasie 250ms, czyli 240 rpm (trochę dużo, ale to dlatego, że zailalem silniczek 8V – „nielegalnie”). Zrzut ekranu:
oraz program (wyjaśnienia i dyskusja później, jak też i omówienie dokładności pomiaru):
int pomiar[3],i=0,maksior; unsigned long t1,delta; void setup() { Serial.begin(9600); t1=millis(); } void loop() { // Serial.print(millis()); // Serial.print(" "); pomiar[0]=pomiar[1]; pomiar[1]=pomiar[2]; pomiar[2]=analogRead(A0); //Serial.println(pomiar[2]); if ((pomiar[1]<950)&&(pomiar[1]>300)&&(pomiar[1]>pomiar[0])&&(pomiar[1]>pomiar[2])){ delta=millis()-t1; if(delta>50){ Serial.print("1 obrot w "); Serial.print(delta); t1=millis(); Serial.print("ms, czyli rpm="); Serial.println(60*1000.0/delta); } } //delay(100); }