Skocz do zawartości

Problem z mostkiem L6201


Pomocna odpowiedź

Napisano

Witam wszystkich 🙂

Zakładam temat, ponieważ mam problem z uruchomieniem mostków sterujących silniki w LFie. Mostek wymaga dwóch sygnałów 0/1 do sterowania kierunku obrotów oraz 1 sygnał PWM jako Enable. Częstotliwość PWM powinna być między 30kHz, a 100kHz. Ustawiłem atmegę jak trzeba, sygnały są odpowiednio podawane, częstotliwość ok. 31.5kHz, a mostki cisza.

Pytanie do Was czy spotkaliście się z takim problemem i jak udało Wam się go rozwiązać?

Dorzucam schemat połączeń mostka z Eagle'a:

Będę bardzo wdzięczny za pomoc, szczególnie przed sobotnimi zawodami! 🙂

Pzdr.

Luuke

Jak dobrałeś częstotliwość PWM?

Spróbuj ustawić na stałe jedynkę lub zero na wyjściu gdzie normalnie jest pwm i zamiast silników podłącz jakiegoś leda.

Jak dobrałeś częstotliwość PWM?

Spróbuj ustawić na stałe jedynkę lub zero na wyjściu gdzie normalnie jest pwm i zamiast silników podłącz jakiegoś leda.

Fclk = 16 MHz

N (preskaler) = 1

TOP = 255 (PWM 8-bitowy)

wychodzi jakieś 31372 Hz

Właśnie, skąd twierdzenie, że "powinna być między 30 a 100kHz" ?

Screen z DSa mostka:

Spróbuj ustawić na stałe jedynkę lub zero na wyjściu gdzie normalnie jest pwm i zamiast silników podłącz jakiegoś leda.

Nadal nic :/

Jaki mikrokontroler oraz tryb PWM?

ATmega128, tryb Phase Correct

No tak zapomniałem zapytać który timer? 🙂

Najlepiej pokaż jak go inicjujesz (fragment kodu).

#include <avr/io.h>
#include <util/delay.h>
#include <avr/iom128.h>

//PB6(0C1B) - PWM RIGHT
//PE6 - I/O RIGHT
//PE7 - I/O RIGHT
//PB7(OC1C) - PWM LEFT
//PC0 - I/O LEFT
//PC1 - I/O LEFT

int main(){
DDRB=0b11111111;
DDRE=0b11111111;
DDRC=0b11111111;

TCCR1A|=(1<<WGM10)|(1<<COM1B1)|(1<<COM1B0)|(1<<COM1C1)|(1<<COM1C0);
TCCR1B|=(1<<CS10);

while(1){
	PORTB=0b11111111;
	PORTC=0b01010101;
	PORTE=0b01010101;
	OCR1B=200;
	OCR1C=50;
}
}

taki kod testowy na razie mam

Zanim sprawdzę czy poprawnie inicjujesz pytanie co ma na celu ciągłe ładowanie rejestrów w pętli głównej?:

OCR1B=200; 
OCR1C=50;
Zanim sprawdzę czy poprawnie inicjujesz pytanie co ma na celu ciągłe ładowanie rejestrów w pętli głównej?:
OCR1B=200; 
OCR1C=50;

w sumie to mogłem raz to załadować

Wiem ile wyrobi ten mostek więc sprecyzuję pytanie: a znasz DS silnika ? Jaka dla niego jest optymalna f do PWM ?

mam silniki Pololu 30:1 HP, ale niestety nie znam DS

Zapytałem skąd te 30kHz widząc dość pewne stwierdzenie, że taka być musi. Myślałem że może gdzieś trafiłeś na jakieś konkretne, wiarygodne info czy tp.

PWM jest to jedyny sposób regulacji obrotów silniczków DC z zachowaniem w całym zakresie max momentu obrotowego. O ile sam mostek można sprawdzić praktycznie na każdym silniczku i dowolnej f dla PWM ( w granicach możliwości mostka ) dając maksymalny wsp. wypełnienia duty 100% ( czyli nijako ciągły prąd stały ), to nie znam silniczków które zachowywałby moment przy aż tak dużej f. Owszem, przez jakiś tam minimalny zakres "od góry" duty silniczek będzie zwalniał, będzie jakaś tam regulacja ale można zapomnieć o momencie czy choćby obracaniu się przy duty 20-30%. 30kHz to jest ze 100 razy za dużo.

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