logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

EM-188 silnik unipolarny z drukarki grzeje się przy sterowaniu ULN2803 i Atmega8

przjurcz 28 Lut 2007 23:08 3147 11
REKLAMA
  • #1 3629830
    przjurcz
    Poziom 11  
    Posty: 32
    Ocena: 14
    Witam. Zaczynam dopiero zabawe z krokowcami, poświęciłem już temu bardzo dużo czasu, i próbuję cały dzień go odpalić. Jest to silnik unipolarny, ze starej drukarki, jak na rysunku. EM-188. Steruję Atmegą8, poprzez driver ULN2803. Na ten układ podawałem sygnały wg kodu:
    "
    ...
    unsigned char Numbers[4] = {0b00000010, 0b00000100,0b00001000, 0b00010000};
    int Index;
    ...
    for(Index=0; Index<4; Index++)
    {
    PORTB = Numbers[Index];
    delay(predkosc);
    }
    "
    Dodam że sygnał puszczam przez PB1..4

    Na początku silnik drgał. Po przełączeniu cewek, ruszył. Ale się mocno grzeje, bardzo. Więc chyba cos jest nie tak. Do tego jak dam większe predkości, to mi przerywa, nie ma momentu i tak przeskakuje, i wcale szybko się nie kręci(kilka obrotow/sek). Przeczytałem wiele postów i pomocy na ten temat, ale wciąż nie jest tak jak bym chciał, dlatego postanowiłem zwrócić się o pomoc tu. Jaki robię błąd? Na ULN przeczytałem że z uC muszę podawać 1, bo on ma w sobie negator, i wtedy na wyjściu z ULN jest 0. Prawda? Może mam błąd w kodzie? Dlaczego on się tak grzeje i przeskakuje przy większych prędkościach? Dzięki za każde wskazówki...
    Załączniki:
    • 213413.jpg (34.49 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 3630773
    mrrudzin
    Poziom 39  
    Posty: 5940
    Pomógł: 516
    Ocena: 580
    Cytat:

    Na początku silnik drgał. Po przełączeniu cewek, ruszył. Ale się mocno grzeje, bardzo. Więc chyba cos jest nie tak.

    Cewki muszą być odpowiednio przyłączone - inaczej nie będzie się kręcił.
    Kod który napisałeś powinien po kolei załączać cewki 1-4
    wg takiego algorytmu:

    1000
    0100
    0010
    0001

    Jeśli chodzi o grzanie - jakim napięciem go zasilasz?
    Pomierz prąd jaki płynie w cewce.

    Cytat:

    Do tego jak dam większe predkości, to mi przerywa, nie ma momentu i tak przeskakuje, i wcale szybko się nie kręci(kilka obrotow/sek).


    Silnik krokowy ma ograniczenie maksymalnej prędkości. Po jej przekroczeniu zachowuje się dokładnie tak jak piszesz.

    Cytat:

    Na ULN przeczytałem że z uC muszę podawać 1, bo on ma w sobie negator, i wtedy na wyjściu z ULN jest 0. Prawda?


    Nie do końca. JEśli podasz "1", to ULN zwiera daną cewkę do masy.

    Najprościej sprawdzić czy i jak działa algorytm sterujący podłączając równolegle z cewkami silnika diody LED (trzeba dać szeregowo rezystory o wartości zależnej od napięcia zasilającego).
  • REKLAMA
  • #3 3630913
    przjurcz
    Poziom 11  
    Posty: 32
    Ocena: 14
    To mam na ULN podawać 1 czy 0? Algorytm działa dobrze, sprawdzałem diodami i świecą się w odpowiedniej kolejności, prąd który biegnie przez cewki to około 0.25-0.27A. To chyba nie tak strasznie dużo, więc czy on powinien się tak grzać?w rękach niby da się utrzymać, ale po dłuższej pracy robi się gorący. :cry:
  • #5 3631099
    przjurcz
    Poziom 11  
    Posty: 32
    Ocena: 14
    Nie wpiąłem wszystkich diód, bo mam akurat pod ręką tylko jedną diodę. Ale próbowałem na wszystkich wyjściach, równolegle do podłączanej cewki, i przeskakiwało dobrze. Razem z krokami zapalała się kolejno jedna dioda. Zasilam napięciem 12V z zasilacza. Przy małej prędkości, przy opóźnieniu kroku 1s, prąd przez cewki dochodził do 0.8A, przy większej prędkości około 0.2A
  • #6 3631715
    bogdan_p
    Poziom 39  
    Posty: 3849
    Pomógł: 525
    Ocena: 120
    Cytat:
    Czy wpinałeś diody równolegle do uzwojeń?

    żadne zewnętrzne diody nie są potrzebne , UlN 2803 ma je w swojej strukturze wystarczy 10 połączyć z "+" zasilania
    http://www.elenota.pl/pdf/ON_Semiconductor/uln2803-d.pdf
    Cytat:
    przy opóźnieniu kroku 1s, prąd przez cewki dochodził do 0.8A, przy większej prędkości około 0.2A

    to zupełnie normalne , była mowa o tym wielokrotnie że silnik krokowy ma ograniczoną prędkość , która w głównej mierze zależy od samego typu silnika i sposobu sterowania , silniki z drukarek nie posiadają najlepszych parametrów jakościowych
    poprawę właściwości można uzyskać zasilając układ wyższym napięciem , ale to wymaga kontroli prądu silnika tzw układ czoperowy
    możesz spróbować zwiększyć napięcie zasilania ale to już nie na ULN-nie
  • REKLAMA
  • #7 3632026
    mrrudzin
    Poziom 39  
    Posty: 5940
    Pomógł: 516
    Ocena: 580
    Cytat:

    żadne zewnętrzne diody nie są potrzebne , UlN 2803 ma je w swojej strukturze wystarczy 10 połączyć z "+" zasilania
    http://www.elenota.pl/pdf/ON_Semiconductor/uln2803-d.pdf

    Kolega mnie źle zrozumiał
    Cały czas chodzi mi o diody świecące LED - po to aby sprawdzić co tak naprawdę pojawia sie wyjściu kontrolera.
    Gdyby nie było diód zwrotnych w strukturze ULN-a, a kolega by ich nie zastosował - układ "skończył" by się po 1 cyklu sterowania (a może wcześniej).

    Pewnym pomysłem pozwalającym zwiększyć dokładność sterowania jest algorytm tzw. mikrokroków:
    1100
    0100
    0110
    0010
    0011
    0001
    1001
    1000
  • #8 3632236
    bogdan_p
    Poziom 39  
    Posty: 3849
    Pomógł: 525
    Ocena: 120
    ok mrrudzin każdy z nas myślał o innych diodach
    sekwencja którą podałeś na pewno poprawi dynamikę , ale przy małej częstotliwości sterownia układ ULN poleci z dymem , ponieważ co drugi krok włączane są dwa uzwojenia
    dlatego autor powinien pomyśleć o innym stopniu mocy na tranzystorach bipolarnych lub Mosfetach
  • #9 3633534
    ogordarek
    Poziom 14  
    Posty: 138
    Ocena: 15
    jak na początek zaśilaj go mniejszym prądem...
  • REKLAMA
  • #10 3633552
    mrrudzin
    Poziom 39  
    Posty: 5940
    Pomógł: 516
    Ocena: 580
    Cytat:

    jak na początek zaśilaj go mniejszym prądem...

    Proponuje niższym napięciem, gdyż kolega pewnie nie dysponuje źródłem prądowym.

    Warto byłoby rzucić okiem w notę katalogową tego silnika - ile wynosi prąd znamionowy.
  • #11 3633910
    przjurcz
    Poziom 11  
    Posty: 32
    Ocena: 14
    Obniżyłem napięcie, i w zasadzie samo to pomogło już. Silnik się nie grzeje, próbowałem znalezdź dokunemtację, ale do tego modelu jakoś nie znalazłem dokładnej. Szczerze powiedziawszy to myślałem że to będzie kręcić się troche szybciej, bo teraz najwięcej to chyba wyciąga kilka obr/sek. I pewnie tak ma być. Spróbuję tę kombinację sterowania, ale może już nie teraz bo trochę późno. Dzięki za wszelką pomoc. Naprawdę dziękuję:D
  • #12 3634048
    mrrudzin
    Poziom 39  
    Posty: 5940
    Pomógł: 516
    Ocena: 580
    Cytat:

    Szczerze powiedziawszy to myślałem że to będzie kręcić się troche szybciej, bo teraz najwięcej to chyba wyciąga kilka obr/sek.

    Niestety nie. Ale ma to swoje zalety. W większości rzeczywistych układów i tak potrzebujesz niskie obroty. Jeśli silnik ma np. 2000 obr/min - musisz zastosować przekładnie mechaniczną.
    Druga sprawa - zauważ że nie ma (jak w większości maszyn) ograniczenia prędkości z dołu. Jesteś w stanie (bez specjalnego układu sterowania - bo z nim można to uzyskać w każdej maszynie) otrzymać maksymalny moment przy zerowej prędkości.

Podsumowanie tematu

✨ Dyskusja dotyczy sterowania silnikiem unipolarnym EM-188 z drukarki za pomocą mikrokontrolera Atmega8 i drivera ULN2803. Problemem było nadmierne nagrzewanie się silnika oraz niewystarczająca prędkość obrotowa. Zalecano poprawne sekwencjonowanie cewek w kolejności 1000, 0100, 0010, 0001 oraz podawanie sygnału "1" na wejścia ULN2803, który zwiera cewkę do masy. ULN2803 posiada wbudowane diody zwrotne, które należy podłączyć do plusa zasilania 12V. Nadmierne grzanie wynikało z zasilania zbyt wysokim napięciem i prądem, dlatego zasugerowano obniżenie napięcia zasilania, co skutecznie zmniejszyło nagrzewanie. Silnik z drukarki ma ograniczoną maksymalną prędkość, a przy wyższych prędkościach może tracić moment i przeskakiwać kroki. Wskazano możliwość poprawy sterowania przez zastosowanie algorytmu mikrokroków, jednak przy sterowaniu ULN2803 może to prowadzić do przeciążenia układu, gdyż w niektórych krokach załączane są dwie cewki jednocześnie. Wskazano też, że dla lepszej dynamiki i kontroli prądu warto zastosować układ sterowania prądowego (np. czoper) lub tranzystory bipolarny/MOSFET zamiast ULN2803. Ostatecznie obniżenie napięcia zasilania i poprawne sterowanie pozwoliły na stabilną pracę silnika z prędkością kilku obrotów na sekundę bez nadmiernego nagrzewania.
REKLAMA