Skocz do zawartości

Psujący się TB6612


paczkaexpres

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.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.