PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe, ALPS EC11 auswerten?



Ghostrider1911
16.12.2013, 23:00
Hallo,

ich bin gerade bei einem Projekt, und möchte nun den ALPS EC11 Drehimpulsgeber auswerten.

Leider ist dieser nicht mit dem Encoder Befehl in Bascom kompatibel.

Deswegen bräuchte ich eure Hilfe zur Auswertung.

Kennt ihr vielleicht fertige Routinen die auf diesen Encoder zugeschnitten sind?

Im Anhang noch ein Bild um den Signalverlauf zu verfolgen, aus dem Datenblatt.

26942

mfg

for_ro
16.12.2013, 23:17
Hallo Ghostrider,
du kannst zum Beispiel einen oder beide Ausgänge auf einen INTx Pin legen und dann bei den Flanken einen Interrupt erzeugen, wo du die Pegel überprüfst und daraus die Drehrichtung ableiten kannst.
Oder du fragst in einem Timer die Eingänge in regelmäßigen Abständen ab. Bei Änderung der Eingänge kannst du aus der Folge der Werte wieder die Richtung herleiten.
Wenn du die Richtung hast, entsprechend hoch- oder runterzählen.

Ghostrider1911
17.12.2013, 00:04
Hallo,

Danke für die schnelle Antwort!

Ich werde mal etwas rumspielen ;-)

Aber heute ist es schon zu spät..

mfg

joho63
17.12.2013, 09:57
Ich habe viele Encoder-Programme ausprobiert, bei mir läuft dieses zuverlässig:



$regfile = "m8adef.dat"
$crystal = 2000000
$hwstack = 40
$swstack = 16
$framesize = 32
Portc = &B11 ' PIN 0,1 Pullup
Enc_a Alias Pinc.1
Enc_b Alias Pinc.0
Dim Wert As Byte , Tick As Byte
Wert = 30 'Vorgabewert
Config Portd = Output

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Cls
Cursor Off Noblink

Config Timer0 = Timer , Prescale = 1024 '= ~10MHz= ~0,1µs * 1024= 0,1ms
On Timer0 Enc_int 'Interrupt
Timer0 = 246 'Timerstartwert:10; ~0,1ms * 10= 1ms
Enable Timer0
Enable Interrupts


Do
Locate 1 , 1 : Lcd "Drehencoder EC11"
Locate 2 , 1 : Lcd "Wert : " ; Wert ; " "
Waitms 1
Loop

Enc_int:
Timer0 = 246 'Timerstartwert
Tick.0 = Enc_a 'Zustandswechsel
Tick.1 = Enc_b
Select Case Tick
Case &H0_2 : Incr Wert
Case &H0_1 : Decr Wert
End Select
Tick.4 = Tick.0
Tick.5 = Tick.1
Return

End


Das LCD ist nur zur Demo. Der Ausgang "Wert" kann für beliebige Zwecke angepaßt werden.

Joachim