Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega 8 unipol silnik krokowy - Skaczący silnik i jaki sterownik

slawkalke 30 Mar 2015 22:54 1902 22
  • #1 30 Mar 2015 22:54
    slawkalke
    Poziom 6  

    Witajcie, zacząłem swoją przygodę z silnikami krokowymi.
    Znalazlem stary silnik z jakiegos komputera ale nie mial on opisanych pinow ani nawet pokolorowanych. Znalazlem ze skrajny lewy pin to masa. Napisalem program wedlug tego co przeczytalem na roznych stronach jak dzialaja silniki krokowe. Kod wyglada tak:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Calosc polaczone jest wedlug tego schematu: (oczywiscie do atmegi sa podprowadzone napięcia)

    Atmega 8 unipol silnik krokowy - Skaczący silnik i jaki sterownik

    Ale silnik drży strasznie tak jak widać na tym filmiku: https://drive.google.com/file/d/0ByrvZ8Gs_j3dRmFmNFRtRUl0b1U/view?usp=sharing

    Dlaczego ten silnik tak drży?
    I jaki sterownik polecacie do silnikow krokowych z bascomem?

    0 22
  • #2 30 Mar 2015 23:12
    Alana
    Poziom 37  

    Co do schematu ukladu np http://www.ermicro.com/blog/wp-content/uploads/2010/11/trsw25.jpg fragment w czerwonej ramce. Tranzystory moga byc np BC547 lub BC337.
    Mozesz tez cos zrobic na ULN2003.
    I od tego bym zaczela.


    Co do kodu wyglada to sensownie ale masz do sprawdzenia jak sie silnik zachowa przy mniejszych i przy wiekszych wartosciach w zmiennej czas.

    1
  • #3 30 Mar 2015 23:25
    slawkalke
    Poziom 6  

    A czy mogłabyś zapodać jakiś prosty kod który działałby na ULN2003?

    A czym są spowodowane drgania? Brakiem diod prostowniczych?

    0
  • #4 30 Mar 2015 23:37
    Alana
    Poziom 37  

    Stawiam na zly uklad drivera tzn uzycie tranzystorow NPN w niewlasciwej dla nich konfiguracji. Diody sluza "tylko" do zabezpieczenia tranzystorow przed popaleniem przez napiecia indukowane w silniku i nie powinny miec wplywu.

    Co do ULN2003 to jest to poprostu "uklad z czerwonej ramki" w postaci ukladu scalonego - kod programu sie nie zmienia.
    Przyklad zastosowania http://www.eleccircuit.com/wp-content/uploads...03-control-stepper-motor-by-parallel-port.jpg - zamiast portu drukarkowego dajesz twoja atmege.

    Bawiles sie juz zmiana wartosci zmiennej czas?

    1
  • #5 30 Mar 2015 23:47
    slawkalke
    Poziom 6  

    Zmienilem czas na 20ms i chodzi płynniej. Przy wiekszych i mniejszych wartosciach wchodzi juz w drgania. A jak zwiększyć szybkość obrotów?

    0
  • #6 30 Mar 2015 23:48
    namok
    Poziom 25  

    To drżenie to najlepszy efekt który udało Ci się uzyskać? Sprawdzałeś inne kombinacje "kabelków" czy podpiąłeś jak leci i zakładasz że jakoś to będzie?
    Co do schematu to tak jak podała Alana - wspólny do "+" a nie GND!!!

    0
  • #7 30 Mar 2015 23:54
    slawkalke
    Poziom 6  

    Przy innych kombinacjach silnik po prostu skakał w miejscu tak jakby a przy tym dopiero zaczął się ruszać. A oczywiscie chodziło mi o "-" , pomyłka ;)

    Drżenie udało mi się nawet wyeliminować zmieniając czas na 20ms

    0
  • #8 30 Mar 2015 23:59
    dondu
    Moderator Mikrokontrolery Projektowanie

    1. Zacznij od pokazania całego schematu jaki faktycznie zmontowałeś, a nie tylko fragmentu, bo jak widać po tym fragmencie, który zamieściłeś popełniłeś już błędy, a film jedynie potwierdza, że podstaw elektroniki w ogóle nie stosujesz.

    2. Opisz także w jaki sposób zasilasz ten projekt.

    Lektura to dział Zasilanie i zakłócenia: http://mikrokontrolery.blogspot.com/p/spis-tresci.html#dzial_zasilanie_zaklocenia
    ale powinieneś także poznać zasadę działania tranzystorów, bo ten mikrokontroler zaraz Ci wyparuje, a przynajmniej piny, do których te tranzystory podłączasz.

    0
  • #9 31 Mar 2015 00:04
    slawkalke
    Poziom 6  

    Z zasilaniem jest na pewno wszystko dobrze gdyż jest zasilane tak jak wszystkie moje projekty dotychczasowe które w pełni działają.

    0
  • #11 31 Mar 2015 01:03
    slawkalke
    Poziom 6  

    Cały schemat wyglada następująco: Atmega 8 unipol silnik krokowy - Skaczący silnik i jaki sterownik

    Jak zmienić prędkość obracania się silnika?

    0
  • #12 31 Mar 2015 08:06
    pimpuk
    Poziom 22  

    Podłącz ten silnik tak jak podała Alana. Czy ty nie widzisz różnicy?
    I popraw ten program, bo tak się nie steruje silnikiem. Przy sterowaniu falowym, sekwencja jest całkiem inna.
    Jak będziesz miał poprawny kod, to załapiesz jak się steruje prędkością.

    0
  • #13 31 Mar 2015 08:12
    Wirnick
    Poziom 26  

    Znalazłeś, złożyłeś i to ma chodzić - i chodzi warcząc nie mówiąc na kogo.
    Błąd w kodzie - Config Portd = &B1111111, ma być &B0 - silnik wyłączony.

    Błąd w sprzęcie - wtórniki emiterowe zasilą silnik napięciem równym U bazy(max. 5V).

    1
  • #14 31 Mar 2015 10:04
    slawkalke
    Poziom 6  

    pimpuk napisał:
    Podłącz ten silnik tak jak podała Alana. Czy ty nie widzisz różnicy?
    I popraw ten program, bo tak się nie steruje silnikiem. Przy sterowaniu falowym, sekwencja jest całkiem inna.
    Jak będziesz miał poprawny kod, to załapiesz jak się steruje prędkością.


    Ale co jest złego w tym kodzie? Mógłbyś poprawić mnie? Bo nie mam pojęcia co może być źle. A drgania wyeliminowalem zmieniajac kwarc na 8MHz i czas na 10ms.

    0
  • #15 31 Mar 2015 11:10
    pimpuk
    Poziom 22  

    U Ciebie jest:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Pewnie miało być falowo, powinno więc być tak:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    A najlepiej zrobić pełnokrokowo:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Pod warunkiem, że dobrze to zrobisz hardware'owo, to zrozumiesz że zmienna czas ustala prędkość obrotową.

    1
  • #16 31 Mar 2015 23:07
    emarcus
    Poziom 35  

    pimpuk napisał:
    U Ciebie jest:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Pewnie miało być falowo, powinno więc być tak:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod



    Pierwsza i druga wersja kodu jest w zasadzie taka sama. Wystarczyłoby zamienic przewody podłączenia cewek silnika, które prawdopodobnie zostały źle zindentyfikowane i kolejnośc ich zasilania nie jest zsynchronizowan z programem;
    co też zwykle uskutecznia "szarpanie" wałkiem silnika.
    Przykład kodu z zasilaniem tylko jednej cewki w danym momencie, jest sterowaniem pełnokrokowym' , natomiast:
    Cytat:

    A najlepiej zrobić pełnokrokowo:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod



    jest akurat przykładem sterowania półkrokowego'
    Dobrze byłoby przeglądnąc tę stronę (łącznie z animacją).
    Tu akurat dla ułatwienia animacji i dostatecznego zrozumienia zagadnienia, uproszczono silnik do 4 steps/rev (cztery kroki/ obrót).

    e marcus

    0
  • #17 31 Mar 2015 23:46
    pimpuk
    Poziom 22  

    Oczywiście masz rację. Zawsze zamiast zmieniać piny w programie, można zmienić przewody w układzie i wyjdzie że program jest napisany poprawnie.
    A co się tyczy mapy sterowania, to MEA CULPA.

    0
  • #18 01 Kwi 2015 16:07
    slawkalke
    Poziom 6  

    Zakupiłem układ ULN2003 i wszystko działa super. Zmniejszajac czas rzeczywiscie silnik kreci sie szybciej. Jak z chłodzeniem silników? Grzeje się on troche i czy trzeba go jakos chłodzić wentylatorkiem?

    0
  • #19 01 Kwi 2015 16:29
    namok
    Poziom 25  

    Sprawdź na jaki jest jego prąd znamionowy i ewentualnie wstaw rezystor.

    0
  • #20 01 Kwi 2015 16:51
    dondu
    Moderator Mikrokontrolery Projektowanie

    Przede wszystkim sprawdź napięcie znamionowe, bo być może traktujesz silnik zbyt wysokim napięciem. Prąd jest tylko konsekwencją tego faktu.

    1
  • #21 14 Kwi 2015 11:16
    slawkalke
    Poziom 6  

    Dzięki, silnik zasilalem zbyt wysokim napięciem i dlatego sie grzał. A teraz mam pytanie: czy da się zapisać w bascomie np cały ten kawałek programu:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    jako np alias? Tak jakbym chciał aby silnik robił konkretną liczbę kroków nie kopiując cały czas tej części?

    0
  • Pomocny post
    #22 15 Kwi 2015 00:48
    M. S.
    Poziom 34  

    Da się:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Z tym, że nie jest to dobre rozwiązanie bo wywala od razu pełną sekwencję, a przy silnikach krokowych zwykle tak programujemy sterowanie, aby silnik jednorazowo wykonywał najwyżej jeden krok.
    Ale może ty chcesz sobie zrobić z silnika krokowego np. wiatraczek więc to będzie ok.

    0
  • Pomocny post
    #23 15 Kwi 2015 07:44
    373522
    Użytkownik usunął konto  
  Szukaj w 5mln produktów