Skocz do zawartości

Jak zarejestrować przebieg prędkości silnika wraz z jego przyśpieszeniem?


Pomocna odpowiedź

(edytowany)

 

6 godzin temu, _LM_ napisał:

@rizone1234 na jakim mikrokontrolerze to robisz?

 

6 godzin temu, rizone1234 napisał:

Robię to na Arduino

Arduino to nie mikrokontroler. 

2 godziny temu, rizone1234 napisał:

Chyba pomiar czasu jest źle zrobiony

Jakbyśmy wiedzieli jaki układ siedzi na twojej płycie ...

2 godziny temu, rizone1234 napisał:

pomoże mi ktoś znaleźć bład

Mikrokontrolery od starożytnych 8051 po wszelkie dzisiejsze mają wbudowane liczniki sprzętowe i na nich oparłbym pomiar. Nie wiedząc jaki mikrokontroler jest wmontowany w twoje arduino to niestety ciężko będzie.

Edytowano przez _LM_
(edytowany)
11 godzin temu, rizone1234 napisał:

Silnik mierzy 140 pare obrotów więc chyba jest dobrze, ale teraz nie rozumiem mam czas i jak mam uzyskać przyspieszenie? Poprzez różnicę dwóch pomiarów prędkośći? Te pomiary przecież odejmą się do siebie i nie da to dobrego wyniku. Z pomiarem czasu pomiędzy impulsami od razu wyskakuje pełna prędkość obr/min nie widać przyspieszenia

Obejrzyj to https://www.youtube.com/watch?v=HRaZLCBFVDE

Jeśli znasz angielski z pewnością pomoże. Jeśli nie znasz, to włącz transkrypcję i tłumaczenie.

Edytowano przez Sylba
11 godzin temu, rizone1234 napisał:

Poprzez różnicę dwóch pomiarów prędkośći? Te pomiary przecież odejmą się do siebie i nie da to dobrego wyniku. Z pomiarem czasu pomiędzy impulsami od razu wyskakuje pełna prędkość obr/min nie widać przyspieszenia

Średnie przyspieszenie w okresie kolejnych pomiarów t1- t2 to: a =( V2 - V1)/(t2-t1). Potrzebujesz dwóch kolejnych odczytów prędkości i czasów .

17 godzin temu, rizone1234 napisał:

Enkoder jest 2 kanałowy generuje 64 impulsy na obrót jego prędkość to 530obr/min, problem w tym że mierze tylko kanał A czyli mam tylko 32 impulsy na obrót i czas zmierzony to 700 microsek, z obliczeń zatem wychodzi ze silnik powienien się krecic z predkościa ponad 2500 obr min wykres jest po przeliczeniu przekładni

Mógłbyś napisać jaki dokładnie masz silnik? W opisie do podobnego silnika Pololu 19:1 Metal Gearmotor 37Dx68L mm 12V with 64 CPR Encoder jest napisane:

Licząc zarówno narastające, jak i opadające krawędzie wyjść A i B, można uzyskać 64 zliczenia na obrót wału silnika. Użycie tylko jednej krawędzi jednego kanału daje 16 zliczeń na obrót wału silnika, więc częstotliwość wyjścia A jest 16 razy większa od częstotliwości obrotów silnika.

Biorąc to pod uwagę oraz podane przez ciebie t = 700us wychodzi: f=1/t = 1430 Hz czyli n = 60*f/16 = 5360 obr/min.

Biorąc pod uwagę prędkość obrotową silnika n=530 obr/min otrzymamy: f = n*16/60 = 141 Hz oraz t=1/f=7 ms (10 x więcej niż zmierzyłeś).
Gdyby to były 32 impulsy na obrót, wówczas wynika byłby: f = 282 Hz oraz t=3,5 ms.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...