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

[Bascom] Jak napisać program w Bascom dla silnika bipolarnego z ATmega32 i ULN2003?

karol1996 21 Lut 2012 16:19 10009 27
  • #1 10577812
    karol1996
    Poziom 19  
    Witam
    Posiadam kilka silników krokowych bipolarnych. Pomyślałem sobie, że napiszę program w Bascomie, który wysteruje taki silnik. Znalazłem też ciekawą stronę na temat silników unipolarnych:

    http://diycenter.acid19.linuxpl.com/print.php?type=A&item_id=5

    Napisałem program, który wysteruje silnik unipolarny:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    $regfile = "m32def.dat"

    $crystal = 16000000

    Config Portb = Output

    Do

    Reset Portb.0

    Reset Portb.1

    Waitms 500

    Set Portb.0

    Set Portb.1

    Waitms 150

    Reset Portb.1

    Reset Portb.2

    Waitms 500

    Set Portb.1

    Set Portb.2

    Waitms 150

    Reset Portb.2

    Reset Portb.3

    Waitms 500

    Set Portb.2

    Set Portb.3

    Waitms 150

    Reset Portb.3

    Reset Portb.0

    Waitms 500

    Set Portb.3

    Set Portb.0

    Waitms 150

    Loop

    End 'end program
    Kod: text
    Zaloguj się, aby zobaczyć kod



    Problem pojawia się przy sterowaniu silnikiem bipolarnym.
    Nie mam pojęcia jak zabrać się za pisanie programu, więc proszę o pomoc.


    PS
    Prezentowany w tym poście program został przetestowany na diodach - działa poprawnie.

    Pozdrawiam,
    Karol
  • #2 10578453
    Konto nie istnieje
    Konto nie istnieje  
  • #3 10578506
    karol1996
    Poziom 19  
    Witam
    Mam pytanie, czy taki mostek H da się kupić w sklepie elektronicznym?
    Nie bardzo rozumiem o co chodzi z tym ULN'em. VCC silnika mogę podłączyć osobno, GND też.
    Posiadam zestaw EvB 4.3 v4, który posiada właśnie ULN'a na 5 wyjść GND oraz płytka posiada wyjście VCC 12V.

    Pozdrawiam,
    Karol
  • #4 10578544
    Konto nie istnieje
    Konto nie istnieje  
  • #5 10579794
    karol1996
    Poziom 19  
    Witam
    Mogę poszukać w necie schematu mostka H, ale potrzebuję wartości elementów. Silniki pochodzą od starych drukarek.
    Jak już zrobię ten mostek, to w jaki sposób mam podłączyć silnik bipolarny do tego?


    P.S. Może mi Kolega wytłumaczyć dokładnie zasadę działania tego mostka(wujek google mówi o tym dość niewyraźnie)

    Kolega powiedział, że ULN nie wystarczy. To co w jego miejsce? AVR'y pracują na 5V a silnik potrzebuje min. 12V. Czy mostek H załatwi sprawę?

    Pozdrawiam,
    Karol
  • #6 10579965
    Konto nie istnieje
    Konto nie istnieje  
  • #7 10580151
    karol1996
    Poziom 19  
    Witam
    Posiadam kilka silników z czterema wyprowadzeniami.
    Mam pytanie: drogi jest taki scalak?
    Jak już zrobię te mostki H to jak powinien wyglądać program w Bascomie?

    Pozdrawiam,
    Karol
  • Pomocny post
    #8 10585493
    Konto nie istnieje
    Konto nie istnieje  
  • #9 10585733
    karol1996
    Poziom 19  
    Tak, tylko z żadnej datasheet'a nie wynika na które nóżki układu należy podać prąd aby na wyściu silnikowym zmieniły się bieguny.

    Pozdrawiam,
    Karol
  • #10 10586434
    Konto nie istnieje
    Konto nie istnieje  
  • #11 10593969
    karol1996
    Poziom 19  
    Witam
    Udało mi się wysterować bipolarny silnik krokowy. Mam jednak dwa problemy.
    1) Po czterech krokach silnik przystaje (po czym rusza dalej)
    2) Nie mogę zrobić tak, aby silnik szybciej się kręcił. Po zmniejszeniu czasów silnik stoi i piszczy. Konkretnie wytrzymuje do 10 mili sekund. Chcę osiągnąć prędkość jak na tym filmiku:

    http://www.youtube.com/watch?v=sRIBZFlxGIw&noredirect=1

    Dołączam program:

    Kod: text
    Zaloguj się, aby zobaczyć kod

    $regfile = "m32def.dat"

    $crystal = 16000000

    Config Portb = Output

    Do

    Reset Portb.0

    Waitms 75

    Set Portb.0

    Waitms 75

    Reset Portb.3

    Waitms 75

    Set Portb.3

    Waitms 75

    Reset Portb.1

    Waitms 75

    Set Portb.1

    Waitms 75

    Reset Portb.2

    Waitms 75

    Set Portb.2

    Waitms 75

    Reset Portb.0

    Waitms 75

    Set Portb.0




    Loop

    End
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Bardzo dziękuję Koledze Saabotaz za wielką pomoc i za wykazanie się dużą cierpliwością.


    P.S. Próbowałem w Eaglu stworzyć schemat, lecz nie wyszukiwał mi żadnej atmegi.


    Pozdrawiam,
    Karol
  • #12 10594416
    Konto nie istnieje
    Konto nie istnieje  
  • #13 10594530
    karol1996
    Poziom 19  
    No normalnie. Rozrysowałem sobie kolejne kroki silnika, datasheet l293d i dobierałem odpowiednie sekwencje włączania portów, czego efektem jest zamieszczony program...

    Posłużyłem się tym rysunkiem:

    [Bascom] Jak napisać program w Bascom dla silnika bipolarnego z ATmega32 i ULN2003?

    pozdrawiam,
    Karol

    Dodano po 11 [minuty]:

    Witam

    Zmieniłem trochę program:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    $regfile = "m32def.dat"

    $crystal = 16000000

    Config Portb = Output

    Do

    Reset Portb.0

    Waitms 10

    Set Portb.0

    Waitms 10

    Reset Portb.3

    Waitms 10

    Set Portb.3

    Waitms 10

    Reset Portb.1

    Waitms 10

    Set Portb.1

    Waitms 10

    Reset Portb.2

    Waitms 10

    Set Portb.2

    Waitms 10



    Loop

    End 'end progr

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Silnik wykonuje ok 1obr/3s, lecz nie ma żadnej mocy...
  • #14 10594658
    Konto nie istnieje
    Konto nie istnieje  
  • #15 10594790
    karol1996
    Poziom 19  
    witam

    Tak wszystkie piny EN podłączyłem do Vcc.

    Ja wykorzystałem zasadę "krokowania", gdzie każda cewka jest zasilana po kolei, i po 1/2 obrotu następuje zmiana biegunów.
    Dołączam jeszcze schemat podłączeń w Eaglu.

    Nie wiedziałem, że każdy krok musi mieć własną kombinację pinów... Na moim programie ruszyło, tylko dość wolno.
  • #16 10594843
    Konto nie istnieje
    Konto nie istnieje  
  • #17 10598061
    karol1996
    Poziom 19  
    Witam
    Twój program działa, lecz dzieje się to samo co przy moim programie:
    1) Silnik wytrzymuje do 10ms a potem piszczy;
    2) Przy 10ms silnik ma prawie znikomą moc.

    Mój program sterował cewkami tak jak twój, tylko twój był bardziej "elegancki"

    Po rozrysowaniu kolejnych kroków okazuje się że nie ma ścisłej zasady podawania impulsów!

    P.S Mój program od strony praktycznej był taki sam jak twój: silnik kręcił się z tą samą prędkością.

    Pozdrawiam,
    Karol
  • #18 10598705
    Konto nie istnieje
    Konto nie istnieje  
  • #19 10599032
    karol1996
    Poziom 19  
    Witam

    Mi chodziło o to, że przy czasie t=10 mili sekund silnik wykonuje ok 3obr/sek i ma maleńką moc.
    Przy twoim programie też...
    Pytałeś po co mi takie silniki...
    WODLEGŁEJ przyszłości chcę zbudować "grający silnik", coś na takiej zasadzie:

    http://www.youtube.com/watch?v=AhYECd2rGbw

    Na razie muszę się nauczyć bardzo dobrze sterować takim silnikiem i perfekcyjnie programować w bascomie.

    Upieram się przy moim programie, ponieważ nie rozumiem kilku instrukcji z twojego programu.

    p.s. Nie potrzebuje 10tys obr/sek., wystarczy tyle

    http://www.youtube.com/watch?v=C4kO-ERglSQ

    Pozdrawiam
    Karol
  • #20 10599444
    Konto nie istnieje
    Konto nie istnieje  
  • #21 10602899
    karol1996
    Poziom 19  
    witam

    Mostek H zasilam +5V, steruję go też napięciem +5V. Jeśli mostek nie posiada wzmacniacza, to na silnik idzie też +5V

    Cewki mają rezystancję 6,4Ω więc na silnik idzie 0,8A.

    wydaje mi się, że moje silniki nie nadają się na 'grający silnik', ponieważ przy obrotach max, ich nie słychać.
    Posiadam takie silniki:
    1)M49SP-2NK(R9821)
    2)M49SP-1(RH7-1404-02)
    3)M49SP-1(RH7-1320-02
    4)RH7-1403
    5)RH7-1382.

    Posiadam jeszcze silnik zwykły BLDC (niekrokwy), który działa na 24V. Symbol jego to 50m035b030.

    Pozdrawiam,
    Karol
  • #22 10614315
    karol1996
    Poziom 19  
    Program udało mi się zrozumieć, konsultowałem twój program ze specjalistą od bacoma. Powiedział, że lepiej jest po każdym kroku dać instrukcję Wait, a nie po całej sekwencji.
    Zastanawiałem się, w jaki sposób podłączyć PWM'a do scalaka L293D, tak aby sterował on płynnie prędkością obrotową silnika. Jeżeli podam PWM'A do wejść Enable, to będę regulował tylko moc, a nie obroty.
    Pozdrawiam,
    Karol
  • #23 10614742
    Konto nie istnieje
    Konto nie istnieje  
  • #24 10615058
    karol1996
    Poziom 19  
    Witam
    Nie zrozumieliśmy się. Według tego specjalisty (NIE WEDŁUG MNIE)
    ty dajesz waitms po jednym obrocie. Możliwe jest, że ze "specjalistą" źle zrozumieliśmy twój program. Jeżeli rzeczywiście dajesz waitms po każdym kroku to sorry.

    Czyli rozumiem, że PWM'a podłącza się do enable scalaka L293d? Jeśli tak to nie rozumiem w jaki sposób będzie się płynnie zmieniała prędkość silnika, bez użycia Waitms.

    Z tego co wiem diody o których piszesz są zawarte w mostku, to po co kolejne?
  • #25 10615153
    Konto nie istnieje
    Konto nie istnieje  
  • #26 10729008
    _pieczas
    Poziom 12  
    Pozwolę się przyłączyć do tematu. Generalnie tak jak autor mam problem z silnikiem lecz nie od strony programowej lecz technicznej.
    Zacznę od schematu:

    [Bascom] Jak napisać program w Bascom dla silnika bipolarnego z ATmega32 i ULN2003?

    Oczywiście schemat jest błędny ale nie chodzi o samą jego poprawność, ponieważ był przygotowywany na szybko. Silnik ma być kontrolowany przez atiny13 i zmieniać kierunek obrotu w zależności od odebranego sygnału RC5 etc....
    Generalnie problemem jest to, że silnik potrzebuje zasilania 12V a attiny 5V i mostek rozumiem, że też. Nie chce spalić mostka ani tinny13, więc pytam czy dobrze podłącze jeśli do VCC1 1-2EN i 3-4EN podłącze +5 V a do VCC2 +12V? Jeśli błędnie kombinuje to proszę mnie poprawić gdzie podłączyć owe 12 V potrzebne silnikowi?
  • #27 10729034
    mirekk36
    Poziom 42  
    Dobrze kombinujesz i nie trzeba cię poprawiać ;) Tak się właśnie używa L293D .... no ale jak zwykle warto zajrzeć do noty PDF scalaka przecież tam masz wszystko jak na dłoni pokazane szczególnie jeśli chodzi o te napięcia zasilania
  • #28 10871692
    karol1996
    Poziom 19  
    Witam
    Udało mi się poprawnie wysterować silnik krokowy. Na grający silnik przyjdzie jeszcze czas.

    Temat zamykam.

    Pozdrawiam,
    Karol
REKLAMA