Drehencoder in Matrixschaltung machbar?

Gast #2766728
Lesenswert?

ich habe das problem 8 drechencoder an einem xmega betreiben zu "müssen"

das würde mich 16 portpins kosten

wenn ich mir dir einfachen drehencoder als mechanisch verbunden 
doppelschalter vorstelle sollte doch auch eine matrixschaltung mit 
dioden möglich sein. oder nicht?

hat das jemand schonmal probiert?
oder hat jemand andere vorschläge?

wäre für anregungen dankbar

gruß
Robert
Gast #2766787
Lesenswert?

Soweit mir bekantrixnt ist sind die signalleitungen bei den 
rastpositionen entweder beide hihg oder beide low ... dioden wären also 
notwendig da sonst ghosting entstehen würde
mach mir ein bisschen gedanken über die performance ... aber bei 8 
drehencodern in matrixschaltung bräuchte ich genau einen port ... sollte 
also ähnlich schnell sein als wenn ich nur zwei pins auswerte
#2766801
Lesenswert?

Mad79 schrieb:
> Soweit mir bekantrixnt ist sind die signalleitungen bei den
> rastpositionen entweder beide hihg oder beide low ... dioden wären also
> notwendig da sonst ghosting entstehen würde

Also meine sind entweder verbunden oder offen, bei offen ziehe ich per 
Pullup auf 1, bei geschlossen gegen Massen.

Wenn du nun statt masse einen IO Pin Verwendest, und den hochohmig 
schaltest, sollte da keinen Beinflussung stattfinden. (bzw. keine 
relevante)

> mach mir ein bisschen gedanken über die performance ... aber bei 8
> drehencodern in matrixschaltung bräuchte ich genau einen port ... sollte
> also ähnlich schnell sein als wenn ich nur zwei pins auswerte

Also wenn du mit 200hz Aptastest reicht das warscheinlich bereits.

Aber du müsstest mal einen Konkreten Typen angeben, denn ich weiss ja 
nicht ob wir vom gleichen Typen reden.


mfg Andreas
Gast #2768925
Lesenswert?

Zum einsatz kommt warscheinlich dieser typ
http://www.alps.com/WebObjects/catalog.woa/E/HTML/Encoder/Incremental/EC09E/EC09E1520406.html

ist ewtas kleiner als die üblichen 11mm alps oder bourns encoder der 
ec11 reihe,technisch aber identisch

>Also meine sind entweder verbunden oder offen, bei offen ziehe ich per
>Pullup auf 1, bei geschlossen gegen Massen.

>Wenn du nun statt masse einen IO Pin Verwendest, und den hochohmig
>schaltest, sollte da keinen Beinflussung stattfinden. (bzw. keine
>relevante)

so kann man das auch sehen und stimmt auch soweit

aber wenn ich angenommen drei encoder parallel schalte 
(signalleitungen)und masse auf jeweils extra io pin
wäre es doch möglich das der eine encoder gerade in seiner rastposition 
die signalleitungen verbindet
dann kann ich doch auch keinen anderen mehr auswerten?
#2768977
Lesenswert?

@  Mad79 (Gast)

>>Wenn du nun statt masse einen IO Pin Verwendest, und den hochohmig
>>schaltest, sollte da keinen Beinflussung stattfinden. (bzw. keine
>>relevante)

Doch. Wenn man eine Matrix von Schalter sicher auslesen will, und 
mehrere aktive Schalter unterschieden muss, braucht man Dioden. Punkt.

>aber wenn ich angenommen drei encoder parallel schalte
>(signalleitungen)und masse auf jeweils extra io pin
>wäre es doch möglich das der eine encoder gerade in seiner rastposition
>die signalleitungen verbindet
>dann kann ich doch auch keinen anderen mehr auswerten?

Das IST eine Matrix.

Für acht Encoder a zwei Kanäle braucht man 16 IOs, in matrix 4+4 Ios = 8 
Naja. Dazu ggf. noch acht IOs für die Tastfubnktion. Ich würde zwei oder 
drei 74HC165 Schieberegister nehmen, braucht nur drei Pins und kann 
beliebig viele Tasten einlesen, ganz ohne Dioden. Pull-Ups aber nicht 
vergessen.

MFG
Falk
Gast #2769003
Lesenswert?

@ Falk

ja so hab ich mir das auch gedacht.
war halt verwundert weil Andreas meinte es ginge auch ohne dioden ???

mach mir halt sorgen um die performance
bei meinen bisherigen bastelleien mit einem drehencoder war die 
auswertung schon tricky ... mit 8? mhh?

hat jemand sowas schon mal probiert?

ist man mit schieberegistern überhaupt noch schnell genug für (schnell 
gedrehte) drehencoder?


ich muss auch noch einen DA und einen mux bedienen (per festem 1ms 
timerinterrupt)
#2769011
Lesenswert?

@  Mad79 (Gast)

>mach mir halt sorgen um die performance

Unnötig. Dein xmaega ist damit nur gelangweilt. Das Auslesen dauert eine 
Handvoll Mikrosekunden, die Verarbeitung der Codes ebenfalls. Gähn

>ist man mit schieberegistern überhaupt noch schnell genug für (schnell
>gedrehte) drehencoder?

Siehe oben. Wenn du da mit 1kHz Abtastrate fahren willst, ist das kein 
Thema, selbst 10kHz sind problemlos drin.

>ich muss auch noch einen DA und einen mux bedienen (per festem 1ms
>timerinterrupt)

Und was macht die CPU die restlichen 950us?
#2769202
Lesenswert?

Mad79 schrieb:

>>Also meine sind entweder verbunden oder offen, bei offen ziehe ich per
>>Pullup auf 1, bei geschlossen gegen Massen.
>
>>Wenn du nun statt masse einen IO Pin Verwendest, und den hochohmig
>>schaltest, sollte da keinen Beinflussung stattfinden. (bzw. keine
>>relevante)
>
> so kann man das auch sehen und stimmt auch soweit
>
> aber wenn ich angenommen drei encoder parallel schalte
> (signalleitungen)und masse auf jeweils extra io pin
> wäre es doch möglich das der eine encoder gerade in seiner rastposition
> die signalleitungen verbindet
> dann kann ich doch auch keinen anderen mehr auswerten?

Sorry, Denkfehler. Natürlich wird bei einem Taster jeder Taster einzel 
angesteuert, wärend beim Drehencoder immer zwei Kontakte parallel 
Verbunden sind (also am einen Anschluss).

Wäre diese Verbindung nicht würde es funktionieren...;-)



mfg Andreas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren