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

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   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.

×
×
  • 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.