Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

AT93S2313 - Sterownik na AVT2745

zbigmen 08 Jul 2014 19:38 942 0
  • #1
    zbigmen
    Level 12  
    Witam wszystkich forumowiczów!
    Na wstępie przyznaję się bez bicia że jestem zielony w programowaniu w bascomie.
    Kupiłem sterownik na bazie kitu AVT2745 z myślą o sterowaniu silnikiem unipolarnym do sterowania mikroruchowego sterowanie bezdotykowe ostrością w teleskopie astronomicznym oraz z myślą o sterowaniu mechanizmem teleskopu za pozornym ruchem gwiazd wynikłym z ruchu obrotowego ziemi.Próbowałem przerobić sekwencję na półkroki ale nie działa>Silnik tylko drga.Oto program działajacy na pełny krok:

    Dim Praca As Bit , Przyciski As Byte , Licznik As Byte , Predkosc As Byte
    Config Portb = &B00001111 'młodsze-wyjścia do silnika, starsze-wejscia DIP-switch S1
    Config Portd = &B1000000 ' 2 najmłodsze bity - wejscie przycisków,
    ' 4 następne -predkosc z DIP-switch'a S2 ostatni bit - wyjście=brzęczyk piezo
    Config Timer0 = Timer , Prescale = 1024
    Enable Interrupts : Enable Ovf0
    Portb = &B11110000 'na początek wyłącza silnik i podciąga wejscia S1
    Portd = 255 'włącza rezyst podciągajace na wejsciach PD.0, PD.5 i wyłacza brzęczyk

    On Timer0 Podprogramik

    Do : Loop : End 'pusta pętla



    Podprogramik:
    Przyciski = Pind And 3 'uzyskujemy stan przycisków - dwa najmłodsze bajty
    Predkosc = Pind And &B0111100 'i stan czterech bitów DIP-switcha S2
    Shift Predkosc , Left , 2 'przesuwamy to na najstarsze pozycje
    Predkosc = Predkosc Or 15 'a do 4 młodszych wpisujemy jedynki
    Timer0 = Predkosc 'ładujemy tę wartość do Timera0, zmieniając czas do najbliższego przepełnienia
    Select Case Przyciski 'sprawdzamy stanu przycisków
    Case 0: 'gdy naciśnięte oba przyciski włącza brzęczyk piezo
    Praca = 0 : Reset Portd.6 'włączony między PD.6 a plus zasilania
    Case 1:
    Praca = 1 : Incr Licznik ' naciśnięty S3 - w górę
    Case 2:
    Praca = 1 : Decr Licznik ' naciśnięty S4 - w dół
    Case 3:
    Praca = 0 : Set Portd.6 ' w spoczynku wyłącz brzęczyk
    End Select
    Licznik = Licznik And 3 'zeruje 6 zbędnych bitów ośmiobitowego licznika
    If Praca = 1 Then
    Portb = Lookup(licznik , Tabela)
    Else
    Portb = 0
    End If
    Return

    Tabela:
    Data &B11111001 , &B11111100 , &B11110110 , &B11110011

    A tu moje nieudolne przeróbki:
    Tabela:
    Data &B11111000 , &B11111100 , &B11110100 , &B11110110, &b11110010, &b11110011, &b11110001, &b11111001

    oraz

    Tabela:
    Data &B11111001 , &B11111101 , &B11111100 , &B11111110 , &B11110110 , &B11110111 , &B11110011 , &B11111011

    Na obu silniczek tylko drga.Pomoze ktoś życzliwy?
    I jak tu programowo zmniejszyć obroty na tych czterech podzakresach?
    Kamery 3D Time of Flight - zastosowania w przemyśle. Darmowe szkolenie 16.12.2021r. g. 10.00 Zarejestruj się
pcbway logo