Skocz do zawartości

Problem z mostkiem L6201


Luuke

Pomocna odpowiedź

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

Link do komentarza
Share on other sites

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:

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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

Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

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.

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.