Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wejście RC control - wyjście PWM.

JET65 19 Paź 2013 18:20 1215 2
  • #1 19 Paź 2013 18:20
    JET65
    Poziom 2  

    Witam
    Mam do Was wielką prośbę. Poszukuję jakiegoś punktu zaczepienia, informacji, która mnie naprowadzi na właściwy sposób rozwiązania problemu. Chcę sterować obrotami silniczka DC wykorzystując sygnał wejściowy RC. Muszę zatem, z tego co rozumiem, rozpoznać czas trwania impulsu wejściowego w zakresie 1-2,5ms, po czym spowodować aby wypełnienie sygnału PWM dla silniczka było proporcjonalne do tego czasu. Niestety przerosło mnie to i potrzebuję jakiejś podpowiedzi.
    Czy mogę liczyć na nią u Was? Próbuję swoich sił w C.
    Pozdrawiam
    Tomasz

    0 2
  • #2 19 Paź 2013 18:26
    BlueDraco
    Specjalista - Mikrokontrolery

    Zapewne potrzebujesz dwóch timerów - jednego do pomiaru czasu trwania impulsu, drugiego do wygenerowania przebiegu PWM dla silnika. Zacznij od tego drugiego - przykładów znajdziesz sporo. Jak coś napiszesz - pokaż, spróbujemy pomóc.

    0
  • #3 20 Paź 2013 00:08
    JET65
    Poziom 2  

    Rozumiem, że ustawiam Timer0 na Fast PWM, a wartość OCR0 podstawiam z wyliczeń na podstawie czasu trwania impulsu wejściowego sygnału RC.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Częstotliwość sygnału PWM = 3,9KHz przy taktowaniu 8MHz. Wyjście sprzętowego PWM na PB3 w Atmega32, bo na nim ćwiczę.
    Czyli jeśli dotąd dobrze rozumuję, to drugi Timer/Counter potrzebny jest właśnie do detekcji tego czasu impulsu RC.
    Próbuję zrobić to tak:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Czy możecie zweryfikować to co powyżej?
    Na oscyloskopie widzę, że program działa, ale nie do końca prawidłowo chyba z powodu przepełnienia licznika. Nie wiem, jak sobie z tym poradzić. Uprzejmie proszę o podpowiedź.
    Tomasz

    0