Hallo zusammen, ich suche nach einer Möglichkeit 5 Digitale Signale (abwechselnd) auf einen Ausgang zu legen. Der Ausgang sollte nur dann LOW durchschalten wenn einer der 5 Eingänge ebenfalls LOW ist. HIGH am Eingang soll ignoriert werden. Gibt es dafür was passendes ? Würde mich über Eure Tipps freuen ! Grüsse
:
Bearbeitet durch User
Ralf F. schrieb: > wenn einer der 5 Eingänge > ebenfalls LOW Wenn exakt einer Low ist? Oder auch wenn mehrere Low sind? Ralf F. schrieb: > Der Ausgang sollte nur dann LOW durchschalten Und wenn der Ausgang High ist, soll er dann Strom liefern können?
Und welche Anforderungen hast Du noch, die den Einsatz eines ganz normalen AND-Gatters verbieten? Dürfen wir uns also auf die Salamitaktik einstellen oder war es das schon?
Ralf F. schrieb: > ich suche nach einer Möglichkeit 5 Digitale Signale (abwechselnd) auf > einen Ausgang zu legen. > > Der Ausgang sollte nur dann LOW durchschalten wenn einer der 5 Eingänge > ebenfalls LOW ist. HIGH am Eingang soll ignoriert werden. Grundsätzlich handelt es hier um zwei Aufgaben: Erstens Detektion und zweites schalten. Dier erste Aufgabe löst man mit einer pas- senden Logikschaltung und die zweite mit einem Multiplexer.
Ralf F. schrieb: > ich suche nach einer Möglichkeit 5 Digitale Signale (abwechselnd) auf > einen Ausgang zu legen. > > Der Ausgang sollte nur dann LOW durchschalten wenn einer der 5 Eingänge > ebenfalls LOW ist. HIGH am Eingang soll ignoriert werden. Versuche mal das mit einer Skizze darzustellen. Andreas S. schrieb: > Dürfen wir uns also auf die Salamitaktik > einstellen oder war es das schon? Ist doch mittlerweile fast schon Standard.
Ralf F. schrieb: > Der Ausgang sollte nur dann LOW durchschalten wenn einer der 5 Eingänge > ebenfalls LOW ist. Nennt man UND Gatter (mit 5 Eingängen). Man kann auch 2 3er hintereinander schalten, oder 4 2er. 74HC08.
1 | E1 --| \ |
2 | | )--+ |
3 | E2 --| / +--| \ |
4 | | )--+ |
5 | E3 -----------| / +--| \ |
6 | | )--+ |
7 | E4 --------------------| / +--| \ |
8 | | )-- Ausgang |
9 | E5 -----------------------------| / |
> HIGH am Eingang soll ignoriert werden.
Unsinn. Grundsätze der Logik nicht verstanden, Schule geschwänzt ?
Mario M. schrieb: > Ralf F. schrieb: >> wenn einer der 5 Eingänge >> ebenfalls LOW > > Wenn exakt einer Low ist? Oder auch wenn mehrere Low sind? > > Ralf F. schrieb: >> Der Ausgang sollte nur dann LOW durchschalten > > Und wenn der Ausgang High ist, soll er dann Strom liefern können? Hi Mario, Es soll nur dann LOW durchgeschaltet werden wenn Einer der 5 Eingänge LOW ist !
Ralf F. schrieb: > Der Ausgang sollte nur dann LOW durchschalten wenn einer der 5 Eingänge > ebenfalls LOW ist. HIGH am Eingang soll ignoriert werden. .... > Signale (abwechselnd) auf > einen Ausgang zu legen. Ich sehe da 5 Dioden und einen Pull-up-Widerstand! PS: https://www.elektronik-kompendium.de/sites/dig/0710091.htm
:
Bearbeitet durch User
Ralf F. schrieb: > Es soll nur dann LOW durchgeschaltet werden wenn Einer der 5 Eingänge > LOW ist ! Und muß dann wirklich das Low von diesem Eingang "durchgeschaltet" werden, oder reicht es nicht vielleicht auch, wenn der Ausgang einfach sein eigenes LOW ausgibt? Und was ist damit: Mario M. schrieb: > Wenn exakt einer Low ist? Oder auch wenn mehrere Low sind?
Axel S. schrieb: > Und muß dann wirklich das Low von diesem Eingang "durchgeschaltet" > werden, oder reicht es nicht vielleicht auch, wenn der Ausgang einfach > sein eigenes LOW ausgibt? Hi Axel, Es würde reichen wenn der Ausgang sein eigenes LOW ausgibt ! > Mario M. schrieb: >> Wenn exakt einer Low ist? Oder auch wenn mehrere Low sind? Hatte ich schon beantwortet: Nur wenn einer LOW ist !
Wie sind denn die Logikpegel und die Anforderung an das Timing. Welches Problem möchtest Du lösen?
Ralf F. schrieb: > Es würde reichen wenn der Ausgang sein eigenes LOW ausgibt ! Dann beantworte doch endlich die Frage, warum ein einfaches AND-Gatter mit fünf Eingängen nicht ausreichen sollte.
Ralf F. schrieb: > Hi Mario, > > Es soll nur dann LOW durchgeschaltet werden wenn Einer der 5 Eingänge > LOW ist ! Betonung liegt auf EINER! Das wird eine aufwändigere Logikschaltung, siehe Anhang. Deswegen auch meine Frage nach den Pegeln und dem Timing. Vielleicht lässt sich das Problem mit einem Mikrocontroller oder einer trickreichen Analogschaltung erschlagen.
Beitrag #6226643 wurde vom Autor gelöscht.
Hi Andreas, im Anhang mal die derzeitige Schaltung (04.png): mit einem Teensy 3.2 wird eine Widerstandmessung im Loop durchgeführt die per USB Midi Noten ausgibt. Die Widerstände stellen dabei die Bünde auf einem Gitarren Griffbrett dar. Eine Saite legt dabei zusätzlich GND an den gewünschten Bund (zB Fret 1 bis 6)und ändert damit den Messwert / die Midi Note. Funktioniert soweit auch problemlos, - allerdings in dieser Form lediglich mit nur einer Saite... Um das gleiche Prinzip auch mit den übrigen Saiten verwenden zu können müssten diese, an der Stelle wo zZ GND fest angelegt ist, der Reihe nach (zeitversetzt) GND zB per DigitalOut ein und aus schalten... >Wie Harald W. schon schrieb ergeben sich damit 2 Aufgaben: >Erstens Detektion und zweites schalten. Hardwareseitig könnte das etwa so aussehen (Anhang Schaltung 06.png): Hoffe ich konnte das so einigermaßen veranschaulichen ?
Und noch einmal: WARUM ERFÜLLT DEINER MEINUNG NACH EIN EINFACHES AND-GATTER MIT FÜNF EINGÄNGEN NICHT DIE ANFORDERUNGEN?
Mario M. schrieb: > Ralf F. schrieb: >> Hi Mario, >> >> Es soll nur dann LOW durchgeschaltet werden wenn Einer der 5 Eingänge >> LOW ist ! > > Betonung liegt auf EINER! Das wird eine aufwändigere Logikschaltung, > siehe Anhang. Deswegen auch meine Frage nach den Pegeln und dem Timing. > Vielleicht lässt sich das Problem mit einem Mikrocontroller oder einer > trickreichen Analogschaltung erschlagen. Hi Mario, die Schaltung läuft bereits auf einem Mikrocontroller: PJRC Teensy 3.2 Timing: gute Frage... Dazu müsste ich wissen wie lange der Loop für die Messung mit dem Teensy 3.2 braucht (der lauft mit 72 MHz). Jede Messung wird im Loop, zwecks Mittelwert Bildung, 5 x durchgeführt. Irgendwo war mal zu lesen das zB ein UNO mit 16 MHz etwa 4 µs für 1 x analog.Read benötigt... dazu käme dann noch die Zeit fürs Mapping in Midi Werte. Pegel: LOW = 0 Volt, HIGH = 5 Volt
Mario M. schrieb: > Das wird eine aufwändigere Logikschaltung, siehe Anhang Nö.
1 | +5V aka HIGH |
2 | | | |
3 | E1--1k--+ 470R | |
4 | | | 1k |
5 | E2--1k--+ +--|+\ | |
6 | | | | >--+ |
7 | E3--1k--+----(--|-/ | |
8 | | 1k | |
9 | E4--1k--+----(--|+\ | |
10 | | | | >--+--out |
11 | E5--1k--+ +--|-/ |
12 | | | LM393 |
13 | 1k 3k6 |
14 | | | |
15 | GND GND |
Ralf F. schrieb: > Irgendwo war mal zu lesen das zB ein UNO mit 16 MHz etwa 4 µs für 1 x > analog.Read benötigt.. Na ja, ein Arduino analogRead braucht 100us. 4us schaffst du nur in Assembler.
Andreas S. schrieb: > Und noch einmal: > > WARUM ERFÜLLT DEINER MEINUNG NACH EIN EINFACHES AND-GATTER MIT FÜNF > EINGÄNGEN NICHT DIE ANFORDERUNGEN? Hi Andreas, hab mir das gerade mal hier angesehen: https://de.wikipedia.org/wiki/Und-Gatter Du hast recht... manchmal sieht man den Wald vor lauter Bäumen nicht. Eingang B fest auf GND (0 / LOW) verdrahtet, Eingang A wahlweise HIGH oder LOW ergibt am Ausgang immer 0 / LOW. Das ganze dann 5 mal und das Problem wäre schonmal erschlagen.
MaWin schrieb: > Ralf F. schrieb: >> Irgendwo war mal zu lesen das zB ein UNO mit 16 MHz etwa 4 µs für 1 x >> analog.Read benötigt.. > > Na ja, ein Arduino analogRead braucht 100us. 4us schaffst du nur in > Assembler. Hi MaWin, wenn ich mal von den 100µs pro Lesevorgang (bei 16 MHz) ausgehen würde, wären das etwa in meinem Fall 500µs + Mapping auf Midi Daten. Kritisch wird das erst wenn ich mich im milli Sekunden Bereich bewege...
Ralf F. schrieb: > Eingang B fest auf GND (0 / LOW) verdrahtet, Eingang A wahlweise HIGH > oder LOW ergibt am Ausgang immer 0 / LOW. > > Das ganze dann 5 mal und das Problem wäre schonmal erschlagen. Also wenn ich das jetzt richtig verstehe, reicht dann doch ein NAND (4068) mit nachgeschaltetem Transistor, der die gemeinsame Leitung nach Masse zieht? Kann nicht der Teensy das Steuersignal erzeugen und das NAND ersetzen?
MaWin schrieb: > Na ja, ein Arduino analogRead braucht 100us. Mag sein, weiß ich nicht. > 4us schaffst du nur in > Assembler. Das ist allerdings Unsinn. 64 Takte/Sample sollte auch in C noch einigermaßen machbar sein. Allerdings: Die ADC ist sowieso nicht schnell genug, um mit 250kHz Samplefrequenz arbeiten zu können, das würde nämlich mehr als 3MHz Wandlertakt für den ADC bedeuten. Der stellt aber so ca. knapp über 1,2Mhz seine Funktion vollständig ein. Und für eine einigermaßen brauchbare Auflösung muss man nochmals deutlich weiter runter gehen. 8 Bit Auflösung ist so ungefähr ab 40kHz Samplerate abwärts möglich (entspricht so ca. 0,5MHz Wandlertakt). Die Frage ist allerdings: Wie kann man überhaupt auf die unsinnige Idee kommen, die Sache analog einlesen zu wollen. Diese Anwendung schreit doch geradezu nach Schieberegistern. Damit ist dann erstens diese unsägliche analoge Eingabe eleminiert und gleichzeitig das Problem, um das es in diesem Thread geht... Und es ist dann auch mit einem Arduino UNO völlig problemlos mit der gewünschten Abtastrate einlesbar, da braucht man dann keinen Teensy für...
> Die Frage ist allerdings: Wie kann man überhaupt auf die unsinnige Idee > kommen, die Sache analog einlesen zu wollen. Diese Anwendung schreit > doch geradezu nach Schieberegistern. Damit ist dann erstens diese > unsägliche analoge Eingabe eleminiert und gleichzeitig das Problem, um > das es in diesem Thread geht... > > Und es ist dann auch mit einem Arduino UNO völlig problemlos mit der > gewünschten Abtastrate einlesbar, da braucht man dann keinen Teensy > für... Hi c-hater, wie gesagt: solange die Abtastrate den Millisekunden Bereich nicht übersteigt ist alles im grünen Bereich(es wird lediglich die Fingerposition detektiert und als MidiNote ausgegeben).... zu Deiner Frage: weil die Widerstände analog gemessen werden... ! Teensy nur weil der direkt USB Midi eingebaut hat... und sehr viel kleiner bei gleichzeitig wesentlich besserer Leistung ist (im Vergleich zum UNO). Es ging ja darum lediglich den Teil der Schaltung der in 04.png noch fest auf GND verkabelt ist, so zu verändern das GND wechselweise durch den Sketch immer auf die nächste Saite gelegt werden kann... Daher die überlegung / Fragen zu zusätzlicher Hardware. Wenn das auch komplett per Software mit Aduino oder Teensy umsetzbar wäre, bin ich der letzte der was dagegen hat. Dann aber bitte mit Beispiel. Die Schaltung mit dem Spannungsteiler ist nur gewählt worden weil dafür lediglich 2 Kabel + Widerstände im Griffbrett benötigt werden - sozusagen ein "minimal Inversiver " Eingriff am Instrument. Bei einer "normalen" Keyboard Scan Matrix müsste jedes Bundstäbchen einzeln verkabelt werden - Wären in meinem Fall dann 24 Strippen die da irgendwie untergebracht werden müssten...
:
Bearbeitet durch User
Ralf F. schrieb: > Es ging ja darum lediglich den Teil der Schaltung der in 04.png noch > fest auf GND verkabelt ist, so zu verändern das GND wechselweise durch > den Sketch immer auf die nächste Saite gelegt werden kann. Der Teensy braucht 6 Ausgänge, die immer auf L liegen und auf INPUT geschaltet sind. Dann wechselst Du nacheinander einzeln die Ausgänge auf OUTPUT und ziehst damit die jeweilige Saite auf GND. Jetzt kannst Du über die Spannung am Analogeingang die Griffposition einlesen.
Ralf F. schrieb: > Die Schaltung mit dem Spannungsteiler ist nur gewählt worden weil dafür > lediglich 2 Kabel + Widerstände im Griffbrett benötigt werden - > sozusagen ein "minimal Inversiver " Eingriff am Instrument. Nunja, mit Schieberegistern bräuchtest du zwar im Griffbrett mehr Adern, dafür aber keine Widerstände. In gewissen Abständen halt ein SR, aber die Dinger gibt's so winzig, die tragen kaum mehr auf als ein Widerstand. Und man könnte das Konzept problemlos so aufweiten, dass alle Bünde erfaßt werden können und nicht nur 6 davon... Und natürlich: Oben am Kopf kann ein weiteres SR implantiert werden, was das Multiplexing über die sechs Saiten erledigt (das war ja das Thema dieses Threads). Und all die SRs in der Gitarre können mit nur vier Strippen Richtung Host (also: Arduino oder whatever) versorgt werden, z.B. indem man I2C-SRs verwendet. Mit SPI-artiger Ansteuerung sind's zwar fünf Strippen, dafür werden aber die SRs billiger. > Wenn das auch komplett per Software mit Aduino oder Teensy umsetzbar > wäre, bin ich der letzte der was dagegen hat. > Dann aber bitte mit Beispiel. Nö, programmieren mußt du schon selber. Ich liefere maßgeschneiderten Code nur gegen maßgeschneiderte Bezahlung. Es gibt aber unzählige Beispiele für die Verwendung von SRs, auch für Arduino. Es sollte dir doch möglich sein, diese auf dein Problem anzupassen. Wenn nicht: geh' sterben...
Beitrag #6226984 wurde vom Autor gelöscht.
Mario M. schrieb: > Der Teensy braucht 6 Ausgänge, die immer auf L liegen und auf INPUT > geschaltet sind. Dann wechselst Du nacheinander einzeln die Ausgänge auf > OUTPUT und ziehst damit die jeweilige Saite auf GND. Jetzt kannst Du > über die Spannung am Analogeingang die Griffposition einlesen. Hi Mario M., In meinem Fall sinds nur 5 Saiten (E Bass) - also 5 Ausgänge (D0 bis D4 am Teensy)die dann abwechselnd mit LOW auf den A0 gelegt würden. also Schaltungsseitig (ohne Gatter / MUX) etwa so(08.png): Damit werden aber nur die tatsächlich gegriffenen Saiten ausgewertet. Jede Saite kann aber auch angeschlagen werden ohne das die tatsächlich gegriffen wird ("als leere Saite"). Wenn die GND Verbindung nicht da ist weil keine Saite gegriffen wird, kann nix gemessen werden... und eine identifizierung der einzelnen Saiten geht dann auch nicht... Mein erster Gedanke war die Blaue Verbindung ...(Leere Saite = Rmax = MidiNote). Damit lässt sich aber wiederum nicht zwischen den Saiten unterscheiden... Sieht fast so aus als wenns dafür noch nen weiteren "Sensor" pro Saite braucht ? Wie lässt sich das auswerten, - weitere Ideen ?
wenn du greifst, wird die saite ja auf 2 folgenden bunden aufliegen. sobald du 2 saiten greifst kann das 3 bunde elektrisch verbinden. auswertung ist dann prinzipiell unmoeglich
Flip schrieb: > auswertung ist dann prinzipiell unmoeglich Doch https://www-user.tu-chemnitz.de/~heha/Mikrocontroller/Tastenmatrix.htm (3.)
Flip schrieb: > wenn du greifst, wird die saite ja auf 2 folgenden bunden aufliegen. > sobald du 2 saiten greifst kann das 3 bunde elektrisch verbinden. > auswertung ist dann prinzipiell unmoeglich Hi Flip, ja der Einwand ist mir bekannt und sehr richtig. Es wird allerdings immer nur der oberste Bund ausgewertet und immer nur jeweils eine Saite nach der anderen im Loop aktiv geschaltet. Damit sollte dieses Problem, zumindest in der Theorie, nicht auftauchen. Das selbe gilt für mehrere gleichzeitig am selben Bund gegriffene Saiten. Die werden immer nur jeweils einzeln, eine nach der anderen im Loop aktiv geschaltet. Es geht mir im Moment erst mal darum ob und wie sich eine Fingerpositions-Erkennung nach diesem Prinzip für alle Saiten so überhaupt umsetzen lässt. Brauchts dafür zusätzliche Hardware, wenn ja welche ? Oder lässt sich das alles mit Arduino / Teensy Boardmitteln und der passenden Steuer Logik erreichen ? Freu mich auf Eure Tipps / Anregungen !
Ralf F. schrieb: > Es geht mir im Moment erst mal darum ob und wie sich eine > Fingerpositions-Erkennung nach diesem Prinzip für alle Saiten so > überhaupt umsetzen lässt. Nein. Über die Schwingung der Saite, also akustisch, wobei es wohl um eine e-Gitarre geht (sonst wären nicht alle Saiten elektrisch leitfähig) also elektromagnetisch, geht es aber schon. Bloss braucht man dazu erheblich mehr Gehirnschmalz.
c-hater schrieb: > Nunja, mit Schieberegistern bräuchtest du zwar im Griffbrett mehr Adern, > dafür aber keine Widerstände. In gewissen Abständen halt ein SR, aber > die Dinger gibt's so winzig, die tragen kaum mehr auf als ein > Widerstand. > Und man könnte das Konzept problemlos so aufweiten, dass alle Bünde > erfaßt werden können und nicht nur 6 davon... Hatte ich völlig vegessen zu erwähnen: In nem Testaufbau mit Breadboard funktioniert das mit einer Saite auch mit 25 Widerständen - sprich mit 25 Bünden, problemlos ! Du kannst mir dazu gerne mal nen Angebot per PM schicken - dann sehen wir weiter ! >Wenn nicht: geh' sterben... Zu sowas sag ich jetzt mal nix...
:
Bearbeitet durch User
Ralf F. schrieb: > Hatte ich völlig vegessen zu erwähnen: > In nem Testaufbau mit Breadboard funktioniert das mit einer Saite auch > mit 25 Widerständen - sprich mit 25 Bünden, problemlos ! Das wage ich dann doch ernsthaft zu bezweifeln... > Du kannst mir dazu gerne mal nen Angebot per PM schicken Nö, habe auch so genug Arbeit. Mach's einfach selber und lerne dabei. Ein paar SRs zu benutzen ist ja nun echt keine Raketentechnik.
c-hater schrieb: > Ralf F. schrieb: > >> Hatte ich völlig vegessen zu erwähnen: >> In nem Testaufbau mit Breadboard funktioniert das mit einer Saite auch >> mit 25 Widerständen - sprich mit 25 Bünden, problemlos ! > > Das wage ich dann doch ernsthaft zu bezweifeln... kannst Du meinetwegen bezweifeln - ich hab die funktionierende Schaltung hier... Funktioniert wie gesagt bei einer einzelnen Saite mit 25 Widerständen / Bünden.
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.