Obsługa Impulsatora

Impulsator (Enkoder obrotowy) jest elementem przeważnie stosowanym w układach mikroprocesorowych. Pełni podobną funkcję jak potencjometr w układach analogowych. Zazwyczaj impulsator posiada 3 wyprowadzenia (dwa wyjścia i wyprowadzenie wspólne). Po podłączeniu napięcia zasilania do wyprowadzenia wspólnego podczas kręcenia enkoderem na dwóch jego wyjściach otrzymujemy przebiegi prostokątne przesunięte w fazie o pół okresu.

Od kierunku obrotu zależy który z przebiegów ma jeko pierwszy zbocze narastające. Częstotliwość przebiegów zależy od szybkości kręcenia impulsatora a także od konkretnego egzemplarza (ilosć impulsów na obrót). Zawarte poniżej procedury służą do obsługi takiego właśnie enkodera

Język Bascom 8051

Procedura poniżej współpracuje z impulsatorem podłączonym wyprowadzeniem wspólnym do masy układu:
Impulsator:
In1 = P3.0
In2 = P3.1
Rezultat = 0
Select Case Tryb
Case 0:
If In1 = 1 And In2 = 1 Then Incr Tryb ‚jezeli dwa rozwarte
Case 1:
If In1 = 1 And In2 = 0 Then
Rezultat = 1
Incr Tryb
End If
If In1 = 0 And In2 = 1 Then
Rezultat = -1
Incr Tryb
End If
Case 2:
If In1 = 0 And In2 = 0 Then Incr Tryb
Case 3:
If In1 = 1 And In2 = 0 Then
Rezultat = -1
Tryb = 0
End If
If In1 = 0 And In2 = 1 Then
Rezultat = 1
Tryb = 0
End If
End Select
Return

Do poprawnego działania tej procedury wymagane są zmienne które należy zadeklarować na początku programu:

‚//////////// Impulsator ////////////////////
Dim In1 As Bit , In2 As Bit
Dim Tryb As Byte , Rezultat As Integer
‚/////////////////////////////////////////////

Poniżej przedstawione jest przykładowe wywoływanie procedury obsługi impulsatora. Zmienna Wartosc_ustawiana jest zwiększana lub zmniejszana podczas kręcenia impulsatorem:

Do
Gosub Impulsator
Wartosc_ustawiana = Wartosc_ustawiana + Rezultat
Loop
End

Materiał nadesłał użytkownik : Elektron

Post Author: swistak

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Potwierdz, że nie jesteś botem. *