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.

[C][atmega16] L293D zmiana kierunku obrotow w petli while

dturczak 28 Cze 2009 13:27 3943 14
  • #1 28 Cze 2009 13:27
    dturczak
    Poziom 19  

    Witam próbuje zmieniać kierunek obrotu przerobionego serwomechanizmu w za pomocą pilota w kodzie RC5.
    Samo odbieranie kodu naciśniętego przycisku oczywiście działa. (przykład z zapalaniem diody).

    Jak widać na obrazku poniżej do zmiany kierunku służą wejścia układu 1A,2A,3A,4A. wszystkie są podpięte pod port C.

    pojedyncze ustawienie kierunku w pętli while() jak również przed nią oczywiście działa
    np PORTC=0x30; //jeden kierunek
    PORTC=0x48; //drugi kierunek

    Problem następuje w momencie kiedy kierunek chce zmienić po wystąpieniu konkretnego warunku. Silniczki przestają reagować i sama Atmega wydaje się zawieszać. jak powinno się to programowo rozwiązać?


    Code:
       
    
    PORTC=0x30;

    while(1)   
      {
     
    char liczba=0;
    liczba=rc5_odczyt(pojedyncze);


    if (liczba==16)   //naciśnięty przycisk "lewy" na pilocie
    {

       PORTC=0x48; //zmiana kierunku

       PORTB|=_BV(3); //zapalenie diody
    }


    [C][atmega16] L293D zmiana kierunku obrotow w petli while[/code]

    1 14
  • #3 28 Cze 2009 14:03
    dturczak
    Poziom 19  

    tak wyłączone
    fuse bit
    0xDF 0xD9
    kwarc 12 mHz.

    0
  • #4 28 Cze 2009 14:17
    _Robak_
    Poziom 33  

    Daj pełny schemat i cały program. A jak miernikiem sprawdzasz wyjścia to są prawidłowe ? Wisze ze serwa zasilacz z VCC, nie jest to dobre rozwiązanie, jak bym radził dać na nóżkę zasilania silników napięcie sprzed stabilizatora, albo dać osobny stabilizator dla tych silników.

    0
  • #5 28 Cze 2009 15:02
    dturczak
    Poziom 19  

    narazie testuje wszystko na zasilaniu z usb, moze to byc przyczyną ?

    0
  • #6 28 Cze 2009 15:33
    _Robak_
    Poziom 33  

    Zalezy jaki stabilizator itp. Radze ci dac do serw osobne zrodlo zasilania i polaczyc masy. Moze byc tak ze serwa szarpna duzo pradu, stabilizator nie wydoli i procek ci sie resetuje, albo skacze pod jakis sobie tam adres.

    0
  • #7 28 Cze 2009 17:06
    dawid512
    Poziom 32  

    Zmierz jaki prąd pobiera serwo być może USB dostarcza zbyt mały prąd.

    0
  • #8 28 Cze 2009 17:26
    dturczak
    Poziom 19  

    caly uklad pobiera 250 mA (2 serwa).
    schemat: stabilizator(LM7805) ,teraz zewn zasilacz 15V 0,5A
    [C][atmega16] L293D zmiana kierunku obrotow w petli while

    z tego co pamietam to kiedys podobny uklad mi dzialal.nie wiem w czym problem :/ jaka jest szansa ze z atmega jest cos nie tak ?

    0
  • #9 28 Cze 2009 17:51
    janbernat
    Poziom 38  

    I 4 diody na każdy silnik -jak w danych L293

    0
  • #10 28 Cze 2009 17:56
    dturczak
    Poziom 19  

    ale to jest wersja D,diody powinny byc wbudowane ?

    0
  • #11 28 Cze 2009 18:43
    janbernat
    Poziom 38  

    Fakt do wersji D nie trzeba

    0
  • #12 28 Cze 2009 21:00
    _Robak_
    Poziom 33  

    250ma, ale kiedy, jak silniki sie kreca bez obciazenia? Pusc oba silniki i przytrzymaj palcem i zmierz wtedy pobor proadu, zaloze sie ze biora znaczni wiecej. Jesli zamiast silnika podpinasz diody i ci dziala to ja stawiam na zbytnie obciazenie pradowe, moze jakies zaklocenia od silnikow ? Wstaw rezystor pomiedzy reset i VCC i kondensator 100n pomiedzy Vcc i GND.

    0
  • #13 29 Cze 2009 00:01
    janbernat
    Poziom 38  

    To było niedawno.
    Daj płytkę.
    Czy pod kondensatorami przy kwarcu idą jakieś sygnały?
    Jak jest prowadzona masa?
    Zewnętrzny zasilacz-a serwa dalej zasilane z Vcc?
    Z 15V/5V na 0.5A=5W.
    7805-będzie się grzał.
    Spróbuj znaleźć zasilacz 9V/1A i dać zasilanie serw (czyli L293) przed 7805.

    Dodano po 5 [minuty]:

    Właśnie przy zmianie kierunku obrotów silniki pobierają dużo prądu.
    Być może potrzebna jest tzw. rampa-stopniowe zmniejszanie obrotów do 0 i ponowne stopniowe zwiększanie obrotów w przeciwnym kierunku.
    O tak: \____/

    0
  • #14 15 Kwi 2010 22:18
    kubagumowski
    Poziom 9  

    Może ktoś ma jeszcze jakiś pomysł

    0
  • #15 16 Kwi 2010 19:36
    Domel88
    Poziom 9  

    Daj inne zasilanie silników najlepiej, nawet ze zwykłej bateryjki 9V, bo jako elementy indukcyjne strasznie zakłócenia sieją, co może być przyczyną wieszania się atmegi. Nie napisałeś jak z tym poborem prądu silników w stanie zwarcie.

    0