Wpis z mikrobloga

Część, mam w końcu czas pobawić się też troszkę nowym silnikiem DC i mam kilka pytań.
Posiadam silnik DC zasilany napięciem 12V, taki typowy z wiertarki :)

Postawnowiłem go sobie wysterować PWM z STM32F103xxx tak aby zrobić soft start.
Wykorzystałem do tego Timer1. Częstotliwość ustawiłem na 20kHz, stopień wypełnienia zwiększa się o 1 procent co jedną sekundę.
Wyjście Timera podłączone jest do bramki mosfeta - IRL540N - logic level.

Płytka jakiej używam to zwyczajny blue pill, zasilanie przez programator.

Schemat poniżej.

Od momentu kiedy wypełnienie osiąga taki poziom, że silnik rusza, to wszystko działa całkiem stabilnie - co prawda mosfet oraz kable dość mocno się grzeją, natomiast jeżeli resetuje MCU i duty cycle jest tak małe, że silnik stoi to po chwili przewód zaznaczony przerwywaną linią zaczyna się topić. Co tam się właściwie dzieje? Przypuszczam, że idzie jakiś bardzo duży prąd. Dlaczego? I jak temu zaradzić?

Jak właściwie powinien wyglądać prawidłowy soft start?
Przypuszczam, że początkowy stopień wypełnienia powinien być większy niż 0%, bo w takim przypadku dzieje się to co opisałem wyżej. Jak określić od jakiego stopnia wypełnienia powinienem zaczynać rozpędzać silnik?

#elektronika #silnikdc #stm #mikrokontrolery
pepepanpatryk - Część, mam w końcu czas pobawić się też troszkę nowym silnikiem DC i ...

źródło: comment_1586951623HFAvLjR66isnnvFGBoFxrm.jpg

Pobierz
  • 20
@pepepanpatryk: jeśli jest to silnik szczotkowy (a pewnie jest) to przy małych wypełnieniach PWM oś silnika nie obróci się, komutator stoi w miejscu więc płynie prąd zwarciowy - stąd taki efekt.

Normalnie softstarty robią tak że rzucają wypełnienie np. 15%, schodzą na 5% i potem powoli rozkręcają do zadanej wartości - posługują się przy tym enkoderem żeby wiedzieć czy silnik stoi czy się kręci. (te wartości procentowe wziąłem z dupy -
@pepepanpatryk: Po pierwsze to tego tranzystora nie wysterowujesz kluczem tylko dajesz mu jakiś uśrednione napięcie z pwm na bramkę. Musisz użyć choćby bufora prądowego (jakieś brami and połączone wyjściami razem) lub, najlepiej, sterownik mosfeta, jakić MC4420 czy coś podobnego.
Jak mówi Tymian, na początek daj maks mocy na krótki czas. Musisz wpuścić prąd w stosunkowo dużą indukcyjność. Jak zaczniesz od małych wartości to silnik nie ruszy i tyle. Zastanów się co
@pepepanpatryk A nie jest tak ze jak taki silnik dc zahamujesz to on będzie się grzal? Z tego co pamiętam to w ac tak nie było, a wynikało to z budowy. Zamiast enkodera może da się użyć bemf jak masz dostęp do uzwojen.
@Tymian: Dzięki wielkie, w takim raziem wiem już coś więcej i mogę robić dalszy research :)

@Analityk: Możesz coś więcej napisać dlaczego nie wysteruje tego tranzystora?

Czy korzystanie z np. takich modułów klik wnosi faktycznie jakąś wartość dodatnią do sterowania silnikiem DC?
@pepepanpatryk: Z tego co widzę to napięcie 3.3V nie otworzy do końca tego tranzystora. On zacznie przewodzić ale ciągle będzie miał dość sporą rezystancję. Poza tym bramka mosa jest kondensatorem, który trzeba przeładować, w twoim przypadku 40 tysięcy razy na sekundę. Kondensator gromadzi ładunek, jak szybko go przeładujesz skoro wydajność prądowa pinu uC jest niska - max 10mA.
Owszem stosowałem kiedyś pin sterujący bezpośrednio mosfetem ale to był mosfet na 20V
@pepepanpatryk albo zamiast najpierw bawić się w drivery to kup odpowiedni mosfet który Vgs_th ma poniżej 3V
Spokojnie takie znajdziesz o odpowiedniej mocy dla Twojego silniczka. Wtedy procek sobie poradzi z pojemnością bramki (patrz by była jak najniższa)
@Tymian: Hmm, kurde to ja już tego nie do końca rozumiem:

