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

[ATmega1280] [ATmega1280][Bascom] - Zakłócenia zliczania obrotów przy włączonym PWM

M.R.O. 04 Lut 2013 02:24 2010 8
REKLAMA
  • #1 11885626
    M.R.O.
    Poziom 10  
    Witam

    Posiadam silnik z dołączonym enkoderem i tarczą (z drukarki), steruję prędkością obrotową za pomocą PWM, natomiast przerwanie INT wykorzystuje do zliczania obrotów silnika. Problem polega na tym że zliczanie obrotów silnika bez uruchomionego PWM działa poprawnie, gdy go włączę szaleje (nawet gdy obracam tarczkę palcem). Sygnały od enkodera są poprawne (sprawdzałem oscyloskopem), czy jest możliwość że sprzętowo nie da się tego obsłużyć ?

    Pod spodem prosty program, jak nacisnę guzik wrzuca mi na LCD wartość zmiennej D. Niestety nie działa poprawnie, wystarczy wyłączyć PWM i poprawnie wyświetla

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam
    M.R.O.
  • REKLAMA
  • #2 11887488
    janoo0
    Poziom 11  
    Miałem podobny problem. Jeśli sterujesz silnikiem przez tranzystor z nogi mikrokontrolera to najprawdopodobniej zakłócenia generowane przez tranzystor wywołują niekontrolowane przerwania INT. Polecam temat:
    https://www.elektroda.pl/rtvforum/topic2487918.html
    4 post: "Przez pojemność bramka-źródło przedostają się szpilki do procesora powodując jego zakłócanie".
    Zamówiłem układ TLP250, w tym tygodniu dam odpowiedź jak się sprawdził.
  • #3 11887525
    BlueDraco
    Specjalista - Mikrokontrolery
    1. Włączasz przerwanie przed skonfigurowaniem procedury obsługi przerwania.

    2. Całkowicie niepotrzebnie wyłączasz i włączasz przerwanie w obsłudze przerwania.

    3. Nie zauważyłem, żebyś włączył podciąganie linii, po której jest zgłaszana przerwanie. Czy masz tam zewnętrzny rezystor podciągający? Jeśli nie - to to jest źródło problemu.
  • REKLAMA
  • #4 11889340
    M.R.O.
    Poziom 10  
    BlueDraco nie w tym rzecz. Janoo0 ja steruje silnikiem za pomocą L298 i problem wydaje mi się rozwiązany (nie testowałem jeszcze wszystkich silników). Sprawa była taka że mostek może przyjąć sygnał max 50KHz, przy prescale = 1 częstotliwość PWM równa się częstotliwości krwarcu czyli 16MHz (trochę za dużo :)). Po zmianie prescalera na 1024 silnik zaczął działać poprawnie. Co dziwne mam drugi taki sam mostek i silnik przy prescale = 1 tylko czasami gubi krok.

    PS. Janoo0 ciekawi mnie czy u Ciebie zmiana prescalera pomoże, daj znać :)
  • Pomocny post
    #5 11890209
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • Pomocny post
    #6 11892626
    janoo0
    Poziom 11  
    emarcus ma rację
    dla rozdzielczości PWM 8 bit częstotliwość PWM wynosi= częstotliwość oscylatora/preskaler/510
    Jeśli sterujesz za pomocą L298 to faktycznie raczej nie wina zakłóceń.
    U mnie na prescale większym od 64 zawór wchodzi w częstotliwość słyszalną i słychać piski, ale sprawdzę z czystej ciekawości :)
  • #7 11894796
    M.R.O.
    Poziom 10  
    Tak racja, mój błąd. W każdym razie działa tylko teraz nie wiem dlaczego, przy prescalerze = 1 mostek nie reaguje, przy 1024 wszystko działa.
  • REKLAMA
  • #8 11895031
    Konto nie istnieje
    Poziom 1  
  • #9 11899015
    M.R.O.
    Poziom 10  
    Dziękuję za wyjaśnienie problemu!. Temat zamykam
REKLAMA