logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Pomiar napięcia, przetwornik A/C [Atmega8][BASCOM]

Totalniezielony 08 Mar 2022 15:51 714 3
REKLAMA
  • #1 19921270
    Totalniezielony
    Poziom 5  
    Witam
    Konstruuję prosty woltomierz (0-5V) w którym wskazówka napędzana jest silnikiem krokowym. Zadawane napięcie regulowane jest potencjometrem. Wczytywana wartość jest odpowiednio przeliczana na wolty, potem na odpowiednią ilość kroków silnika. Problem w tym, że na etapie wczytywania przez przetwornik A/C, wartość pomiaru nie jest stabilna. To znaczy, "skacze" między dwiema wartościami, wywołując na wyświetlaczu dyskotekę liczb, oraz powodując drgania wskazówki.
    Próbowałem zmienić konfigurację przetwornika min. ustawiając prescaler = 128 - nie wiele to dało. Znalazłem info, że można by rozwiązać ten problem za pomocą buforu cyklicznego i że można go zrobić w postaci tablicy, co też zrobiłem, (chciałem, aby ostateczna wartość napięcia była średnią z ostatnich 4 pomiarów ale nie jestem pewny czy to dobry tok rozumowania) ale i to nie pomogło. Byłbym wdzięczny za jakiekolwiek podpowiedzi, bo nie mam już pomysłów za bardzo jak z tego wybrnąć.

    P.S Wartość napięcia jest obliczona z dokładnością do kilkunastu miejsc po przecinku, może dało by się zmniejszyć jakoś dokładność do 1-2 miejsc po przecinku? Podziałkę na tarczy mam 0.1[V] więc wydaje mi się, że dokładność do 1-2 miejsc po przecinku byłaby wystarczająca.

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 19921335
    tomaszdko
    Poziom 12  
    Czyli Tobie chodzi o uśrednianie wyniku . Ja bym dał więcej próbek (np: 50). Są ciekawsze rozwiązania - filtr dolnoprzepustowy , ja robiłem z tego filmu (to jest pod arduino) przerobiłem i chodzi świetnie w bascom



    Tu jest obrabiany wynik z akcelerometru ale to bez znaczenia bo podasz wynik z adc.

    Jest też strona Link
    Niby to jest filtr kalmana ale ja nie będę się wypowiadał na ten temat bo efekt miałem praktycznie taki sam jak przy filtrze dolnoprzepustowym . To będzie najlepsze rozwiązanie dla ciebie jeśli nie chcesz się bawić w przerabianie tego z arduino w filmie YT

    Dobierasz sobie wartość "k" tak by zmiany były najmniejsze ale nie przesadzaj
  • REKLAMA
  • #3 19921420
    bart-projects
    Poziom 29  
    Łap. Voltomierz będzie działał stabilnie, ale wiedz, że Ty masz błąd logiczny w swoim kodzie.

    Pomysl. Jeśli u Ciebie "Steps" to zaokrąglone do całych poprzez Round "Angle" to jest to wartość ustalana przez napięcie czyli w pewnym momencie będzie stała. A tu zmienna "Kroki" jest porównywana z ta zmienną ""Steps", ale po porównaniu dodajesz lub odejmujesz od "Kroki" wartość 4. To się NIGDY nie będzie zgadzało i wskazówka ZAWSZE będzie drżała.
    Ten kod mozna śmiało testować w bascomowym symulatorze. Pokazuje jakieś dziwne kąty. Nie do końca to chyba przemyślane.

    Pomiar napięcia, przetwornik A/C [Atmega8][BASCOM]

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #4 19925976
    Totalniezielony
    Poziom 5  
    Stosując twój kod, jest znaczna poprawa, byłbym wdzięczny za wytłumaczenie komend: "shift" oraz "right" bo w materiałach z jakich korzystam do nauki Bascoma, nie natknąłem się na takie komendy. W kwestii dziwnych wartości kątów, zapomniałem dodać, że korzystam z silnika z przekładnią.
REKLAMA