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

L293 [atmega16][gcc] Gdzie w tym wszystkim jest błąd?

dturczak 14 Gru 2008 17:10 1960 8
REKLAMA
  • #1 5858428
    dturczak
    Poziom 19  
    L293 [atmega16][gcc] Gdzie w tym wszystkim jest błąd?
    przerobiony serwomechanizm probuje podlaczyc pod L293D i atmege16 tak jak na rysunku...
    posluguje sie kodem w mainie:
    	TCCR1B=0x03;
    	TCCR1B|= _BV(WGM12);    TCCR1A&=~_BV(WGM11);	  TCCR1A|= _BV(WGM10); 
    	TCCR1A|=_BV(COM1A1);	TCCR1A|= _BV(COM1A0);      //PWM,Phase Correct Invert | Fast PWM set compare,set bottom
    	DDRD|=_BV(5);
    	OCR1A=125;
    	TCNT1L=0x00;
    
    	TCNT1H=0x00;
    
    	DDRC=0xFF;
    	PORTC=0x10;

    probuje ustawic 01 lub 10 na PC3,PC4 a na PD5 wypelnienie 50%.
    niestety nie wiem gdzie jest blad...
    z polaczeniami i serwomechanizm napewno wszystko sie ok
  • REKLAMA
  • #2 5859892
    mirekk36
    Poziom 42  
    a czy przy podaniu na wejścia ENABLE wysokiego stanu (bez PWM) - silniki działają? sprawdzałeś?

    rozumiem, że przeróbka serw polegała na wyjęciu z nich elektroniki i pozostały zwykłe dwa silniczki DC ? tak???

    Ten prostz ukadzik zawsze ładnie działa, więc zobaczy czy wszystko masz dobrze popodłączane no i jak pisałem sprawdź bez PWM tylko stan wysoki na wejścia EN
  • #3 5860080
    dturczak
    Poziom 19  
    cos mi tu niegra...
    wzgledem masy na plytce na nozkach L293d mam napiecia :

    Input 4 5V
    Input 3 4.23 V

    Output 4 5V
    Output 5 5V

    Enable 2 5V

    przy kodzie :

    DDRC=0xFF;
    
    DDRD=0xFF;
    PORTD=0xFF;
    
    PORTC=0x00;
    PORTC|=_BV(4);
    PORTC&=~_BV(3);


    ---edit
    PORTC|=_BV(4); daje mi 5V
    PORTC&=~_BV(3); daje mi 4.25 V (niby jak? )
  • REKLAMA
  • REKLAMA
  • Pomocny post
    #5 5860442
    kolanopan
    Poziom 12  
    A czy kolega dturczak wyłączył JTAG w ATmedze ??
  • #6 5860459
    dturczak
    Poziom 19  
    mirekk36 przeciez widzisz ze enable mam pod pwm'a na porcie D ktory jest caly ustawiany przeze mnie w stan wysoki...

    jak mam to inaczej sprawdzic ?
  • #7 5860480
    mirekk36
    Poziom 42  
    ok, ale ja bym najpierw na twoim miejscu sprawdził czy działa prawidłowo cały układ z L293D tak nawet bez podłączonego procka, gdy sygnały EN mają stan wysoki a "ręcznie" podając 01 lub 10 na wejścia kierunku - czy silniczki prawidłowo działają - żeby być pewnym jednego.

    Skoro to powyżej będzie działać, to wtedy na twoim miejscu sprawdzałbym dalej ale...

    ... ale tak jak podpowiedział kolega powyżej - najpierw sprawdź albo potwierdź nam czy wyłączyłeś JTAG w procku? bo bez tego niektóre piny portu C nie będą działać ci poprawnie tak jak chcesz w tym przypadku
  • REKLAMA
  • #8 5861909
    dturczak
    Poziom 19  
    tak niestety JTAG,bylem przekonany ze wylaczylem :/
    mam teraz podpiete 2 przerobione serwa...
    	DDRD=0xFF;
    	TCCR1B=0x04;
    	TCCR1B|= _BV(WGM12);    TCCR1A&=~_BV(WGM11);	  TCCR1A|= _BV(WGM10); 
    	TCCR1A|=_BV(COM1A1);	TCCR1A|= _BV(COM1A0);      // Fast PWM set compare,set bottom
    	TCCR1A|=_BV(COM1B1);	TCCR1A|= _BV(COM1B0); 
    	DDRD|=_BV(5);
    	DDRD|=_BV(4);
    	OCR1A=150;
    	OCR1B=150;
    	TCNT1L=0x00;
    	TCNT1H=0x00;
    
    
    	DDRC=0xFF;
    	PORTC=0x00;
    
    	PORTC|=_BV(3);
    	PORTC&=~_BV(4);
    
    	PORTC|=_BV(6);
    	PORTC&=~_BV(5);

    czy to normalne ze kreca mi sie z rozna predkoscia ?
    przy recznym kreceniu odrazu widac ze jeden ciezej sie obraca...
    Serwa Hitec HS-322HD wiec w miare dobre wydawaly mi sie.
    chyba ze producent niczego nie gwarantuje :P
  • #9 5861923
    mirekk36
    Poziom 42  
    tego to już nie wiem ;) .... może same silniczki DC lekko się różnią w parametrach pracy - jako zwykłe silniczki - a gdy była do nich doczepiona elektronika to jakoś specjalnie skalibrowana dla każdego silniczka z osobna ... ale to już tylko czysto teoretyczne pytania. Ciekawe czy z dołączoną elektroniką także są jakieś różnice w pracy.
REKLAMA