Hallo Ziel ist die Zeile und die Spalte der betätigten Taste mittels LEDs zu visualieren. Bei gedrückter Taste 1 soll die Row LED (1) und die Column LED (5) leuchten. Bei gedrückter Taste 5 soll die Row LED (2) und die Column LED (6) leuchten. Mit S1 kann die Visualisierung ein- bzw. ausgeschaltet werden. Die Schaltung soll von 3.3 (esp32) - 5 Volt funktionieren. Die LED's leuchten bei 3.3 Volt dunkler, was kein Problem ist. Ist meine Schaltung korrekt? Lässt sich mein Vorhaben mit weniger IC's oder einem anderen IC besser realisieren? elC
Auf den ersten Blick stellen sich meine Nackenhaare auf: - CMOS- Bausteine mit offenem Eingang - Wired-Or wird die Gatter-Ausgänge killen - gewöhnungsbedürftiger Stil beim Schaltplan - zum disablen einfach Masse der Bausteine kappen... Das Bedarf möglicherweise einer Überarbeitung...
ElC schrieb: > Ist meine Schaltung korrekt? Mit deiner Art Schaltpläne zu zeichen werden sich wenige Leute anfreunden können und Willens sein dir zu helfen. Siehe Schaltplan richtig zeichnen
Hallo Ein Anfänger bedankt sich für die kritischen Antworten. - CMOS Eingänge also auf ein definiertes Potenzial legen (GND?). - Die 4 Y-Ausgänge an ein weiteres OR Gatter mit 4 Eingängen führen? - Angekommen, kurz mit Fritzing hingeklatscht... - Wie würde eine korrekte Deaktivierung aussehen? Die Eingänge vom 74HC08 bleiben auch bei Deaktivierung von VCC verbunden. Inzwischen ist klar geworden dass die MCU Output Pins (Rows) mit High/Low Wechseln durchgescannt werden müssen. Das bedeutet ein (sehr schnelles) Flackern der LEDs und was sagt der 74HC08 dazu... Danke euch allen
:
Bearbeitet durch User
Joachim S. schrieb: > Auf den ersten Blick stellen sich meine Nackenhaare auf: LEDs mit "Sammelvorwiderstand". Das funktioniert nur in der Theorie so richtig gut. ElC schrieb: > Ist meine Schaltung korrekt? Kann man im Grunde nicht erkennen, denn ein Schaltplan wird nicht mit IC-Gehäusen gemalt, sondern mit der Innenbeschaltung des Bausteins. Und das sind einfach 4 UND-Gatter. Das Gehäuse braucht man erst fürs Layout. > Ist meine Schaltung korrekt? Ich vermute "nein", aber du kannst da ja einfach mal ausprobieren. Man lernt nie aus. ElC schrieb: > Inzwischen ist klar geworden dass die MCU Output Pins (Rows) mit > High/Low Wechseln durchgescannt werden müssen. Ja, die übliche Multiplexansteuerung: der Ruhepegel ist "alle Reihen low", dann es wird die erste Zeile auf "high" gesetzt und dann wird geschaut, welche Saplte ebenfalls auf "high" geht. Danach wird die Matrix wieder in den Ruhepegel versetzt (alle "low") und dann die zweite Zeile aktiviert. Und so geht es mit allen Zeilen durch. Bei Tastaturen ohne Dioden in Reihe zum Taster git es dann Erkennungsprobleme, mehrer Tasten auf einmal gedrückt werden. > Das bedeutet ein (sehr schnelles) Flackern der LEDs Wenn die LEDs dann mit 100Hz aufwärts flackern, dann sieht man das Flackern nicht mehr. > und was sagt der 74HC08 dazu... Dem ist das egal, der ist schnell genug für seine Funktion. Ob das auch die von dir gewünschte Funktion ist, steht auf einem anderen Blatt.
:
Bearbeitet durch Moderator
Der ganze Aufwand wurde betrieben um mcu Output-Pins einzusparen. Inzwischen tendiere ich zu einer Lösung mit dem 74HC238 BCD zu Decimal Decoder und Software-Steuerung. Sind dann immer noch 3 mcu pins, aber 3 ist besser als 7. :-) Am liebsten wäre eine Lösung die ohne und mit mcu funktioniert. Der wahrscheinlich erhebliche Hardware-Aufwand (?) ist nicht praktikabel. MfG
ElC schrieb: > Ist meine Schaltung korrekt? Nein > Lässt sich mein Vorhaben mit weniger IC's oder einem anderen IC besser > realisieren? Eine funktionierende Alternative ginge mit 3x 74HC03 (4xNAND je 2 Eingänge mit Open Drain-Ausgang), die Col mit je 10k Pulldown runter ziehen und die 3 Gatter der jeweiligen Row am Ausgang Wired-Or mit LED/Vorwiderstand nach Vcc schalten. Um das ganze zu deaktivieren müßte man jedoch Vcc der Row und GND der Col unterbrechen...
:
Bearbeitet durch User
Hallo Gestern, zu später Stunde, den 74HC595 (Schieberegister) entdeckt. Auch 3 mcu pins zur Ansteuerung. Alles in einem Chip, 3 - 5 Volt, separater Pin mit dem die Ausgänge ein- bzw. ausgeschaltet werden können (auf Low oder High legen). Allerdings müssen bei dem 74HC595 Low Current LEDs (~ 5mA) verwendet werden. Da immer 3.3 und 5 Volt zur Verfügung stehen dürfte sich auch das Problem der unterschiedlichen Helligkeiten erledigt haben. Ansteuerung der 74HC595 Eingänge mit 3.3 Volt. Den 74HC595 selber und die LEDs mit 5 Volt betreiben. Sehe ich das richtig? Laut Datenblatt wird bei VCC 4.5 Volt bereits 3.15 Volt "High-level input voltage" erwartet. Gut erklärt hier: https://www.conrad.de/de/ratgeber/industrie-40/elektronik-bauteile/74hc595.html Arduino Beispiel hier (fehlen da die PullDown Widerstände?): https://elektro.turanis.de/html/prj061/index.html Eine Alternative wäre der MCP23008, I2C Interface, 2 mcu pins. Nachteil bei 3.3 / 5 Volt: Das High Signal muss einen bestimmten Level überschreiten. Danke an alle für die Motivation das Thema zu überdenken. MfG
:
Bearbeitet durch User
ElC schrieb: > Lässt sich mein Vorhaben mit weniger IC's oder einem anderen IC besser > realisieren? Z.B. mit dem HT16K33. https://www.ebay.de/itm/162722490535?chn=ps&mkevt=1&mkcid=28 https://cdn-shop.adafruit.com/datasheets/ht16K33v110.pdf
ElC schrieb: > Danke an alle für die Motivation das Thema zu überdenken. Mir ist "das Thema" noch grundsätzlich überhaupt nicht klar geworden... Aus deiner Beschreibung sehe ich 2 Aufgaben: 1. Tastatur einlesen 2. zwei LEDs entsprechend der gedrückten Taste ansteuern Mir ist allerdings völlig schleierhaft, warum das auch ohne auswertenden µC gehen soll. ElC schrieb: > Am liebsten wäre eine Lösung die ohne und mit mcu funktioniert. Was willst du den eigentlich? Wozu diese Mordsklimbimschaltung um die Tastaturmatrix herum? Woran würde denn diese Tastatur angeschlossen, wenn nicht an einen µC?
HT16K33 - Großen Dank für den Hinweis. Ein kurzer Blick in das Datenblatt wirkt sehr interessant, allerdings auch etwas oversized. Das Tastenfeld soll universell einsetzbar sein, in einem selbstgebauten Elektronik-Experimentierkasten. Row und Col Anschlüsse auf eine 50-polige Stiftleiste. Auch sollen mal nur 1, 2, 3... Tasten mit automatischer LED Anzeige genutzt werden, ohne mcu. Für diese altertümlichen elektronischen Schaltungen. :-) Die 7 LED Anschlüsse, für konventionelle elektronische Schaltungen, zusätzlich auf die 50-polige Stiftleiste zu führen wird schwierig da nicht ausreichend freie Stifte zur Verfügung stehen. Außerdem wäre das keine automatische LED Anzeige mehr. Eine 60-polige Stiftleiste oder eine 64-polige Messerleiste ist zur Zeit keine Option. Die, zugegeben, Mordsklimbim Schaltung hat sich mit dem 74HC595 erledigt. Mit dem Nachteil das es nur mit mcu funktioniert.
ElC schrieb: > Das Tastenfeld soll universell einsetzbar sein, in einem selbstgebauten > Elektronik-Experimentierkasten. Was soll dann der unsinnige Aufwand? Einfach eine (low courrent) LED mit Vorwiderstand pro Zeile und Spalte und fertig. Für die H-aktive Abfrage (wie jetzt) gegen GND. OK, damit erwischt man nicht das Problem, daß die Zeilen H-aktiv oder L-aktiv abgetastet werden können. Auch Dioden in Reihe mit den Schaltkontakten helfen da nix, weil man ja einfach Zeilen und Spalten vertauschen könnte. Und natürlich hilft das auch nichts gegen zu hohe Abfrage-Frequenzen. Die LED zumindest der Zeilen würden dann alle flimmern. Muß man halt langsamer abtasten. Aber letztendlich ist das sowieso nur eine Spielerei. Jeder Anfänger sollte das Prinzip der Tastatur-Abfrage nach spätestens einem Tag verstanden haben. Ab da braucht er das nicht mehr.
ElC schrieb: > Lässt sich mein Vorhaben mit weniger IC's oder einem anderen IC besser > realisieren? Vielleicht mit den MCU selbst?
ElC schrieb: > Das Tastenfeld soll universell einsetzbar sein, in einem selbstgebauten > Elektronik-Experimentierkasten. Dann lass die ganze Elektronik weg, die eine bestimmte Spannung und Auswertung an den Tasten erzwingt, und einer Stromversorgung bedarf. Man könnte sogar sagen, für einen Experimentierkasten sind nur Einzeltasten sinnvoll, die man in jeder Art, 12x1, 6x2, 3x4 verdrahtbar sind, aber deine Tastatur wird 3x4 schon vorgeben. Wenn man davon aus geht, dass die Tastatur mit 3 nacheinander auf LOW gehenden Reihen von je 4 Tasten die per pull up nach plus gezogen werden (und bei gedrückter Taste eben auch auf LOW gehen) ausgewertet wird, die 20mA LED auch mit 8mA ausreichend sichtbar ist, dann wäre es sehr einfach, die eine von 12 LEDs aufleuchten zu lassen, die der gedrückten Taste entspricht. Aber du willst ja Reihen und Spalten LED wobei die Reihe gar nicht weiss, ob an ihr eine Taste gedrückt ist. Man braucht ein 4-Eingang-UND um zu erkennen, ob irgendeine Taste gedruckt ist. Und sollte dann stromverstärkende Treiber benutzen, um die uC Ausgänge nicht mit den 20mA der LED zu belasten, bis zu 4 also 80mA. Mühsam. Reduziert man den LED Strom auf 5mA, bei 1/3 Auswertezeit leuchtet sie also so hell wie mit 1.66mA Dauerstrom, dann wird es einfacher.
1 | Col1---+-----+-----+-----+--------|>o--|>|--R--GND |
2 | \ \ \ | |
3 | Col2---+-(---+-(---+-(---(-+------|>o--|>|--R--GND |
4 | \| \| \| | | |
5 | Col3---+-(---+-(---+-(---{-(-+----|>o--|>|--R--GND |
6 | \| \| \| | | | |
7 | Col4---+-(---+-)---+-(---(-(-(-+--|>o--|>|--R--GND |
8 | \| \| \| | | | | |
9 | | | | \___&___/ |
10 | | | | | |
11 | +-----(-----(-----|>o--|>|--R--GND |
12 | | | | | |
13 | | +-----(-----|>o--|>|--R--GND |
14 | | | | | |
15 | | | +-----|>o--|>|--R--GND |
16 | | | | |
17 | Row1 Row2 Row3 |
Man sieht hier 7 LED mit Vorwiderstand R hinter einen 74HC240 als Treiber. Die oberen 4 sind immer aktiv, die unteren 3 nur wenn das 4-fach UND Gatter meldet dass zumindest eine der Col Leitungen auf LOW liegt, also nicht alle HIGH sind. Wenn man die uC Ausgange mit bis zu 20mA belasten will, kann man auch die oberen LED über einen Vorwiderstand für 4mA direkt anschliessen zwischen der Col-Leitung und plus, und die unteren LED direkt an die Row-Leitung legen über einen Vorwiderstand für 4mA und statt an plus an den invertierten Ausgang eines AND, also ein 4-fsch NAND anschliessen.
1 | Col1---+-----+-----+---------+---------|<|--R--plus |
2 | \ \ \ | |
3 | Col2---+-(---+-(---+-(-------(-+-------|<|--R--plus |
4 | \| \| \| | | |
5 | Col3---+-(---+-(---+-(-------{-(-+-----|<|--R--plus |
6 | \| \| \| | | | |
7 | Col4---+-(---+-)---+-(-------(-(-(-+---|<|--R--plus |
8 | \| \| \| | | | | |
9 | | | | \___&___/ |
10 | | | | o |
11 | | | | | |
12 | +-----(-----(--R--|<|--+ |
13 | | | | | |
14 | | +-----(--R--|<|--+ |
15 | | | | | |
16 | | | +--R--|<|--+ |
17 | | | | |
18 | Row1 Row2 Row3 |
Hallo Michael B. Danke für deine Antwort. Ich habe versucht deine Zeichnung zu übersetzen. Habe ich das korrekt gemacht? Im Moment frage ich mich ob es funktioniert und wie ein Arduino Code aussehen müsste. Sieht so aus als wenn mir im Moment der klare Kopf dazu fehlt...
ElC schrieb: > Habe ich das korrekt gemacht? Ja. Achte auf die Auswertung seitens des uC. Weil die meisten uC nur pull ups an den Eingängen haben, wird die aktive Taste low durchschalten.
Dein "Ja" macht mich ein wenig stolz. :-) Wenn ich mich richtig erinnere können beim esp32 Wrover (WT32-SC01) die meisten, nicht alle, Pins pullup oder pulldown konfiguriert werden.
ElC schrieb: > Wenn ich mich richtig erinnere können beim esp32 Wenn ich mich richtig erinnere hast du bisher nicht geschrieben welchen uC, nur "MCU", dann musst du mit den Antworten leben.
Hallo Der erste Entwurf, spontan und ohne alles zu Ende zu denken, ist als deutlich misslungen zu beurteilen und wurde es auch mit Recht. Dabei wurde von mir völlig ignoriert, dass die LED Logik immer am Keypad hängt und die universelle Einsatzmöglichkeit im abgebildeten Elektronik Experimentierkasten dadurch natürlich gar nicht mehr gegeben war. Ohne einen erheblichen und unverhältnismäßigen Hardwareaufwand wäre das nicht zu lösen. Neuerung: - Die Row und Col LEDs werden bei Verwendung einer mcu über ein Schieberegister 74HC595 angesteuert - Bei konventionellen Schaltungen besteht die Möglichkeit über eine einzelne LED, mit an der Stiftleiste herausgeführten Anschlüssen, einen Tastendruck zu visualisieren. - Verwendung einer 4x4 Membran-Tastatur statt 3x4 Keypad Vorteile des neuen Entwurfs: - Keypad und LED Logik getrennt - Nur 3 mcu Pins zur Ansteuerung - Hardwareaufwand minimal - Freie Verdrahtung unter der Bedienplatte sehr gut möglich - Mechanische Arbeiten auf ein Minimum reduziert Nachteile des neuen Entwurfs: - In konventionellen Schaltungen keine automatische Row / Col LED Anzeige bei Tastendruck - 3 mcu pins zur Ansteuerung, bei meinen esp32 eigentlich kein Problem - Möglicherweise die Haptik der Membran-Tastatur Die beste Lösung zur automatischen Ansteuerung der LEDs ist wahrscheinlich die Verwendung von Einzeltasten mit jeweils 2 getrennten Kontakten, wie bereits von einem User angemerkt. Ein Kontaktanschluss für die Taste und der zweite für die LED Geschichte. Das ganze geschickt verdrahtet ergibt eine Row und Col Anzeige. Das war hier keine Option, Die Tastenfelder sind schick und günstig... Die Membrantastatur wurde gewählt weil mit einem Keypad die Stabilität der Bedienplatte gelitten hätte (Ausbruch 60x64mm bei 100mm Breite), dazu noch die Bohrungen für die LEDs, Potis usw.. Es fehlt auch die Umgebung und das Werkzeig für genaues fräsen / sägen. Das kann später immer noch geändert werden. Bilder des momentanen Entwurfs (noch mit 3x4 Keypad) als Anhang. So gestaltet, dass es leicht fällt das Ganze frei zu verdrahten. Deshalb die LED Widerstände vor der LED. Die 10k Widerstände mit Masseanschluss als Array-Element, passt frei verdrahtet gut an den 74HC595. Die Keypad Anschlüsse im Schaltplan sind eigentlich überflüssig da diese direkt an die Stiftleiste der Bedienplatte im Elektronik Eperimentierkasten geführt werden. Unklar ist für mich noch ob der nicht genutzte Ausgang (des 74HC595) Q7' auf GND gezogen werden muss? Fehlermeldungen sind natürlich willkommen... Möglicherweise habe ich mich bereits wieder gedanklich verrannt: '''Gibt es einen IC welcher aus einem 3 oder 4 Bit BCD am Eingang eine Bitausgabe an 8 Ausgängen generiert?''' So soll 0x05h am Eingang die Ausgänge so setzen (High to Low): xx xx xx xx 00 04 00 01 BCD zu 7-Segment Decoder scheiden da ebenso aus wie Dezimal-Decoder. Alles mit SPI oder I2C Eingängen ist nicht erwünscht. Der IC darf nicht abgekündigt sein, wie z.B. der 74C922 / 74C923. Etwas viel Text, aber es ist ja WE. :-) Ob in diesem Forum oder in anderen. Ich finde es suboptimal wenn Themen offen bleiben und nicht in konstruktiver Form beendet werden. Es wird einige Wochen dauern, dann wird mein bescheidenes Ergebnis hier eingestellt. Vielleicht will ein Bastler mal einen ähnlichen Kasten bauen. MfG
Korrektur: Gibt es einen IC welcher aus einem 3 oder 4 Bit BCD am Eingang eine Bitausgabe an 8 Ausgängen generiert? So soll 0x05h am Eingang die Ausgänge so setzen (High to Low): x x x x 0 1 0 1
Hi
>So soll 0x05h am Eingang die Ausgänge so setzen (High to Low):
x x x x 0 1 0 1
0x05h ist binär 00000101b
MfG Spess
Schlecht gefragt von mir. Bei 4 Bit BCD 0x05h am IC BCD-Eingang hätte ich es gerne so: Bit|IC-BCD-Eingang|IC-Ausgangs-Nummer 1 - 8 0 1 1 1 0 0 2 1 0 3 0 1 4 x 0 5 x 0 6 x 0 7 x 0 BCD Bitwert 0 = 1, BCD Bitwert 2 = 4 ---> Ausgang 1 = 1, Ausgang 4 = 1 Bei 4 Bit BCD 0x06h am IC BCD-Eingang hätte ich es gerne so: Bit|IC-BCD-Eingang|IC-Ausgangs-Nummer 1 - 8 0 0 0 1 1 1 2 1 0 3 0 1 4 x 0 5 x 0 6 x 0 7 x 0 BCD Bitwert 1 = 2, BCD Bitwert 2 = 4 ---> Ausgang 2 = 1, Ausgang 4 = 1 Bei 4 Bit BCD 0x0Eh am IC BCD-Eingang hätte ich es gerne so: Bit|IC-BCD-Eingang|IC-Ausgangs-Nummer 1 - 8 0 0 0 1 1 1 2 1 0 3 1 1 4 x 0 5 x 0 6 x 0 7 x 1 BCD Bitwert 1 = 2, BCD Bitwert 2 = 4, BCD Bitwert 3 = 8 ---> Ausgang 2 = 1, Ausgang 4 = 1, Ausgang 8 = 1 Der IC-Ausgang soll den gesetzten Bitwerten am BCD IC-Eingang entsprechen. So einen IC suche ich, oder drifte ich gedanklich ab...
ElC schrieb: > Keypad_3x4_with_Row_Column_LEDs_74HC595_1.png Wer Digital-Schaltungen ohne Abblock-Kondensatoren aufbaut, nachmacht oder verfälscht, insbesondere bei existierenden Schaltungen die Abblock-Kondensatoren weglässt oder falsch verschaltet oder selbst solche Schaltungen entwirft, in Verkehr bringt und/oder aufbaut ohne Abblock-Kondensatoren nach Hersteller- Empfehlungen zu verwenden, wird mit Zugangs-Ausschluss vom Mikrokontroller-Forum nicht unter zwei Jahren bestraft.
Hallo, Wie bereits angedeutet bevorzuge ich in den Foren, letztendlich, eine praktische Lösung. Ohne das Thema jetzt über Gebühr wiederbeleben zu wollen der momentane Stand. Auf eine Frontplatte wurde verzichtet, u.a. wäre der Aufwand zu hoch. Steampunk ist eher mein Ding und es passt auch besser zu dem Experimentierkasten. Anbei ein, eher mäßiges, Video vom ersten Testlauf. Anmerkung: Allen esp32 Anwendern sei gesagt, dass es nicht zuverlässig funktioniert den 74HC595 mit 5 Volt zu versorgen und die Eingänge des 74HC595 mit den Outputs vom esp32 (~3.3Volt) anzusteuern. Das entspricht auch dem Datenblatt des 74HC595. Erwartet wird je nach Versorgungsspannung des 74HC595 ein entsprechender High Pegel. Also, den 74HC595 auch mit 3.3 Volt versorgen! Die Ausgänge des 74HC595 sind beim Startup nicht definiert. Aus dem Grund war es leider nötig zusätzlich die !OE Leitung zu verdrahten, als Default ist die !OE Leitung auf High gelegt, also die Ausgänge disabled. Um nicht erneut die Inquisition auf den Plan zu rufen wurde ein 100nF cap direkt zwischen VCC und GND des 74HC595 eingefügt. :-) Unten links befindet sich ein PSP2000 analog Thumb Joystick (ohne Click). Basis ist ein Gummiklebefuß für Möbel. Dummerweise habe ich mich bei den Kontakten vertan. Um die gelungene Lötung nicht zu riskieren habe ich es so belassen. Gelb muss Blau sein (GND) und Blau muss Gelb sein. Danach wurden die gelöteten Kontakte, mit 2-Komponentenkleber verklebt. Gerne hätte ich den Nintendo Switch Joystick (mit Click) verwendet, allerdings ist es mir nicht gelungen einen kompakten FPC-Kabel zu 2.54 mm Adapter zu erwerben. Mal sehen, möglicherweise hat der PSP2000 Joystick praktische Vorteile... Der Tactile Switch unten rechts wurde aus einem Modul ausgelötet und in eine zerlegte DIL8-Fassung gelötet. Mit dem Schalter oben rechts wird zwischen 3.3 Volt und 5 Volt Betriebsspannung für das Bedienfeld umgeschaltet. Das kann risikoreich sein weil ein 5 Volt Input den Eingang eines esp32 zerstören kann/wird. esp32 User sollten die 5 Volt Umschaltung hardwaremäßig unterbinden. Die 25-Gang Trimmer mit Knob habe ich nur beim Händler Funduino gefunden. Die Spannungsversorgung des gesamten Experimentierkastens mit Powerbanks hat mich erst begeistert und war so verdammt praktisch. Inzwischen, nachdem ich die Probleme mit den Buck-Modulen feststellen musste, wurde eine Lösung mit zwei 18650 LiIo Zellen und 5V/3.3V Linearreglern verbaut. Ja, in den Powerbanks sind auch Schaltregler verbaut. Alles wird frei verdrahtet, eine Leiterplattenanfertigung rechnet sich für mich nicht. Rückseitig wird eine Backplate montiert. Ein angenehmes Wochenende elC
ElC schrieb: > Allen esp32 Anwendern sei gesagt, dass es nicht zuverlässig funktioniert > den 74HC595 mit 5 Volt zu versorgen und die Eingänge des 74HC595 mit den > Outputs vom esp32 (~3.3Volt) anzusteuern. Dafür gibt es den 74HCT595.
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.