Forum: Mikrocontroller und Digitale Elektronik Merkwürdiges Verhalten 74HC4066


von Remo M. (remoxus)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe ein merkwürdiges Verhalten des Analogschalter-IC
74HC4066 beobachtet. Aber zuerst die Schaltungsbeschreibung:

Weil ich beim PC-Spielen keine Lust habe die Richtungstasten W, A, S, 
und D zu benutzen sondern lieber das Männchen mit einen Knüppel steuer, 
habe ich folgende Schaltung gebaut:

Ein Daumen-Joystick(Siehe Bild 1) ist an zwei Analog-Eingängen der 
Picaxe angeschlossen. Drücke ich den Knüppel nach vorne leuchtet
LED-Eins(Von Links gesehen). Lasse ich den Stick zurück in Nullstellung 
gleiten erlöscht LED-Eins wieder.

Dieses richtige Verhalten des 74HC4066 zeigen auch:
Stick nach hinten → LED_Zwei leuchtet
Stick nach links   →  LED-Drei  leuchtet
Stick nach rechts →  LED-Vier  leuchtet

Die Schaltung funktioniert somit genau wie ich will.

ABER:
Überbrücke ich nun wie in Bild zwei zu Sehen die vier Tasten W, A, S, D
mit dem 74HC4066 zeigen die Transmissionsgates ein unerwünschtes 
Verhalten.

Drücke ich den Knüppel nach vorne wird Taste-W überbrückt bzw. gedrückt. 
Das Männchen im PC-Spiel geht nach Vorne.

Lasse ich den Knüppel los bzw. zur Nullstellung gleiten dann bleibt die 
Taste-W „gedrückt“, Das Männchen geht weiter obwohl es jetzt stehen 
bleiben soll. Als ob das Transmissionsgate wie bei einem Relais kleben 
bleiben würde. Woran liegt das ?

von hinz (Gast)


Lesenswert?

Du musst GND der Tastatur mit GND deiner Schaltung verbinden.

von Teo D. (teoderix)


Lesenswert?

hinz schrieb:
> Du musst GND der Tastatur mit GND deiner Schaltung verbinden.

Hab ich auch erst gedacht... Nur wird der IC sicher über USB versorgt.
Evtl. schlecht angebunden (dünne Kabel...) und kein Abblockkondensator 
verbaut!?

von Wolfgang (Gast)


Lesenswert?

Warum überhaupt die ganze Bastelei mit dem Tastatureingriff.

Wäre es nicht viel einfacher, einen Arduino Pro Micro o.ä. als 
HMI-Device mit Tastaturfunktion zu programmieren und den per USB mit dem 
Rechner zu verbinden?

von Jens G. (jensig)


Lesenswert?

Teo D. (teoderix)

>hinz schrieb:
>> Du musst GND der Tastatur mit GND deiner Schaltung verbinden.

>Hab ich auch erst gedacht... Nur wird der IC sicher über USB versorgt.

Davon ist aber bisher nichts zu sehen.

von Remo M. (remoxus)


Angehängte Dateien:

Lesenswert?

