Encoder Mux ?

Hi

ich habe grade das problem, dass ich zu viele Encoder abfragen muss. Kann man Encoder irgendwie mux'en? So wie Switch-Buttons über einen 4051?

Im Netz habe ich folgendes gefunden: https://massimoriggi.files.wordpress.com/2016/12/4-encoder_bb.png

habe das nachgebaut, doch es funktioniert nicht :confused:

jemand eine Idee?

74HC165 sind parallel in/serial out (PISO) Schieberegister um Eingänge zu erweitern

Oder vielleicht I2C Port Expander

Der Artikel - auf Italienisch, dafür aber mit Schaltplänen: :slight_smile:

Wieviele sind denn bei Dir

zu viele Encoder

?

Klaus_ww:
Wieviele sind denn bei Dir ?

insgesammt 12 ..
ich habe da aber noch eine tonne an buttons, fadern, LEDs. ein Display, und und und

uxomm:
Der Artikel - auf Italienisch, dafür aber mit Schaltplänen: :slight_smile:
Utilizzare 4 Rotary Encoder occupando soltanto 3 ingressi di un microprocessore (con routine di interrupt). « ElettroBlog

ja da habe ich es her.. habe das wie im schaltplan beschrieben nachgebaut, eider funktioniert das nicht und ich habe keine ahnung warum

Serenifly:
74HC165 sind parallel in/serial out (PISO) Schieberegister um Eingänge zu erweitern

Oder vielleicht I2C Port Expander

Kannst du mir erklären was es mit "parallel-in/serial-out" auf sich hat? Schaue grade nach Port-Expandern.. mir dünkt, das wäre die einfachste und beste option.. nur wie das funktioniert, da stehe ich noch auf dem schlauch..

Schau mir grad ein paar tutorials und videos dazu an.. und frage mich ob das auch wirklich mit Encodern funktioniert(?)

Kannst du mir erklären was es mit "parallel-in/serial-out" auf sich hat?

Genau was der Name sagt. Parallele Eingänge. Ein Ausgang der zum µC geht. Über den Takteingang kann man dann Bit für Bit einlesen

Das ist das Gegenstück zu SIPO Registern wie dem 74HC595 bei denen man Ausgänge erweitert.

Schaue grade nach Port-Expandern.. mir dünkt, das wäre die einfachste und beste option.. nur wie das funktioniert, da stehe ich noch auf dem schlauch

PCF8574 (8 Bit) oder MCP23017 (16 Bit). Das kann doch nicht so schwer sein da eine der vielen Anleitungen zu finden.

und frage mich ob das auch wirklich mit Encodern funktioniert

Encoder liest man sowieso am besten nicht über externe Interrupts ein, sondern in dem man sie regelmäßig z.B. alle 1-2ms abfragt. Das kann man genauso über Peripherie-Bausteine machen. Natürlich ist das langsamer als es direkt zu machen, aber wenn es sich im manuelle Eingaben und nicht eine Motorwelle handelt sollte das reichen

aber wenn es sich im manuelle Eingaben ... handelt sollte das reichen

Genau - an wievielen Encodern und Tastern und Knöpfen wirst Du gleichzeitig rumspielen? Siehste, eher weniger 8)
Da langweilt sich Dein Prozessor dann doch die meiste Zeit. Ok, abhängig davon was er mit dem ganzen Eingabezeug machen soll.

Schau mal hier.

Da hat ein schlauer Mensch sowas gemacht was Du auch willst. Sehr geschickt programmiert, da brauch ich noch ein paar Jahre bis ich sowas selbst hingebastelt bekomme :angry:

Aber von anderen lernen ist ja ne feine Sache.

Das ist für einen Mega gemacht wo man 50 Pins hat! Das ist natürlich auch eine Option

Außerdem gibt es da was die Strukturierung der Daten angeht einiges an Verbesserungsbedarf...

Mein Motto: wenn's funktioniert, ist's gut

Ahoy hoy :slight_smile:

ich habe jetzt eine andere Lösung gefunden und zwar MUX'e ich einfach. Mit 2x 74CD4051 kann ich 8 Encoder gleichzeitig MUX'en. Funktioniert eigentlich supi. Nur muss ich jetzt entkoppeln und weiss nicht wie :confused:

als ich die encoder noch direkt angeschlossen hatte, habe ich wie folgt entkoppelt:

  • 3k3 von pins A/B zu +5V als pull-up
  • 1x 10nF von pins A/B zu ground fürs de-bouncing

ich habe jetzt wie gesagt 2x 4051 verwendet und die pins A von den encodern jeweils auf den ersten 4051 gelegt und die pins B auf den zweiten.. würde ich jetzt jeden einzelnen pin an den 4051 wie gewohnt entkoppeln?? Oder den IC komplett? .. oder beides .. oO ?