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

Jak skonfigurować dwa PWM'y w ATmega8 do sterowania silnikami?

kotu 26 Mar 2006 16:58 1155 2
REKLAMA
  • #1 2459745
    kotu
    Poziom 14  
    Posty: 140
    Pomógł: 2
    Ocena: 2
    WITAM WSZYSTKICH SERDECZNIE!
    Mam następujący problem...
    Od dwóch tygodni buduję z kolegami robota. W sumie mamy już wszystko, moim zadaniem jest oprogramowanie go. Robot ma być autonomiczny, ma wykrywać i omijać przeszkody.
    Ze skonfigurowaniem sonarów nie miałem większych problemów, także z silnikiem krokowym, na którym został umieszczony sonar.
    GŁÓWNY PROBLEM ZACZĄŁ SIĘ W MOMENCIE KONFIGURACJI PWM'ÓW PROCESORA ATMEGA8 (BĘDĄCEGO SERCEM NASZEGO ROBOTA)
    Otóż moim planem jest wysterowanie silników napędzających naszego robota z wykorzystaniem tranzystora MOSFET, do bramki którego dochodzić będzie prąd z PWM'A. Dzięki temu możliwa będzie regulacja prędkości silnika. Pierwszego PWM'A, wykorzystującego wyjście PB1 z niewielką pomocą "kolegi Google'a" udało mi się skonfigurować i wysterować pierwszy silnik. Znacznie gorzej jest z PWM'EM wykorzystującym wyjście PB2. Po wielu próbach udało mi się go co prawda skonfigurować w ten sposób, że diodka podłączona do niego mrugała, jednak nie zmieniała płynnie mocy świecenia... NIE JESTEM W STANIE SKONFIGUROWAĆ OBU PWM'ÓW, ABY DZIAŁAŁY NIEZALEŻNIE
    Mam prośbę, aby ktoś, kto przeczyta ten post i uzna, że nie jest to dla niego żaden problem, napisał mi fragment kodu w C konfigurującego oba PWM'Y jednocześnie. Gdy uda mi się dzięki tej pomocy napisać program, który będzie rozjaśniać i ściemniać 2 diodki przypięte do PB1 i PB2 w różnym tempie, wówczas będę mógł wysterować oba silniki i skończymy robota.
    Bardzo dziękuję za zainteresowanie się problemem!
    KoTu[/b]
    Moderowany:


    Nie pisz z włączonym CapsLock
    And!

  • REKLAMA
  • #2 2459894
    pubus
    Poziom 30  
    Posty: 1289
    Pomógł: 139
    Ocena: 32
    Dwa kanały PWM masz w timer1...
    Jeden kanał to rejestr OCR1A i wyjście OC1A...
    Drugi kanał to rejestr OCR1B i wyjście OC1B...
    Sprawa jest dość prosta...
    Wypełenienie dla danego kanału ustawiasz zmieniając wartość rejestru który mu odpowiada...
    Nową wartość podstawiasz w obsłudze przerwania od przepełnienia...
  • #3 2497782
    kotu
    Poziom 14  
    Posty: 140
    Pomógł: 2
    Ocena: 2
    Dzięki!
    Teraz łątwiej będzie ruszyć mi z tym robotem :D
REKLAMA