• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Niedokładność pomiarowa - problem z odczytywaniem impulsow
#3
Podejście do tematu jest nieprawidłowe. Załóżmy że chcesz zliczać ile razy sąsiad był u Ciebie w domu. Możesz zainstalować kamerkę i sprawdzać codziennie o 11 czy sąsiad jest - możesz akurat nie trafić i zliczanie będzie błędne, ilość za mała. Możesz sprawdzać co 1h, ale sąsiad może przyszedł i jeszcze nie wyszedł - zliczanie będzie za duże. Lepiej ustawić na furtce między posesjami czujnik i zliczać w określonym czasie ile razy wchodził?
Przykład jest na forum, tutaj będzie max 1000 impulsów/sekundę, wystarczy: https://forum.arduinopolska.pl/watek-fas...u-programu 08-08-2018, 16:07 gdzie był zmieniany stan zmiennej, ty ją sobie zwiększaj, zmień też w linijce attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING ); może też być RISING, adekwatnie do rezystorów podciągających wewnętrznego/zewnętrznego/rodzaju impulsu.
Jeśli impulsów jest mało to lepiej mierzyć czas między nimi, tutaj wg mnie będzie wystarczająco dokładnie mierząc ich liczbę/s.
Kolejna rzecz to double - jak używasz UNO to nie ma double, jest tylko float. Można mieć zdefiniowaną taką zmienną, ale to i tak jest float - wolne obliczenia, niedokładne, większy kod. Lepiej taką zmienną zwiększyć x100 i potem na końcu podzielić /100, ale wszystko robić w zmiennych całkowitych, najlepiej dodatnich jeśli nie spodziewasz się liczb ujemnych - typy uint8_t, uint16_t,uint32_t,uint64_t, im mniejszy typ tym lepiej. Zmienne całkowite są zwykle lepszym wyborem.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Niedokładność pomiarowa - problem z odczytywaniem impulsow - przez kaczakat - 13-08-2018, 06:32

Skocz do:


Przeglądający: 3 gości