Ich habe zur Verständlichkeit noch eine weitere Zeichnung hinzugefügt.
Bild Links zeigt die Schaltung die nach Wunsch funktioniert.
Wie man erkennen kann verfügt der  Steuerkreis mit Joystick(Nicht mit 
eingezeichnet), Picaxe und Transmissionsgate(74HC4066) über eine Eigene 
Spannungsversorgung und auch die Masse ist vom Lastkreis(Widerstand und 
LED getrennt.

Bei der rechten Schaltung ist der Steuerkreis identisch aber statt 
Widerstand und LED habe ich die Kontakte der W-Taste einer Tastatur 
angeschlossen. Die Tastatur wird ja über den USB-Port unabhängig vom 
Steuerkreis mit 5V und eigener Masse versorgt.

Es macht doch somit gar keinen Sinn Die Massen von Steuer- und Lastkreis 
miteinander zu Verbinden. Das Transmissionsgate soll doch quasi wie ein 
Relais funktionieren wo eine galvanische Trennung stattfindet. Ich 
verstehe das nicht.

von Achim S. (Gast)


Lesenswert?

Remo M. schrieb:
> Das Transmissionsgate soll doch quasi wie ein Relais funktionieren wo
> eine galvanische Trennung stattfindet.

da hast du eine falsche Vorstellung von Transmission Gate - da gibt es 
keine galvanische Trennung wie es beim relais der Fall wäre.

von mikoduc (Gast)


Lesenswert?

Remo M. schrieb:
> Ich habe zur Verständlichkeit noch eine weitere Zeichnung hinzugefügt.
> Bild Links zeigt die Schaltung die nach Wunsch funktioniert.
> Wie man erkennen kann verfügt der  Steuerkreis mit Joystick(Nicht mit
> eingezeichnet), Picaxe und Transmissionsgate(74HC4066) über eine Eigene
> Spannungsversorgung und auch die Masse ist vom Lastkreis(Widerstand und
> LED getrennt.
hier ist dein Fehlerdenken! Ob von USB oder fremd versorgt, spielt 
keinerlei Rolle! Weil: Um Signale zu übertragen, benötigt man immer ein 
Bezugspotiential! Ausserdem: Die Tastaturmatrix wird immer im 
Multiplexbetrieb, meist über Widerstandsketten der einzelnen Tasten 
betrieben. Das erledigt bei einer USB-Tastatur der USB-Controllerchip in 
der Tastatur!! Und wenn dann bestimmte Widerstandswerte für bestimmte 
Tasten zugeordnet sind, wertet den zugehörigen Befehl dann der Chip aus, 
wandelt das Signal ins USB-Digiformat um und der PC wertet das wiederum 
aus.



> Bei der rechten Schaltung ist der Steuerkreis identisch aber statt
> Widerstand und LED habe ich die Kontakte der W-Taste einer Tastatur
> angeschlossen. Die Tastatur wird ja über den USB-Port unabhängig vom
> Steuerkreis mit 5V und eigener Masse versorgt.
Schon beantwortet: Das spielt doch garkeine Rolle!
> Es macht doch somit gar keinen Sinn Die Massen von Steuer- und Lastkreis
> miteinander zu Verbinden. Das Transmissionsgate soll doch quasi wie ein
> Relais funktionieren wo eine galvanische Trennung stattfindet. Ich
> verstehe das nicht.
Naklar macht das Sinn, wurde schon beantwortet! Aber um ein Startsignal 
galvanisch zu trennen, brauchste dann wenigstens pro Tastenhub einen 
Optokoppler und ein,zwei Transistoren, dann kannste statt den LEDs (oder 
auch parrallel dazu jede IR-Diode am Optokoppler) ansteuern wie im 
einfachsten ersten Fall.

Beitrag #6369939 wurde von einem Moderator gelöscht.
von Christian S. (roehrenvorheizer)


Lesenswert?

>Das Transmissionsgate soll doch quasi wie ein Relais funktionieren wo eine 
>galvanische Trennung stattfindet.

Nein, da gehst Du von einer falschen Vorstellung aus. Innen sind FETs 
verbaut, also eine Transistorschaltung, die festen Massebezug braucht.


mfG

von nicht"Gast" (Gast)


Lesenswert?

Wolfgang schrieb:
> Warum überhaupt die ganze Bastelei mit dem Tastatureingriff.
>
> Wäre es nicht viel einfacher, einen Arduino Pro Micro o.ä. als
> HMI-Device mit Tastaturfunktion zu programmieren und den per USB mit dem
> Rechner zu verbinden?

Das war auch mein erster Gedanke beim Lesen des Threads. Dank Arduino 
wäre das sogar leichter als die Bastelei des TO.

von Peter D. (peda)


Lesenswert?


von Jens G. (jensig)


Lesenswert?

Remo M. (remoxus)

>Es macht doch somit gar keinen Sinn Die Massen von Steuer- und Lastkreis
>miteinander zu Verbinden. Das Transmissionsgate soll doch quasi wie ein
>Relais funktionieren wo eine galvanische Trennung stattfindet. Ich
>verstehe das nicht.

Wo steht das, daß es wie ein Relais arbeitet?
Im DB solcher Analogswitche steht doch recht klar drin, daß Ein- und 
Ausgang einen bestimmten Bezug zueinander haben müssen.
Eigentlich kannste sogar froh sein, daß es Dir nicht die Tastatur 
zerschossen hat, denn ein fremdgespeistes Gerat, das keinen Massebezug 
zur Tastatur hat, kann durch die internen Ableitströme des 
Fremdnetzteils durchaus recht hohe Wechselspannung haben, und die auf 
deinen Tastaturkontroller zu leiten ist dann sicherlich nicht gesund für 
ihn.

Ansonsten wäre es eigentlich das einfachste, statt eines 4066 simple 
Optokoppler mit Fototransistor zu benutzen. Man muß die halt nur richtig 
gepolt anschließen, damit diese im ausgeschalteten Zustand die 
Matrixsteuerung der Tastatur nicht stören.

Oder machs so, wie peda es vorschlug.

von Remo M. (remoxus)


Angehängte Dateien:

Lesenswert?

Erst mal möchte ich mich bedanken das ihr euch meines „Problems“ 
angenommen habt. Ich habe mir den Aufbau des Transmissionsgates mal 
angesehen und glaube jetzt verstanden zu Haben warum der 74HC4066 eine 
Bezugsmasse auf Arbeitskreisseite benötigt.

Zu Wolfgang:
Ich gebe ja zu meine Konstruktion mit der USB-Tastatur ist keine 
elegante und gute Lösung. Ich habe einen Arduino-UNO und wollte es 
vorher damit umsetzen.Aber mir schmeckt diese Programmiersprache die an 
C angelehnt ist überhaupt nicht. C hat eine furchtbare Syntax.
Diese doofen geschweiften Klammern bereiten mir Kopfweh. Und bei 
mehreren IF mit ELSE blickte ich nicht mehr durch zu welchem IF die ELSE 
gehört. Ich habe mir zwar wegen des Dangling-Else-Problems einige Tipps 
angesehen aber die halfen mir nicht. Bin wohl zu doof dafür. Um damit 
dann auch noch ein kompliziertes  Programm wie HMI-Device zu 
Programmieren fehlt mir das nötige Wissen und Können.
Der Arduino verstaubt nun in der Schublade und ich griff zur Picaxe die 
für einen Gelegenheitsbastler wie mich viel leichter zu Begreifen ist.

Das mit dem Optokoppler ist ein guter Tipp. Habe deswegen noch mal ein 
Bild eingestellt um zu wissen ob ich diesen richtig angeschlossen habe.

Aber vielleicht wäre ja ein Relais doch besser geeignet. Könnt ihr mir 
sagen ob ich eher ein ReedRelais oder doch lieber ein Signal-Relais 
nehmen soll ? Was sind Die jeweiligen vor und Nachteile ? Empfehlungen ?

von hinz (Gast)


Lesenswert?

Remo M. schrieb:
> Das mit dem Optokoppler ist ein guter Tipp. Habe deswegen noch mal ein
> Bild eingestellt um zu wissen ob ich diesen richtig angeschlossen habe.

Ja.


> Aber vielleicht wäre ja ein Relais doch besser geeignet. Könnt ihr mir
> sagen ob ich eher ein ReedRelais oder doch lieber ein Signal-Relais
> nehmen soll ? Was sind Die jeweiligen vor und Nachteile ?

Reedrelais sind schneller.


> Empfehlungen ?

Nimm Optokoppler.

von Achim S. (Gast)


Lesenswert?

Remo M. schrieb:
> Ich gebe ja zu meine Konstruktion mit der USB-Tastatur ist keine
> elegante und gute Lösung. Ich habe einen Arduino-UNO und wollte es
> vorher damit umsetzen.

Der eine programmiert lieber, der andere schraubt lieber. Beides ist als 
Lösung ok.

Remo M. schrieb:
> Ich habe mir den Aufbau des Transmissionsgates mal
> angesehen und glaube jetzt verstanden zu Haben warum der 74HC4066 eine
> Bezugsmasse auf Arbeitskreisseite benötigt.

Gut

Remo M. schrieb:
> Könnt ihr mir
> sagen ob ich eher ein ReedRelais oder doch lieber ein Signal-Relais
> nehmen soll ?

Warum versuchst du nicht, den bestehenden Aufbau zum Laufen zu kriegen. 
Wenn das Netzteil deiner Transmission-Gates potentialfrei ist (und 
danach sieht es bisher aus) musst du einfach nur noch die Massen beider 
Kreise verbinden (wie es schon in der ersten Antwort in diesem Thread 
empfohlen wurde).

von Frank L. (hermastersvoice)


Lesenswert?

ich werf mal PhotoMOS als Stichwort in den Raum

von Rücksichtsloser (Gast)


Lesenswert?

Frank L. schrieb:
> ich werf mal PhotoMOS als Stichwort in den Raum

Aua! Mensch -ich lauf hier barfuß rum!

von Jens G. (jensig)


Lesenswert?

Frank L. schrieb:
> ich werf mal PhotoMOS als Stichwort in den Raum

Ja, aber räum dann wieder auf ...

von Frank L. (hermastersvoice)


Lesenswert?

das bleibt da liegen! Es sei denn es kommt Einer mit ner Sportsocke aus 
nem anderen Thread vorbei und schmiert es mit Lötfett ein...

von paul (Gast)


Lesenswert?

Das ist ja hier genau das Problem, das ich auch habe...

Ich habe meine 74HC4066 hinter einem I/O Expander PCF8574 an einem 
NodeMCU. Wenn ich meine Outputs einmal HIGH/LOW schalte ist alles gut, 
aber nach einem Stromausfall ist erstmal fröhliche undefiniert-Party. 
Ich habe in meiner ESP-Firmware schon eingestellt, dass alle Ausgänge 
auf LOW stehen sollen, aber scheinbar sind sie einfach garnix und die 
74HC4066 wissen nicht was sie tun sollen. :-(

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

paul schrieb:
> Das ist ja hier genau das Problem, das ich auch habe...
Und wie sieht deine problematische Schaltung aus? Hast du da einen 
Plan davon, wo man sieht, was da wie versorgt und wo geschaltet wird?

von paul (Gast)


Angehängte Dateien:

Lesenswert?

Klar! :-)
Ich versuch sie mal hier hochzuladen, hoffe man erkennt das 
einigermaßen.

von Harald W. (wilhelms)


Lesenswert?

Remo M. schrieb:

> Das Transmissionsgate soll doch quasi wie ein
> Relais funktionieren wo eine galvanische Trennung stattfindet.

Das tut es aber nicht.

> Ich verstehe das nicht.

Das ist Dein Problem.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

paul schrieb:
> Ich versuch sie mal hier hochzuladen
Ja, von wegen "genau das gleiche Problem"...
Diese Schaltung hat mit dem ursprünglichen Threadthema nur so viel 
gemein, als dass da beidesmal ein 4066 drin ist.

Was soll diese Schaltung überhaupt machen? Und warum haben die LEDs 
keine Vorwiderstände?

von Harald W. (wilhelms)


Lesenswert?

Lothar M. schrieb:

> Und warum haben die LEDs keine Vorwiderstände?

Als Vorwiderstand wird der Widerstand des Analogschalters verwendet. :-)

von paul (Gast)


Lesenswert?

Hm. Das habe ich befürchtet. Ich habe mich hier inspirieren lassen:
https://forum.iobroker.net/assets/uploads/files/1569919235232-schaltplan-velux-fb.pdf

Das war wohl nix.

D.h. ich müsste eher 2x einen 4-fach Optokoppler nutzen, der 
standardmäßig trennt, oder? Bin ich dann beim LTV844 richtig? Läuft der 
mit 5V?

Meine Fernbedienung die ich steuern möchte läuft mit 2x 1,5V.

Vielen Dank für Deine schnelle Reaktion!!

von paul (Gast)


Lesenswert?

Die Widerstände habe ich mir gespart einzuzeichnen. Aber ja, blöd, wenn 
das dann jemand nachbaut. XD

Ich möchte eine Schaltung haben, die 8 Relais schaltet, nur dass Relais 
völlig überdimensioniert sind, weil ich keine 230V schalten will, 
sondern nur ne Fernbedienung, die mit 3V arbeitet.

Ich weiß, da gibts andere Möglichkeiten, ich möchte es gerne so bauen.

von my2ct (Gast)


Lesenswert?

paul schrieb:
> Ich versuch sie mal hier hochzuladen, hoffe man erkennt das
> einigermaßen.

Hast du in deinem eCAD keine vernünftigen Schaltzeichen für 
Analogschalter?
Wer soll sich denn durch den Drahtverhau durchgucken?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

paul schrieb:
> Ich habe meine 74HC4066 hinter einem I/O Expander PCF8574 an einem
> NodeMCU. Wenn ich meine Outputs einmal HIGH/LOW schalte ist alles gut
> aber nach einem Stromausfall ist erstmal fröhliche undefiniert-Party.
Also funktioniert die Schaltung immer dann, wenn du den IO-Expander mal 
angesteuert hast?
Dann wäre es prinzipiell sinnvoll, im Datenblatt des Portexpanders 
nachzulesen, was der bei/nach einem Powerup macht.

BTW: die Masse der Fernbedienung hast du aber schon an die Masse deiner 
Schaltung angeschlossen?

> D.h. ich müsste eher 2x einen 4-fach Optokoppler nutzen, der
> standardmäßig trennt, oder?
Vergiss das. Du hast eine völlig falsche Vorstellung von Optokopplern.

> Ich möchte eine Schaltung haben
Warum willst du überhaupt die Fernbedienung schalten? Ich würde mit 
einem uC die 8 Kommandos einfach als Pulsfolge über eine IR LED 
senden...

von c-hater (Gast)


Lesenswert?

Lothar M. schrieb:

> paul schrieb:
>> Ich habe meine 74HC4066 hinter einem I/O Expander PCF8574 an einem
>> NodeMCU. Wenn ich meine Outputs einmal HIGH/LOW schalte ist alles gut
>> aber nach einem Stromausfall ist erstmal fröhliche undefiniert-Party.

> Dann wäre es prinzipiell sinnvoll, im Datenblatt des Portexpanders
> nachzulesen, was der bei/nach einem Powerup macht.

Das DB des PCF8574 sagt, dass nach PowerON alle seine IO-Pins als 
Ausgänge mit High-Pegel initialisiert sind. Es sollten also erstmal 
einfach alle LEDs leuchten.

Allerdings wackeln diese ESP8266-Boards beim PowerUp typisch an einigen 
Pins. Mit hinreichend "bad luck" könnte sich daraus eine ungewollte 
(aber gültige) I²C-Steuersequenz ergeben. Ob das das Problem ist, kann 
man leicht feststellen, in dem man einfach mal SCL und SDA am ESP8266 
abtrennt und dann einen Power-Cycle durchläuft. Leuchten dann alle LEDs, 
war's das.

Ansonsten dürften Schwächen der Versorgung das Problem sein und/oder die 
LED-Vorwiderstände fehlen wirklich...

von paul (Gast)


Lesenswert?

Ich möchte keine IR-Fernbedienung ersetzen. Ich möchte viele Schalter 
haben, die ich mit meinem NodeMCU auf Durchgang schalten kann. Die 
NodeMCU Schaltung (5V) wäre sehr gerne auch getrennt vom Ausgang, dann 
wäre es egal ob ich ein 3 oder 12V Einheit damit schalte.

Genau, wenn ich den PCF8574 raus nehme und jeden Eingang des 74HC4066 
mit Masse belege sind beim Einschalten wunderbar alle LEDs OFF. Ziehe 
ich einen Eingang auf +5V schaltet die LED zuverlässig. Ziehe ich den 
Draht vom Testboard komplett raus, sodass der Eingang nicht 
angeschlossen ist geht die LED irgendwann wieder an.

Mit dem PCF8574 als Signalgeber funktioniert es zuverlässig sobald ich 
einen Ausgang einmal HIGH/LOW schalte. Danach gibt er überall 
zuverlässig LOW aus. Und alle LEDs gehen und bleiben aus.

Das Netzteil ist ein 1,5 Ah Labornetzteil.

Was spricht gegen Halbleiterrelais? Mit einem Relais-Board hat mein 
Aufbau perfekt funktioniert. Ich wollte nur die Relais duch die 74HC4066 
ersetzen weil die Relais überdimensioniert sind. ¯\_(ツ)_/¯

Ich würde gern einfach ein Bauteil nitzen, dass nur auf durchgang 
schaltet wenn ordentliche satte 5V anliegen.

Vielen Dank für Eure Geduld.

von c-hater (Gast)


Lesenswert?

paul schrieb:

> Genau, wenn ich den PCF8574 raus nehme und jeden Eingang des 74HC4066
> mit Masse belege sind beim Einschalten wunderbar alle LEDs OFF. Ziehe
> ich einen Eingang auf +5V schaltet die LED zuverlässig.

Naja, wenn du die LEDs statt nach Masse einfach nach +5V schaltest, dann 
leuchten die Dinger, wenn am Eingang der 4066 Low ist. Sie leuchten also 
nicht, wenn der Eingang High ist. Der initiale Status eines PCF8574 ist 
High an allen IOs.

Damit ist nach einem PowerOn erstmal der Zustand erreicht, dass alles 
aus ist. Noch ohne jeden Beitrag des ESP8266.

von paul (Gast)


Lesenswert?

Ich brauche aber Schalter, die zwischen Durchgang und kein Durchgang 
schalten. Die LEDs waren nur als optische Anzeige...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

paul schrieb:
> Mit einem Relais-Board hat mein Aufbau perfekt funktioniert. Ich wollte
> nur die Relais duch die 74HC4066 ersetzen
Geht halt deswegen nicht, weil ein Relais sich grundsätzlich völlig 
anders verhält als ein Halbleiterschalter. Und das herausragende Merkmal 
dabei ist die Potentialtrnnung.

> weil die Relais überdimensioniert sind
Was ist da überdimensioniert?
Welche Ströme musst du schalten?

paul schrieb:
> Ich möchte viele Schalter haben, die ich mit meinem NodeMCU auf
> Durchgang schalten kann.
Wenn du es nicht genauer spezifizieren kannst, dann musst du Relais 
nehmen.

paul schrieb:
> ein 1,5 Ah Labornetzteil.
Aha, kann das einen Strom von 1,5A für 1h abgeben und schaltet dann ab?

von paul (Gast)


Lesenswert?

boah, jetzt wirds aber spitzfindig hier. meine güte, ja es sind 1,5A.
Was soll ich denn noch spezifizieren. Ich möchte einfach schalter haben 
über Ströme von 3 - 12V fliesen, die nix der Steuerschaltung zu tun 
haben sollen. Entschuldigung, dass ich mich nicht perfekt auskenne. Im 
php Forum wo ich supporte kennen sich einige auch nicht perfekt mit der 
Sprache aus und stellen trotzdem fragen. :-(

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

paul schrieb:
> ja es sind 1,5A.
Vergiss es.
Hast du wenigstens mal ins Datenblatt deiner Halbleiterlösungen (4066 
und Optokoppler) geschaut? Was hast du darin nicht verstanden?

paul schrieb:
> Im php Forum wo ich supporte kennen sich einige auch nicht perfekt mit
> der Sprache aus und stellen trotzdem fragen. :-(
Und, geben da die Fragenden auch so wenig und zudem irreführende 
Informationen zu ihrem Problem? Und rücken die mit diesen Infos auch nur 
nach ausgiebigem Verhör Stückchen für Stückchen heraus?

: Bearbeitet durch Moderator
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
Noch kein Account? Hier anmelden.