Witam, co można zastosować aby ograniczyć prąd rozruchu silnika DC ? Nie może to być rozwiązanie programowe, musi być sprzętowe. Silnik nie jest duży, zasilany 4.9V, dokładnie jestto serwo SG90 bez elektroniki (sam silnik i przekładnie). Prąd przy normalnej pracy to około 400mA, natomiast podczas startu ponad 700mA. Czy da się to ograniczyć jakimś komponentem elektronicznym ? Czytałem trochę o diodach prostowniczych i Schottky`ego ale nie wiem czy to rozwiązuje problem.
Termistor zmienia rezystancję zależnie od temperatury więc do rozwiązań na zewnątrz chyba nie będzie się nadawał, dobrze rozumuję ? Co do gotowych układów soft-start możesz podać przykład do kupienia żebym wiedział jak i co szukać ? Co do wykonania, obawiam się że może to być ponad moje siły patrząc na układy z tego tematu:
Zasilanie 5V ale sterowane PWM-em z płytki Arduino Leonardo przez sterownik silnika HG7881, pomiar prądu przez gotowy czujnik INA219. Wydajność źródła zasilania to 2A, jest to przetwornica Step-Down.
Buduję projekt sterowania bramą wjazdową przez płytkę Arduino z możliwością przeniesienia na skalę rzeczywistą. W związku z tym napisałem kod który odczytuje wartość prądu płynącego do silnika i w momencie wykrycia prądu większego niż założony, procesor zatrzymuje działanie silnika , co ma równać się wykryciu jakiejś przeszkody i przeciwdziałaniu uszkodzeniu silnika. W takim układzie prąd rozruchowy przewyższa prawie o połowę zadeklarowaną wartość i efekt jest taki, że nawet przy braku przeszkody procesor zatrzymuje działanie podczas startu silnika.
Zasilanie 5V ale sterowane PWM-em z płytki Arduino Leonardo przez sterownik silnika HG7881, pomiar prądu przez gotowy czujnik INA219. Wydajność źródła zasilania to 2A, jest to przetwornica Step-Down.
przecież możesz zrobić "soft start" zwiększając płynnie współczynnik wypełnienia sterującego sygnału PWM. Zamiast szczytowej wartości prądu musisz mierzyć wartość średnią, spokojnie wystarczy jako zabezpieczenie. Okres uśredniania musisz sprytnie dobrać.
Próbowałem tak zrobić jednak używam biblioteki obsługi wątków "Timers.h" i nie mogę zastosować opóźnienia "delay()" gdyż gryzie się to później z obsługą wątków. Żeby nie spamować wysłałem PW.
Próbowałem tak zrobić jednak używam biblioteki obsługi wątków "Timers.h" i nie mogę zastosować opóźnienia "delay()" gdyż gryzie się to później z obsługą wątków. Żeby nie spamować wysłałem PW.
Stosowanie "delay" jest "ostateczną ostatecznością", cokolwiek by to oznaczało.
Spróbuj zastosować mechanizm:
http://playground.arduino.cc/Code/TimingRollover przyda się przy różnych aplikacjach, nie tylko w aktualnej.
Też tak myślałem aby odczekać trochę przed pomiarem ale nie wiem co z tego wyjdzie, niemniej spróbuję. Co do wyższej wartości nie będzie to dobre rozwiązanie gdyż później może być problem z wyłączeniem, co zajmie za dużo czasu jak i mogą ulec uszkodzeniu inne elementy konstrukcji, zanim prąd osiągnie tak dużą wartość.
Dodano po 3 [minuty]:
"krzysiek_krm" dziękuję za link, poczytam i zobaczę czy dam radę to wykonać.
Nie zrozumiałeś mojego pomysłu. Usyalasz dwa progi prądowe. Jeden większy na czas rozruchu i drugi roboczy.
To jest najlepszy pomysł. Rozruch trwa na tyle krótko, że raczej nic złego się nie stanie.
Z drugiej strony, mógłbyś "utknięcia" silnika monitorować za pomocą jakiegoś prostego przetwornika obrotowo - impulsowego.
No rzeczywiście można ustalić dwa progi prądowe, jednak spróbowałem rozwiązania z wstrzymaniem pomiaru i uruchomienie chwilę po starcie silnika. Jestem na etapie sprawdzania jak to działa więc na razie nic więcej nie napiszę. Dziękuję wszystkim za pomoc i cenne rady, myślę że jutro napiszę o efektach.
A nie prosciej dodać kondensator na linie pomiarowa prad, wprowadzi to opoźnienie w reakcji układu, przez co duzy prad rozruchowy zostanie niezauwazony dla ukladu jednak po napotkaniu przeszkody gdzie silnik bedzie mial wyrazny problem i przy nieco dluzszym czasie niz sam rozruch silnika po prostu zareaguje. Zresztą ardunio idzie zaprogramowac..., ja tylko mówie o rozwiazaniu analogowym najprostrzszym z mozliwych, zeby uklad nie wykryl tego jako przeciazenie, bo taki uklad przeciez nie musi od razu reagować tylko z pewnym opoznieniem, a silnik od chwilowej pracy przeciazeniowej sie nie spali.
Właśnie o takie najprostsze rozwiązanie mi chodziło tylko jaki kondensator ? Elektrolityczny ma polaryzację więc chyba nie będzie możliwości wpięcia go w układ, zostaje więc ceramiczny tak ? Teraz mam wpięty 100nF pomiędzy silnikiem a czujnikiem INA219.
Poradziłem sobie z tym ale nie wiem czy w dobry sposób. Otóż wątek odpowiedzialny za pomiar sprawdzany jest co 200ms, gdy pomiar zostaje uruchomiony wykonuje się kod "Licznik++", następnie sprawdzam warunek "if(Licznik>=2)" wtedy dopiero zaczyna się część odpowiedzialna za odczytywanie wartości. Sprawdza się to dobrze, lecz jednym mankamentem jest dla mnie to że licznik wykonuje się do momentu zakończenia otwierania lub zamykania, jest to niepotrzebne zajęcie procesora. Czy takie rozwiązanie jest w miarę rozsądne ?
Musisz dobrać doświadczalnie, bo raczej cięzko określić i co innego jesli masz w szeregu w lini pomiarowej wpiety rezystor o jakis wartosci to mozesz zrobic prosty układ RC i to juz idzie jakoś obliczyć. Wzory do stałych czasowych znajdziesz w necie, pelno tego. Jak masz oscyloskop to mozesz tez zmierzyc czas impulsu pradu rozruchowego i dac z zapasem czasu w ukldzie RC. W obrazku masz przykład tego. R1 wraz z C1 tworza uklad RC w lini pomiarowej i tu mozesz sobie obliczyc jaki czas przy danych elementach masz. W tym wypadku takie coś ma mieć miejsce na zaciskach Vin+ i Vin- ukladu INA219, w czesci cyfrowej musisz sobie sam poradzic albo kogos innego męczyć.
Po co szukać dziwnych rozwiązań jeźeli problem jest rozwiązany w działających urządzeniach.
Jakich dziwnych, kazde podane rozwiazanie jest znane od XX czasu. Kazdy sposob jest dobry aby zrealizowac swoj cel, tylko czasami po co kombinowac z impulsatorami - twoja wypowiedz wyzej, skoro sa jeszcze duzo prostrzsze rozwiazania? Kolega chce coś prostego i majacego duża skuteczność, rozwiazania z pozystorami czy termistorami ntc sa bardzo powszechnie stosowane i znane od bardzo wielu lat, dlużej niz przykładowe rozwiazania cyfrowe. Termistory ntc w układach zasilania zarzenia w lampach był bardzo powszechnie stosowane. Teraz sie o tym tak czesto nie slyszy bo zasila sie poprzez przetwornice itd z ograniczeniami pradu, ale kiedys w celu ograniczenia pradu stosowało sie termistor który poprzez przepływ pradu się rozgrzewał i zmniejszal swoja rezystancje do odpowiedniej dla układu, powodując przy tym miękki start, takie termistory mocy ciezko dzisiaj dostać od ręki, ale jeszcze kilkadziesiąd lat temu był powszechnym elementem. To samo układu RC w celu opoźniania sygnałów, bardzo powszechnie stosowane. Proste tanie rozwiązania o których jak domniemam, nie słyszałeś?
Słyszałem i naprawiałem. Jak zachowa się silnik z pozystorem przy duźym obciąźeniu pr zy starcie ?
Nie spotkałem się z ograniczaniem prądu rozruchu rezystancyjnym.
Po drugie ma być to prijekt na dzisiejsze czasy, więc powinien zapewniać obowiązujące wymagania techniczne.
Widzę, że problem można rozwiązać na kilka sposobów, natomiast mam pytanie: czy taki pozystor to dobre rozwiązanie przy tak małych silnikach jak mój ? Nie znam w ogóle tematu więc pytania mogą być bezsensowne, ale przeczytałem przykładową kartę z charakterystyką pozystorów i tam czas reakcji wynosił 16 sekund, tak długi czas reakcji pewnie spowodowany był tym, że elementy były do napięć <2,5kV, ale zastanawia mnie czy pozystory mają tak szybki czas działania tzn. <0,2 sekundy ? Gdyż z taką częstotliwością "łapię" pomiar.
Wini 230 wrote:
Pomiar napięcia na rezystorze i w zależności od jego poziomu sterowanie otwarciem tranzystora za pomocą wzmacniacza operacyjnego
Wybacz, ale chodziło mi o rozwiązanie proste i tak jak napisał kolega "srajponiec" najlepiej analogowe, a Twój przykład wymaga dużo więcej zachodu niż jest to warte. Gdyby był to poważny projekt wtedy możemy rozmawiać dalej
Panowie, weźcie proszę pod uwagę to, że jest to tylko projekt w małej skali. Gdy będzie to robione na skalę rzeczywistą, kupię gotowy moduł SoftStartu gdyż w moim przypadku lepiej zaufać komponencie stworzonym przez doświadczonych ludzi. Niemniej Wasze informacje przydadzą się gdybym jednak zmienił zdanie i powoli próbował zrobić to własnymi siłami. Nie sprzeczajcie się jakie rozwiązanie jest dobre, gdyż według mnie każde będzie dobre do konkretnego przypadku, chodź i pewnie nie zawsze no ale mniejsza z tym.
Jeżeli proste rozwiązanie zwyczajnie nie istnieje to trudno, najlepszym rozwiązaniem na chwilę obecną według mnie jest pomysł kolegi "Zbigniew 400" o ustaleniu programowo dwóch progów pomiaru natężenia, jeden rozruchowy, drugi do pracy. Jak poszedłem jeszcze bardziej na łatwiznę i tak jak pisałem wyżej, dodałem chwilowe opóźnienie rzędu 400ms do pomiaru natężenia, niestety nie jest to zrobione tak jak zakładałem ale jednak był to najprostszy sposób. Mimo to bardzo dziękuję za poświęcony czas i przekazaną wiedzę.
Wybacz, ale chodziło mi o rozwiązanie proste i tak jak napisał kolega "srajponiec" najlepiej analogowe, a Twój przykład wymaga dużo więcej zachodu niż jest to warte. Gdyby był to poważny projekt wtedy możemy rozmawiać dalej
Tylko, że.... INA219 na wejsciu pomiarowym posiada op ampa i uklad pomiaru jest taki sam jak kolega napisał, różnica w tym ze INA219 posiada interfejs cyfrowy, ale o identyczna rzecz chodzi, pomiar napiecia opampem na boczniku pomiarowym, op amp steruje elementem wykonawczym np tranzystorem.
Czyli chodziło o to żeby nie używać INA219 tylko zrobić nowy układ który sterowałby tranzystorem ? Jak pisałem nie mam dużego doświadczenia w takich układach stąd moje pytania.
Tyle tu opisano różnych metod, a może by wrócić do klasyki stosowanej od "zawsze" w rozrusznikach silników prądu stałego, czyli na czas rozruchu dołączany jest rezystor szeregowy, zwierany po pewnym czasie stykiem przekażnika (za pomocą układu czasowego, lub pomiaru prądu w systemach bardziej zaawansowanych)?
Takie włączenie szeregowego rezystora NIE ZMNIEJSZA momentu rozruchowego, są jedynie przez chwilę mniejsze obroty.
W silnikach dużej mocy jest też stosowany rozruch wielostopniowy, kolejno są zwierane kolejne rezystory w połączeniu szeregowym, albo dołączane przy połączeniu równoległym.