Pomiar odleglosci i predkosci


Witam !
Od kilku dni z tym walczę,czym więcej czytam tym mniej wiem.Musze zrobić licznik do quada.Oryginalnie nie jest montowany w tym modelu, a wymagany jest do rejestracji. Do tej pory ściemniałem zasłaniając sie GPS. Do testów wykorzystuje wentylatorek z komputera. Sygnał podaje na T1 i tu mierze obroty.To działa w przerwaniu 500ms.Chce jeszcze licznik kilometrów i prędkościomierz.Tu mam problem.Co nie wykombinuje to jest źle.

  Pomiar_odleglosci:
 
      Incr Odleglosc1                                     'obroty kola
If Odleglosc1 > 18 Then Odleglosc1 = 0
  If Odleglosc1 = 18 Then Incr Odleglosc2
   If Odleglosc2 > 1000 Then Odleglosc2 = 0                'metry
    If Odleglosc2 = 1000 And Odleglosc1 = 0 Then
   Incr Odleglosc3                                          'kilometry
    End If
 
 Return
.
To mam na int2.Tylko jak to przeliczyć z podaniem obwodu kola.Te 18 obrotów to jest mniej więcej jeden metr,ale nie dokładnie.




Portret użytkownika mirley

Re: Licznik prędkości

Po pierwsze nie wiem jak to będziesz chciał potem w praktyce mierzyć ale wentylatory komputerowe często mają np 2 impulsy na obró lub coś podobnego..... Rozumiem że wykorzystujesz licznik counter timera T1 więc możesz zliczyć 65535 impulsów w jednym cyklu.

Co 0.5s wystepuje przerwanie w którym odczytujesz ilość obrotów/impulsów. Zatem jeśli w czasie 0.5s zliczysz np 3 impulsy to znaczy się że masz 6 obr/s..... jeśli chcesz przeliczyć to na prędkość liniową to musisz znać obwód koła.... jesli koło quada ma np 1m obwodu to znaczy że licząc 3 impulsy na 0.5s (6 imp na 1s) quad przejechał 6*1m po ziemi w czasi 1s co wprost daje prędkość 6m/s i po przeliczeniu *3.6 wartość 21.6km/h

Obliczenia są jednoznaczne i nie potrzeba żadnych ifów, które pisałeś wczesniej. Najprościej prędkość chwilową mierzyć właśnie tak. Jesli coś takiego Ci zadziała to pogadamy o jakimś uśrednianiu w czasie wyników i kumulowaniu przejechanych kilometrów

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Grzeniu 73

Dzieki za pomoc.Czasami kilka

Dzieki za pomoc.Czasami kilka mądrych slow pomoże więcej niż czytanie setki postów. Jeżeli dobrze zrozumiałem to powinno być tak:

   Wysw_lcd:
'Timer1 = Timer1 / 2
 
       Suma = 0                                             'wylicznie sredniej
        For D1 = 1 To 2
          B = Timer1
           Suma = Suma + B
       Next
           B = Suma / 2
            Licznik(1) = Counter1 * 60
   Locate 5 , 20
 
     Lcd "Obroty: " ; B ; " /sek. "                         'obroty na sekunde
       Suma = 0
        For D1 = 1 To 2
          B = licznik(1)
           Suma = Suma + B
       Next
           B = Suma / 2
    Locate 6 , 20
  Lcd "Obroty: " ; B ; " /min "                             'obroty na minute
      Licznik2 = Counter0
       Licznik2 = Licznik2 * 0.113                             'zmienna single
        Licznik2 = Licznik2 * 3.6
         Licznik3 = Int(licznik2)                            'zaokrąglenie prędkości
     Locate 7 , 20
       Lcd "Droga " ; Licznik3 ; "km/h

Do T1 mam podlaczaczone obroty silnika,a do T0 obroty kola,czyli kilometry.Prędkość będę mierzył tak samo jak w wiatraczku,tylko może więcej magnesów zamontuje.Teraz na jeden obrót ma dwa impulsy.Obwód mam 11,3 cm.Sprawdzanie jest co pol sekundy co daje mi 11,3 x3,6. Czy dobrze zrozumiałem?

Portret użytkownika mirley

RE: Prędkość

11.3cm na 0.5 sek -> czyli 22.6cm na 1 sek, czyli 0.226 m/s
dopiero m/s przeliczasz na km/h mnożąc przez 3.6

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.