Skocz do zawartości
Zaloguj się, aby obserwować  
paczkaexpres

Psujący się TB6612

Pomocna odpowiedź

Cześć,
Ostatnio mam spory problem właśnie z tym mostkiem. Na początku po przylutowaniu działał poprawnie jednakże po 2/3 włączeniu stracił moc (prawdopodobnie się spalił, nie grzał się).

Nie mam zielonego pojęcia co może być powodem takiej sytuacji. Proszę więc was o pomoc.

Podam trochę informacji które może się przydadzą przy problemie.

Typ robota - minisumo.

Zasilanie - li-pol 7,4V

Silnik - Pololu 30:1

sterownik tb6612 zmostkowany (według procedury nazwy z takimi samymi numerkami łączymy)

Jeszcze wrzucę część kodu obsługujące to cudo:

	

#define PWM1_SET      		PORTB |=  (1<<6)
#define PWM1_CLR       		PORTB &= ~(1<<6)
#define PWM1_OUT  			DDRB  |=  (1<<6)

#define PWM2_SET      		PORTB |=  (1<<5)
#define PWM2_CLR       		PORTB &= ~(1<<5)
#define PWM2_OUT  			DDRB  |=  (1<<5)

#define BACKWARD_LEFT_SET    PORTB |=  (1<<3)
#define BACKWARD_LEFT_CLR    PORTB &= ~(1<<3)
#define BACKWARD_LEFT_OUT  	DDRB  |=  (1<<3)

#define FORWARD_RIGHT_SET    PORTB |=  (1<<7)
#define FORWARD_RIGHT_CLR    PORTB &= ~(1<<7)
#define FORWARD_RIGHT_OUT 	 DDRB  |=  (1<<7)

#define FORWARD_LEFT_SET    PORTB |=  (1<<2)
#define FORWARD_LEFT_CLR    PORTB &= ~(1<<2)
#define FORWARD_LEFT_OUT  	 DDRB  |=  (1<<2)

#define BACKWARD_RIGHT_SET   PORTB |=  (1<<4)
#define BACKWARD_RIGHT_CLR   PORTB &= ~(1<<4)
#define BACKWARD_RIGHT_OUT 	 DDRB  |=  (1<<4)
void Engine(int Left,int Right)
{


//Left = (Left * 255)/100;
//Right = (Right * 255)/100;
if(Left>0)
{
	BACKWARD_LEFT_CLR;
	_delay_us(3);
	FORWARD_LEFT_SET;
	OCR1A = Left;
}
else if(Left<0)
{
	FORWARD_LEFT_CLR;
	_delay_us(3);
	BACKWARD_LEFT_SET;
	OCR1A = -Left;
}
if(Right>0)
{
	BACKWARD_RIGHT_CLR;
	_delay_us(3);
	FORWARD_RIGHT_SET;
	OCR1B = Right;
}
else if(Right<0)
{
	FORWARD_RIGHT_CLR;
	_delay_us(3);
	BACKWARD_RIGHT_SET;
	OCR1B = -Right;
}

}
	TCCR0 = (1 << CS02); // preskaler 256
TIMSK = (1 << TOIE0) | (1<<TOIE3);
//Konfiguracja PWM
TCCR1A |= (1<<WGM12) | (1<<WGM10) | (1<<COM1A1) | (1<<COM1B1);
TCCR1A &= ~(1<<COM1C1) & ~(1<<COM1C0);
TCCR1B = (1<<CS11);

Co ciekawe bez aktywnego PWM wygląda że działa dobrze więc to może być problem programistyczny.

Jeszcze takie pytanie zdarzyło wam się może kiedyś ,że wasza płytka (element na niej) lekko szumiała. Mam dosyć czuły słuch (słyszę pracę transformatora w lampce biurkowej) więc nie wiem czy mam się z tego powodu martwić. Elementy na płytce to atmega128 ,akcelerometr, 74hc595 , bluetooth.

Udostępnij ten post


Link to post
Share on other sites

Masz kondki 100nF przy mostku? Też tak kiedyś miałem i spaliłem 4 sztuki. Dopiero jak dodałem jeszcze jednego kondka to wszystko zaczęło działać normalnie.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

Zaloguj się, aby obserwować  

×
×
  • Utwórz nowe...