Ja po prośbie do doświadczonych bardziej niż ja...
Otóż próbuję zliczać obroty koła.
Pomiar 1 (jeden impuls/1 obrót koła): Czujnik IR TCRT5000 osłonięty po bokach, w odległości ok 10-15mm od odbijającej powierzchni koła, na której przylepiona jest czarna taśma o długości ok 10cm. Pomiar na analogowym pinie pokazuje ok 400 gdy przed czujnikiem jest powierzchnia odbijająca i ok 27 gdy przed czujnikiem jest taśma.
Pomiar 2 (10 impulsów na 1 obrót koła): na kole umocowanych jest 10 silnych magnesów (10mm średnica, 5mm wysokość, materiał N52) odległość miedzy magnesami ok 10cm. CZujnik - miniaturowy kontaktron. Odległość od magnesu do kontaktronu 3-4mm (sprawdzone - kontaktron zwiera się już przy odległości ok 15mm od magnesu).
Pomiar 3: jak pomiar 2 ale zamiast kontaktronu jest czujnik Halla - odległość od magnesu ok 4-5mm.
pomiar 4 i 5 tak jak 2 i 3, ale ilość magnesów zredukowana do 5
Płytka Arduino UNO R3 ATmega328P (CH340T), nieoryginalne, skrypty bądź z podręcznika Arduino bądź z instrukcji do czujnika Halla.
Spostrzeżenie - przy wolnych obrotach wszystko działa jak powinno i impulsy zliczane są poprawnie. Jednak przy nieco większej szybkości w każdej z powyższych konfiguracji "gubione" są impulsy, czyli zliczonych jest mniej niż powinno być. Prędkość przy której impulsy zaczynają być gubione szacuję na 15-20km/h.
Gdyby impulsów zliczane było więcej niż powinno, to w przypadku kontaktronu zwaliłbym to na wibrację styków... ale tu nie ma znaczenia jaki czujnik jest zastosowany. Ja tego nie rozumiem - przecież częstotliwość pracy Arduino jest o wiele wyższa niż częstotliwość zliczanych impulsów. Czy możliwe jest że płytka Arduino nie działa poprawnie? A jeśli to nie to, to w czym jest problem?
Z góry dziękuję za jakiekolwiek sugestie.