Skocz do zawartości

Problem z liczeniem impulsów Arduino Nano 3


marmatmm

Pomocna odpowiedź

Zrobiłem sterownik do obracania anteną , dostałem do niego oprogramowanie , które podobno działa ale mnie źle liczy impulsy tzn, nie jest powtarzalne czyli obracam o 180st i wracam i mam róznice nawet do 30 st. Impulsy przez transoptor wchodzą na wejście D2 , w szereg właczyłem diode LED aby sprawdzic czy impulsy sa ok , dioda miga jednostajnie wygląda prawidłowo.

przy małym ruchu mignie 2 razy a sterownik policzy czasami 2 czasami 4 ..

Przekładnia jest ustawiona 1:1

#define AZ_POSITION_PULSE_DEG_PER_PULSE 1.0

#define EL_POSITION_PULSE_DEG_PER_PULSE 1.0 

Działa tylko AZ- Azymut , Elewacja nie podłaczona nie istotna...

Schemat

Sprawdziłe układ i wydaje mi sie że to wina programu , podłaczałem też enkoder na wejście i jak powoli kręciłem to wszystko liczy ok 1 impuls 1 stopień przy szybszym trudno powiedzeć bo nie wiem ile poleciało i ile policzył .

Impulsator rotora impulsuje z niska częstotliwością ładnie widoć na oko .

Nie czuję sie na siłach sprawdzić program może ktoś pomoże ...

Cały program w załaczniku.

Pulse_Firmware.zip

Link do komentarza
Share on other sites

U mnie schemat nie powiększa się do czytelnych rozmiarów. Program wygląda jak z najgorszych snów.. Współczuję, jeśli to tam siedzi babol.

Co jest pierwotnym źródłem impulsów? Zestyk mechaniczny? Enkoder optyczny? Skoro jest jedno wejście, to w jaki sposób sterownik rozpoznaje kierunek? Wiedząc, w którą stronę wysterował napęd? Obsługa zliczania jest zrobiona na przerwaniu, więc program musiałby być bardzo zajęty żeby nie zdążył. Podejrzewam wielokrotne zbocza - tego nie widać na diodce LED i tu by się przydał oscyloskop. Pokaż dokładnie jak zrobiłeś sam impulsator i jak go podłączyłeś do płytki Arduino. Może wystarczy prosty filtr RC.

Link do komentarza
Share on other sites

Dziękuję za odpowiedź , program jak pisałem jest przeróbka z wersji gdzie był potencjometr zamiast impulsatora dlatego może tak wygląda, Ktoś go przerobił pod impulsator ale podobno ma działać .

Jeżeli chodzi o kierunek obrotu to on wie po stopniach bo liczy od 0-360 st taki ma zakres lub też sa przyciski do ręcznego sterowania CW (zgodnie z ruchem wskazówek) CCW (przeciwnie).

Źródłem impulsów jest kotaktron w przekładni i to raczej jest ok bo firma robi to od kilkunastu lat .Linia za dławikiem AZIMUTH jest zwierana do masy przez kontaktron w przekładni.

Poprawiłem schemat już otwiera sie powiększenie .

Porównuje podobne schematy i wszędzie tranzystor transoptora jest podłaczony odwrotnie do wejścia procesora Kolektor a Emiter do GND. Może tu coś nie gra?

Zmieniłem Emiter -Kolektor transoptora i jest prawie dobrze .

Gdy wyznaczam kąt obrotu enkoderem jest ok , gdy bawię się ręcznie przyciskami i zrobię kilka bardzo krótkich naciśnięć switcha wtedy wpadają jakieś bzdurna impulsy powodujące błąd.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.