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);
}
