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

Attiny 2313 pulsujące napięcie na wyjściu

dominik59 07 Lis 2011 21:41 1424 8
REKLAMA
  • #1 10114428
    dominik59
    Poziom 10  
    Witam. Mam pytanie odnośnie wyjść w mikrokontrolerze Attiny2313.
    Otóż napisałem taki program do obsługi silnika krokowego:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Wszystko działa tylko gdy podpiąłem to wszystko pod przekaźniki HFD41/005-NS to zamiast wydawać jeden krótki dźwięk sygnalizujący załączenie , bzyczą .Zastosowałem przekaźniki ponieważ mikroprocesor jest 5v a silnik 12v.
    Moje pytanie brzmi jak wyeliminować bzyczenie , czy jest to możliwe czy mikrokontrolery tak mają że napięcie pulsuje? (jak podepnę diodę led to mruga szybko, prawie niezauważalnie)
    Za wszystkie odpowiedzi dziękuję :)
  • REKLAMA
  • #2 10114461
    kriss68
    Poziom 20  
    A dobrze masz ustawiony f_cpu? Przy 300ms opóźnieniu to wszystko będzie dosyć szybko działać. Kolejnym problemem może być to jak to wszystko jest połączone.
    Przy okazji takie coś nie ma sensu: DDRA &=~pa0 | ~pa1; Już prędzej tak: DDRA &=~(pa0 | pa1); ogólnie to cały kod jest co najmniej dziwny.
  • REKLAMA
  • #3 10114684
    dominik59
    Poziom 10  
    F_cpu mam ustawiony na 1000000hz. Takie opóźnienie pozwala na 1 obrót silnika na minutę. To że szybko działa to dobrze ... tylko dlaczego np. gdy się podepnie diodę led i na trzyma wciśniętym przycisku to ona nie świeci równomiernie przez te 0.3 sek tylko tak mruga jak bardzo szybki stroboskop?
    P.S. Ja niedawno zacząłem przygodę z mikrokontrolerami dlatego kod programu może być niezgodny z zasadami pisania.
  • #4 10115306
    kriss68
    Poziom 20  
    A kwarc masz jak ustawiony? Sterujesz silnikiem unipolarnym? Jak ma dzialac ten program? Przyciskami wybierasz kierunek obrotu czy jak?
  • REKLAMA
  • #5 10115507
    ^Rachel
    Poziom 21  
    Przekaźnik bzyczy właśnie przez te impulsy jakie podajesz, a pod który pin podepnięty jest ten przekaźnik. Taktujesz uC zewnętrznym kwarcem 10MHz?
  • #6 10116093
    dominik59
    Poziom 10  
    Nie, pracuje na kwarcu 1Mhz w Attiny 2313 . To wszystko jest zmontowane w ten sposób że styki silnika krokowego unipolarnego (styk 1-4) są podpięte pod 4 przekaźniki, które załączane są przez kolejne z nóżek mikroprocesora od PD2-PD5. Oczywiście jeden ze styków (styk 5) cały czas jest wpięty pod +(12v) a przekaźniki załączają -(12v). @^Rachel tylko że jak podepnę przekaźnik bezpośrednio pod zasilacz to słychać pojedyncze ...cyk... ,gdy odłączę wtedy pstryka 2 raz, a gdy przekaźnik jest załączany przez mikroprocesor wtedy przekaźnik bzyczy(czyli załączany jest wiele razy na sekundę) , dlatego wpięta dioda led(chwilowo, dla sprawdzenia nie na stałe) mruga bardzo szybko zamiast stale świecić . Chcę to bzyczenie jakoś wyeliminowac tylko czy to jest możliwe?
  • REKLAMA
  • #8 10116247
    kriss68
    Poziom 20  
    Zależy też jak szybko chcesz tym sterować bo przy małych obrotach przekaźniki też dadzą radę ale szybko się "wyklikają". Nie sądzisz, że to jest bardziej czytelne?
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    Nie gwarantuje, że działa bo pisałem to tak na szybko :)
  • #9 10116352
    dondu
    Moderator na urlopie...
    dominik59 napisał:
    ... jak podepnę przekaźnik bezpośrednio pod zasilacz to słychać pojedyncze ...cyk... ,gdy odłączę wtedy pstryka 2 raz, a gdy przekaźnik jest załączany przez mikroprocesor wtedy przekaźnik bzyczy(czyli załączany jest wiele razy na sekundę) , dlatego wpięta dioda led(chwilowo, dla sprawdzenia nie na stałe) mruga bardzo szybko zamiast stale świecić . Chcę to bzyczenie jakoś wyeliminowac tylko czy to jest możliwe?

    Pokaż schemat swojego projektu.
REKLAMA