Poniżej wpis z datasheet do tranzystora, którego używam, czy to nie jest właśnie to o czym piszesz?

VGS(th) Gate Threshold Voltage 1.0 ––– 2.0 V VDS = VGS, ID = 250μA
@pepepanpatryk dobrze to znaczy że procek go otwiera w dolnej części wykresu Fig. 3 z dokumentacji. Nie jest idealnie ale tragedii nie ma. Inna sprawa to to że ma dużą pojemność bramki i procek go długo przeładowuje.
Może się zdarzyć że procek nie wyrabia z tym przy takiej częstotliwości.
Zmniejsz do 7-10kHz. No i zbadaj eksperymentalnie od jakiej wartości wypełnienia silnik rusza i z tego punktu startuj żeby nie gotować kabli ani
@Tymian: Tak zrobiłem, nawet zadziałało, natomiast chyba przegrzałem tranzystor, bo po 20 minutach testów (rozłączałem, podłączałem, testowałem jaki współczynnik wypełnienia i częstotliwość), silnik działa z pełną mocą, nawet jeżeli do bramki nie podaję żadnego napięcia. I zastanawia mnie czy to mogło się uszkodzić głównie z powodów termicznych, czy być może coś innego? Może zbyt duży prąd jak na ten tranzystor?
@pepepanpatryk: Chyba mam inną przyczynę dlaczego tranzystor się uszkodził :) Zwarło mi kabel zasilający do "radiatora" tranzystora. W wyniku ciepła osłona kabla się stopiła i tranzystor się uszkodził. Instalacja była zrobiona dość po partyzancku więc wcale mnie to nie dziwi xd Ale skoro w miarę działa, to teraz zrobię to tak aby było bezpiecznie. Zastanawiam się jeszcze nad tymi sposobami detekcji czy silnik ruszył czy nie, możliwe że coś takiego zaaplikuje,
@pepepanpatryk: typowy mosfet do silnika wkretarki to coś w stylu IRF1310. Zazwyczaj są dwa takie tranzystory, jeden zasila silnik, drugi hamuje. Na 100% jest sterowniki szalony do tych tranzystorow, możesz spróbować zrobić to na parze tranzystorow npn-pnp ale możesz wejść w obszar nasycania złącz baza emiter i będzie tak samo źle.
Do regulacji obrotów stosuje się pomiar napięcia dc jakie indukuje silnik, który się obraca. Prędkość obrotowa silnika zależy od napięcia
@Analityk: Jestem jak najbardziej otwarty na zastosowanie tego drivera, zastanawia mnie natomiast co dzięki temu osiągnę. Czy mógłbyś to pokrótce podsumować? Co jeszcze bym potrzebował do tego i najważniejsze jak to połączyć? Masz może jakiś przykładowy schemat, np. z jakiegoś swojego projektu?
@pepepanpatryk: https://www.tme.eu/pl/details/tc4420cpa/drivery-mosfet-igbt/microchip-technology/ Tu masz opis. Masa zasilanie to chyba jasne, wejście podłączasz do pwm uC a wyjście przez rezystor (10-33 omy) co masz pod ręką. Driver musi mieć kondensator blisko vcc i gnd, elektrolit 16V 100uF wystarczy.

Driver podaje na bramkę prąd o wartości do 6A i sam z siebie wystawia sygnał wysoki w 25ns. Oznacza to, że tranzystor jest albo w pełni otwarty albo w pełni zatkany. Jak przewodzi jego
@Analityk: Cześć wracam do tematu - co prawda wszystkie komponenty przyszły już dawno, ale nie miałem kiedy przy tym pogrzebać. A więc układ zrobiłem według Twoich zaleceń, driver MC4420 + tranzystor IRL1310, kondensator i rezystor. Generalnie działa, natomiast mam jedno pytanie - czy to normalne, że przy częstotliwości 10kHz i przy wartości wypełnienia około 70% to normalne, że tranzystor dość sporo się grzeje? Sporto oznacza, że nie jestem w stanie go