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.

Jaki scalak zamiast ULN2803

milik 10 Cze 2003 23:38 2330 15
  • #1 10 Cze 2003 23:38
    milik
    Poziom 23  

    Mam taki problem - chciałem wysterować silnik 5 krokowy unipolrny z portu LPT. Więc poszukałem w internecie, i jest schemat bardzo prosy na ULN2803 8 wejść i wyjść, zasilanie 12V. Kupiłem, poskładałem i nie działa.
    Co moge użyć zamiast tego scalaka.

    0 15
  • #2 10 Cze 2003 23:54
    elektryk
    Poziom 42  

    Napisz co dokładnie się dzieje, te kośc się podłącza i powinna działać bez problemu, może jest uszkodzona.
    Zamieniać jej na 8 tranzystorów może się nie opłacać bo będzie bardziej skomplikowany schemat ale da się. W nocie katalogowej znajdziesz jaką to ma budowe wewnętrzną.
    PS ja chyba widziałem ten układ i mnie to zastanawiało jak on działa bo ten układ potrafi tylko ściągnąć wyjście do masy. Podrzuć schemat bo nie wiem czy mówimy o tym samym.

    0
  • #4 11 Cze 2003 00:15
    elektryk
    Poziom 42  

    Jeśli działa ULN to po podaniu jedynki logicznej na wejściu, powinien wyjście zewrzeć do masy, czy napięcie 0.

    0
  • #5 11 Cze 2003 00:33
    milik
    Poziom 23  

    Co za tym idzie jeśli jest 0 logiczne to powinno być 12V których niema.
    Może lepiej jest zrobić zmacniacz na tranzystorach :-)

    0
  • #6 11 Cze 2003 02:01
    elektryk
    Poziom 42  

    milik napisał:
    Co za tym idzie jeśli jest 0 logiczne to powinno być 12V których niema.
    Właśnie nie jest to takie oczywiste, bo 12V bierze się z tego że uzwojenie silnika nie jest podłączone do 0V (drugi koniec tzn ten środkowy odczep, uzwojenia "podciąga" do zasilania). Wynika z tego że albo silniki są źle podłączone albo uszkodzone.

    0
  • #7 11 Cze 2003 09:53
    grzechugd
    Poziom 21  

    Elektryk ma racje napięcia na nóżce scalaka a masą układu nie będzie.
    Milik w pewnym sensie też ma racje. Napięcie +12 będzie między plusem a nogą scalaka.
    (Tak mi się wydaje)

    Milik jak uda Ci się zmontować ten schemat to daj znać (też chciałem sobie coś takiego zmontować ale potrzebuje program do tego, macie może coś fajnego)

    0
  • #8 11 Cze 2003 11:56
    milik
    Poziom 23  

    Dzięki elektrykowi wiem jak to zrobić - po podaniu logicznej jesynki na jedno z wejść ukladu - natępuje "zwarcie" wyjścia do masy.
    A co do oprogramowania, mam jeden problem nie wiem jak przeliczyć wartość dziesiętną na bity - np. 255 to 11111111

    0
  • #9 11 Cze 2003 15:36
    elektryk
    Poziom 42  

    milik napisał:
    A co do oprogramowania, mam jeden problem nie wiem jak przeliczyć wartość dziesiętną na bity - np. 255 to 11111111
    Zależy czy ma to być algorytm dla komputera czy dla człowieka. (działają identycznie tylko inaczej się zapisuje)
    dla człowieka: dziel liczbe dziesiętną przez 2 będzie reszta 0 lub 1, wynikiem binarnym są reszty w kolejności od najmłodszego do najstarszego bitu.
    dla komputera: (wersja z przesuwaniem w prawo) przy pomocy operacji AND zamaskuj wszystkie bity w wyjątkiem najmłodszego, powstanie Ci liczba tylko z najmłodszym bitem, następnie wyjściową liczbe przesuń w prawo o jeden bit zapisz w innej zmiennej i znowu zamaskuj wszystkie oprócz najmłodszego masz kolejny bit jest, odtwórz ze zmiennej i przesuń w prawo itp. Możliwy jest też wariat z przesuwanie w lewo wtedy należy maskować wszystkie z wyjątkiem najstarszego a wartość bitu pojawia się w najstarszym bicie.

    0
  • #10 11 Cze 2003 23:28
    milik
    Poziom 23  

    Dobrze, ale teraz jak ja chce przeliczyć binarną na dziesiętną ? Hodzi mi oto że mój program poskłada sobie te bity w jakiejś zminnej, a potem chciałbym aby to przeliczył na dziesiętną. Puźniej wysyłał by sobie to na port i gotowe. Inaczej sobie tego nie wyobrarzam.

    0
  • #11 12 Cze 2003 00:26
    elektryk
    Poziom 42  

    milik napisał:
    Dobrze, ale teraz jak ja chce przeliczyć binarną na dziesiętną ?
    To pomnóż bity od prawej kolejno przez kolejna potegi 2 np:
    100111= 1*2^5+0*2^4+0*2^3+1*2^2+1*2^1+1*2^0
    PS Troche pokolorowałem żeby było widać gdzie jaka liczba
    PS2 nie warto w pamięci przechowywać liczby w postać bitów w oddzilnych komórka, lepie stosować operacje binarne od razu na całym bajcie

    0
  • #12 12 Cze 2003 12:35
    milik
    Poziom 23  

    Serdeczne dzięki - teraz napisze sobie moduł z funkcją która po podaniu liczby binarnej wypluje dziesiętną. Byłbym wdzięczny za wzór z dziesiętnej na binarne bo to co napisał Elektryk toroszke nie rozumie tego z tym maskowaniem. Elektryk bardzo dziękuje Ci za te wyczerpujące odpowiedzi.

    0
  • #13 12 Cze 2003 18:07
    elektryk
    Poziom 42  

    Czego dokłądnie nie rozumiesz? Którą metode mam wytłumaczyć dokładnie, a może któryś fragment?

    0
  • #14 13 Cze 2003 00:01
    milik
    Poziom 23  

    Tak wogule to całego nie rozumiem - te przesówy, maskowanie itp. Szybciej zajarzył bym to na przykładzie. Moze być w wersi dla człowieka, z tym dam sobie radę. Mam jeszcze jedno pytanko uruchomiłem mój silnik krokowy (MSJE200M64 jest on z stacji chyba 5.25 cala) na pętli VB - Do while - w miare szybko idzie, ale jest słaby. Od czasu do czasu myli jakby kroki, ale sie dalej kręci. Czy to jest normalne ?

    0
  • #15 13 Cze 2003 00:26
    elektryk
    Poziom 42  

    Przykład z przesuwaniem, pamiętaj że komputer mimo iż wyświetla 123 to w pamięci przechowuje 01111011.

    Code:

    DEC |    BIN   |   mask   | przesun
    123 | 01111011 | 00000001 | 00111101
    061 | 00111101 | 00000001 | 00011110
    030 | 00011110 | 00000000 | 00001111
    015 | 00001111 | 00000001 | 00000111
    007 | 00000111 | 00000001 | 00000011
    003 | 00000011 | 00000001 | 00000001
    001 | 00000001 | 00000001 | 00000000
    000 | 00000000 | 00000000 | 00000000
    ----|----------|----------|---------
                            ^
    pionowo możesz odczytać liczbe binarną.

    PS maskowanie to operacja AND z odpowiednią maską (tam gdzie jest 1 w masce tam bity w maskowane liczbie zostaną nie zmienione)

    0
  • #16 23 Lip 2003 11:45
    janajan
    Poziom 2  

    Jezuu luuudzie przeca to przedszkole

    Masz 4 bieguny jesli chcesz zeby silnik sie krecil musisz podawac kolejno
    0001
    0010
    0100
    1000
    0001
    ...
    ..

    Czy chodzi jedynka czy zero nieistotne

    Jesli chcesz wieksza dokladność
    0001
    0011
    0010
    0110
    0100
    1100
    1000
    1001

    i tyla

    0