Hallo Leute Ich habe ein Merkwürdiges Problem mit meiner Optokopplerschaltung (Schaltbild im Anhang) Die Gelben Leiterbahnen sind auf der Oberseite verlötet die Orangen auf der Unterseite. Damit steuer ich eine Reihe von 16 Schieberegistern an, welche Wiederum LEDs ansteuern Die Schieberegisterschaltungen verteilen sich auf eine Strecke von ca 3 m Bauteile: Optokoppler HCPL-817-000E Vorwiderstände auf Diodenseite 200 Ohm Pulldownwiderstände auf Fototransistorseite 330 Ohm Betreibe ich den Optokoppler mit einer auf einem Steckbrett aufgesteckten Schieberegisterschaltung funktioniert alles prima. Die Optokoppler sind sogar schnell genug um damit PWM Signale mit 980Hz zu realisieren. Verwende ich den jedoch in Verbindung mit meinen Schieberegisterschaltungen für meine LEDs bekomme ich keine Saubere Steuerung mehr. Angenommen ich habe 1 LED an, welche jeweils durch 8 LEDs läuft und wieder von vorne anfängt(Mein Testsignal für Lauflichter) Leichtet bei dem ersten Register die led die an sein soll auch so wie es sein soll, jedoch leuchten/flackern die beiden nachfolgenden LEDs ebenfalls. Dieses Bild verschlimmert sich je "weiter" das Schiebe register vom Arduino enfernt ist. Zur Versorgung der LEDs zapfe ich die 5V Spannung eines alten Computernetzteils an. Optokoppler will ich nutzen damit wenn was schief geht es nicht meinen Arduino zerschießt. Wenn ich Testweise beide Massen verbinde und die Signale ohne Optokoppler also direkte Kabelverbindung weiterleite funzt wieder alles Perfekt so wie es soll. Ich habe schon Versucht am Ende der Schieberegisterreihe einen Abschlusswiderstand einzusetzen wie man es z.B. bei RS485 macht, hat allerdings nichts geändert... die 3 Steuerleitungen (Clock Latch und SerialData) haben zusammengenommen eine Länge von ca 3m. Das Serial Data Kabel geht immer aus dem QH in den SER Pin vom Nächsten Schieberegister(Reihenschaltung der SR) Latch und Clock werden einfach weitergeschleift(Parallelschaltung). Habt ihr vielleicht eine Idee woran es liegen kann, dass meine gelöteten Schieberegisterschaltungen nur in Verbindung mit meiner Optokopplerschaltung nicht funktionieren? ohne jedoch alles prima funzt? Daher gehe ich mal von aus dass die Schieberegisterschaltungen alle OK sin.
:
Bearbeitet durch User
Enrico S. schrieb: > Betreibe ich den Optokoppler mit einer auf einem Steckbrett > aufgesteckten Schieberegisterschaltung funktioniert alles prima. > […] Verwende ich den jedoch in Verbindung mit meinen > Schieberegisterschaltungen für meine LEDs bekomme ich keine Saubere > Steuerung mehr. […] Die Schieberegisterschaltungen verteilen sich auf > eine Strecke von ca 3 m Und dein Steckbrett ist auch 3 m lang? ;-) Offensichtlich sind die Ausgänge deines Arduinos stärker als die der Optokoppler. Hast du mal nachgemessen, welche Spannung die Ausgänge unter Last haben?
Erster Fehler: Der Optokoppler hat ein Übertragungsverhältnis von <=50%. Wenn der Arduino mit 5V betrieben wird, ist der Strom durch die Leuchtdioden ca. 16,5mA. Am Ausgang können dann also 8,25mA geschaltet werden. 5V / 330 Ohm sind aber 15,2mA. Zweiter Fehler: Durch den "hohen" Ausgangswiderstand von 330 Ohm und die Leitungskapazität + Kapazität der IC's werden die Signale stark verzerrt. Vor allem das Clock Signal muss daher wieder aufbereitet werden. Dritter Fehler: Vermutlich ist die Stromversorgung der Schieberegister nach den langen Leitungen auch nicht mehr gut. Hast du ein Oszilloskop? Damit könntest du den Effekt sofort sehen.
Enrico S. schrieb: > Pulldownwiderstände auf Fototransistorseite 330 Ohm Viel zu groß Enrico S. schrieb: > Dieses > Bild verschlimmert sich je "weiter" das Schiebe register vom Arduino > enfernt ist. Es gibt Übertragungsstandarts für größere Entfernungen. Es wundert dich doch nicht ernsthaft, dass das nicht weiter als 30cm funktioniert oder? Wenn man längere Distanzen braucht, dann taugen 3,3V oder 5V Logikpegel nicht mehr. Dafür gibt es dann differentielle Standarts (LVDS, RS-485, CAN, ...). Da musst du schon auf die richtige Übertragungsweise zurückgreifen. Enrico S. schrieb: > Zur Versorgung der LEDs zapfe ich die 5V Spannung eines > alten Computernetzteils an. Optokoppler will ich nutzen damit wenn was > schief geht es nicht meinen Arduino zerschießt. Ohne galvanische Trennung ist das sowieso wertlos. Dein PC Netzteil trennt nicht galvanisch. Würde was bringen wenn du einen Laptop im Batteriebetrieb nimmst oder einen Trenntrafo verwendest. Enrico S. schrieb: > Ich habe schon Versucht am Ende der Schieberegisterreihe einen > Abschlusswiderstand einzusetzen wie man es z.B. bei RS485 macht, hat > allerdings nichts geändert... Versuch dem Problem analytisch auf den Grund zu gehen. So ist das ein riesen Scheiß. Abschlusswiderstände nimmt man bei differentiellen Übertragungen zum bedämpfen von Reflexionen auf langen Leitungen. Völliger Unsinn bei dir. Sorry.
> Pulldownwiderstände auf Fototransistorseite 330 Ohm
Viel zu groß
Und ich schrieb "zu klein".
Wir haben beide Recht. Für den Optokoppler ist der Widerstand zu klein,
er kann nicht soviel Strom fließen lassen. Für die Last ist er viel zu
groß.
Man könnte hinter die Optokoppler jeweils einen Schmitt-Trigger mit
geringem Ausgangswiderstand setzen. oder Optokoppler mit integriertem
Schmitt-Trigger verwenden.
Aber bei der Leitungslänge (3m) habe ich auch bammel, das simple
Logikpegel nicht mehr ausreichen. Mit RS485 funktioniert es bestimmt
zuverlässig.
ok danke für eure antworten. ich bin anfänger was solche schaltungen angeht. daher seht es mir bitte nach. die galvanische trennung ist durch die optokopplerschaltung doch eigentlich gegeben da ja keine leitende verbindung von der einen auf die andere seite existiert, der Laptop, an dem der arduino hängt läuft auf akku und das alte pc netzteil hängt an einem 12/230V DC AC Konverter, welcher sich aus einem Bleiakku speist. Meiner Meinung nach ist dass Galvanisch getrennt. Was den rest der schaltung angeht kann ich denn hinter die optokoppler OPVs setzen(hab welche rumliegen)welche von der beschaltung und verstärkung her so groß sind das die zwischen 0 und 5V hin und herspringen, je nachdem was der optokoppler vorgibt. Wenn die 3 m viel zu lang sind warum funzt es denn wenn ich die 3 kabel und die masse direkt an den arduino verbinde? Kabellänge ist immernoch die selbe. Oszi hab ich leider noch keines... überlege aber für solche fälle mir z.b. einen dso nano zu holen
Enrico S. schrieb: > Wenn die 3 m viel zu lang sind warum funzt es denn wenn ich die 3 kabel > und die masse direkt an den arduino verbinde? Weil die Optokoppler den Strom nicht verstärken, sondern vermindern (CTR < 100 %). Die Arduino-Ausgänge allein sind offensichtlich stark genug, dass die Signale nach 3 m immer noch in der Toleranz der Eingänge der Schieberegister liegen. > Was den rest der schaltung angeht kann ich denn hinter die optokoppler > OPVs setzen(hab welche rumliegen)welche von der beschaltung und > verstärkung her so groß sind das die zwischen 0 und 5V hin und > herspringen, je nachdem was der optokoppler vorgibt. Das wäre möglich. Allerdings sind OPVs eigentlich für analoge Signale gedacht; für digitale Signale wie hier würde ein Transistor völlig ausreichen. Zusammen mit dem Transistor des OKs nennt sich das dann http://de.wikipedia.org/wiki/Darlington-Schaltung ; es gibt auch Optokoppler, die so etwas schon eingebaut haben, z.B. 6N138. Aber auch Transistoren verstärken mehr oder weniger linear und sind in der Darlington-Schaltung sehr langsam; noch besser wäre ein Optokoppler wie z.B. der H11L1, der einen Schmitt-Trigger mit Logik-Ausgang hat.
:
Bearbeitet durch User
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.