Hallo, im Projekt Midi_Rekorder wurde vorgeschlagen, "als Erweiterung ein 8-Line To 3-Line Priority Encoder (z. B.SN74LS348) für die Taster einzusetzen". Ich plane eine Midi-Schaltung, bei dem ca. 100 Taster inkl. LEDs zum Einsatz kommen. Demzufolge werde ich immer zu wenig IO-Pins zur Verfügung haben. Wie kann man sich die Schaltung bspw. mit einem 8/3-Encoder vorstellen? wole
W. S. schrieb: > Wie kann man sich die Schaltung bspw. mit einem 8/3-Encoder vorstellen? Die sieben Taster sind dann nicht mehr direkt an den IO-Pins des µC angeschlossen, sondern an je einem Eingang des Prioritätsencoders. Die drei Ausgänge des Prioritätsencoders führen auf drei IO-Pins und liefern die "Nummer" der gedrückten Taste als 3-Bit-Binärzahl. Eigentlich solltest du an jeden Eingang des Prioritätsencoders einen Pullup-Widerstand anschließen (auch wenn es bei LS-Bausteinen theoretisch auch ohne funktioniert). Wenn du allerdings nicht sieben, sondern hundert Taster hast, dann solltest du einen anderen Weg gehen, indem du diese (gemeinsam mit den LEDs) in einer Zehn-mal-zehn-Matrix anordnest. Dann brauchst du für alle Taster und LEDs zusammen höchstens dreißig µC-Pins, bei geschickter Realisierung sogar noch weniger. Wie es für die LEDs geht, steht hier: http://www.mikrocontroller.net/articles/LED-Matrix Über die zusätzliche Einbindung der Taster denke einmal selbst nach. Ein Tipp dazu: Du kannst die Hälfte der IO-Pins (z.B. jene für die Zeilen) für LEDs und Taster gemeinsam verwenden. Falls du am µC einen freien A/D-Wandler Pin hast, kannst du die gedrückten Tasten einer Zeile über diesen einlesen und brauchst dann anstatt der zehn zum Einlesen benutzten IO-Pins nur mehr diesen einen A/D-Pin (und zehn Widerstände, um die einzelnen Spalten per A/D-Wandler unterscheiden zu können). Anregungen dazu (welche aber an deine Anforderungen angepasst werden müssten) gibt's hier: Beitrag "Taster-Matrix mit AD-Wandler" Solltest du dann immer noch zuwenige Ports haben, kannst du die Anzahl deiner Ports mit (hintereinander geschalteten) Schieberegistern beliebig erweitern. Unabhängig davon, wie viele Schieberegister du verwendest, brauchst zu deren Anschluss nur (insgesamt) drei IO-Pins. http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister Eine Einsparung von IO-Pins für LEDs und Taster (ohne Verwendung eines A/D-Wandlers) ist alternativ auch durch das sogenannte "Charlieplexing" möglich - das geht aber nur mit echten IO-Pins und nicht mit Schieberegistern, da die Pins hier immer zwischen Ein- und Ausgang umgeschaltet werden müssen. Es gibt im Forum einige Threads zu diesem Thema.
Vielen Dank für die ausführliche Antwort! Ich habe nicht alles genau verstanden, weil ich noch keine Schaltung selbst gebaut habe. Ich versuche gerade, lesend den Hardware-Kram zu verstehen. Wenn ich eine Chance sehe, das alles zu "blicken", dann gehts erst mit den praktischen Erfahrungen weiter. > Über die zusätzliche Einbindung der Taster denke einmal selbst nach. Siehe oben :-) Wenn ichs mal kapiert habe, dann - ja. Ich kann einen Schaltplan nur mit Mühe und viel "raten" entziffern. Soweit zu meinem nicht vorhandenen Basiswissen (das ich gerade etwas erweitere). > Tipp dazu: Du kannst die Hälfte der IO-Pins (z.B. jene für die Zeilen) > für LEDs und Taster gemeinsam verwenden. Falls du am µC einen freien > A/D-Wandler Pin hast Hat das zufällig was mit den "ADC"-Pins zu tun? >, kannst du die gedrückten Tasten einer Zeile über > diesen einlesen und brauchst dann anstatt der zehn zum Einlesen > benutzten IO-Pins nur mehr diesen einen A/D-Pin (und zehn Widerstände, > um die einzelnen Spalten per A/D-Wandler unterscheiden zu können). Das ist gerade etwas zu harter Tobak für mich :-( > Anregungen dazu (welche aber an deine Anforderungen angepasst werden > müssten) gibt's hier: > > Beitrag "Taster-Matrix mit AD-Wandler" > > Solltest du dann immer noch zuwenige Ports haben, kannst du die Anzahl > deiner Ports mit (hintereinander geschalteten) Schieberegistern beliebig > erweitern. Ist das ne software-seitige Geschichte? Vielen Dank für die Links! Ich werde mir das anschauen. Gut ist ja schon mal, dass es anscheinend machbar ist, meine Idee zu realisieren. Aber da werde ich wohl noch das eine oder andere Mal auf Deinen/Euren Rat angewiesen sein. Viele Grüße wole
W. S. schrieb: >> Über die zusätzliche Einbindung der Taster denke einmal selbst nach. > Siehe oben :-) Wenn ichs mal kapiert habe, dann - ja. Kein Problem. Auch dazu gibt's Beiträge im Forum, z.B. diesen hier: Beitrag "Tastatur Matrix mit LED Monitor" >> A/D-Wandler Pin > Hat das zufällig was mit den "ADC"-Pins zu tun? Ja, das ist dasselbe. ADC = analog-to-digital converter = Analog-/Digital-Wandler = A/D-Wandler >> Solltest du dann immer noch zuwenige Ports haben, kannst du die Anzahl >> deiner Ports mit (hintereinander geschalteten) Schieberegistern beliebig >> erweitern. > Ist das ne software-seitige Geschichte? Naja, Software brauchst du dazu auch. Aber zuerst ist es einmal Hardware. Das müsste aus dem von mir geposteten Tutorial-Link eigentlich hervorgehen ;-)
Wow - ich glaube, jetzt macht Nachdenken langsam Sinn :-)) >>> Solltest du dann immer noch zuwenige Ports haben, kannst du die Anzahl >>> deiner Ports mit (hintereinander geschalteten) Schieberegistern beliebig >>> erweitern. > >> Ist das ne software-seitige Geschichte? > > Naja, Software brauchst du dazu auch. Aber zuerst ist es einmal > Hardware. Das müsste aus dem von mir geposteten Tutorial-Link eigentlich > hervorgehen ;-) Stimmt. Das habe ich gestern auch gesehen. Ich werde mal etwas zeichnen und nachdenken... und weiter lernen... vielleicht klappts doch noch dieses Jahr, dass ich ne Schaltung hinbekomme... *** Vielen Dank an Alle, die ihr Wissen in diesem Forum weitergeben! ***
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.