Hallo,
ich habe einen Optokoppler:
http://www.conrad.de/ce/de/product/140234/Fototransistor-Optokoppler-Avago-Technologies-HCPL-817-30DE-DIP-4-SMD-Ausfuehrung-DC-FotoTX-Koppler-1-Kanal/SHOP_AREA_14738?)
Zu Testzwecken habe ich auf der Eingansgseite ein Poti und einen
Widerstand (in Reihe). Wenn ich das Pott verstelle, so verstellt sich
auch die Kollektor-Emitterspannung dementsprechend - soweit kein
Problem.
Wenn ich aber nun den Optokoppler mit Kältespray besprühe, dann ändert
sich die Kollektor-Emitterspannung sehr stark.
Wie bekomme ich es hin, dass der Optokoppler temperaturstabil wird?
Brauche stabile Spannung im Bereich von 0°C bis 40°C.
D.h. wenn ich das Poti auf einer Position eingestellt lasse, dann soll
am Ausgang des Optokopplers immer annähernd die gleiche Spannung messbar
sein unabhängig von der Temperatur. Toleranzen von 5% wären OK.
Danke für jede Art von Hilfe!
keine Chance, dazo gibt es extra Optokopler mit zwei Dioden die dann
umständlich sowas ausgleichen können...obwol..da wird mit Temperatur
wohl auch nicht klappen..hmmm
Ein Optokoppler ist nie stabil bezueglich der Temperatur. Was man
allenfalls machen kann, ist eine gegenkopplung ueber alles.
Was soll's denn werden? Einen Iso-Amp selbstbau ?
Hallo,
>Seite 4 ist interessant!
Das ist (leider) nur die 'Operating Temperature', d.h. in welchem
Temperaturbereich der Optokoppler arbeitet, d.h. aber (leider) nicht
dass er in diesem Bereich temperaturstabil arbeitet!
>Was soll's denn werden?
Ich möchte auf der Eingangsseite ein R2R Widerstandsnetzwerk über einen
Mikrocontroller steuern um einen 'Widerstand' einzustellen.
Der Widerstand soll dann galvanisch getrennt auf der Ausgangsseite
'erscheinen' und ein Poti ersetzen.
Wie gesagt bräuchte das temperaturstabil, Toleranzen von ca. 5% bis
evtl. 10% wären OK.
@Mr.Burns (Gast)
>Ich möchte auf der Eingangsseite ein R2R Widerstandsnetzwerk über einen>Mikrocontroller steuern um einen 'Widerstand' einzustellen.>Der Widerstand soll dann galvanisch getrennt auf der Ausgangsseite>'erscheinen' und ein Poti ersetzen.
Tja, schöne Idee, doch funktioniert das so leider nicht. Erstens ist es
eher aufwändig, ein Poti elektronisch nachzubilden, das Ganze galvanisch
getrennt erst recht.
Meistens ist das Poti an einem Gerät aber nur an einem Spannungsteiler
dran und man muss nicht das Poti nachbilden sondern kann mit einer
Steuerspannung arbeiten. Sowas ist DEUTLICH einfacher. Man erzeugt ein
PWM Signal, das kann man leicht mittels Optokoppler übertragen.
Auf der Empfängerseite nimmt man dann einen einfachen CMOS-Puffer ala
74HC04 und danche einen RC-Tiefpass, welcher die PWM zu einer
Gleichspannung glättet. OPV hinten dran und fertig ist die galvanisch
getrennte Steuerspannung.
Hi,
in meine Fall kann ich aber nicht sagen was noch um dem Poti drumherum
ist. Habe schonmal mit einem R2R Widerstandsnetzwerk probiert und dann
damit in den Optokoppler rein. Funktioniert auch soweit, blos das das
ganze so temperaturabhängig ist kann ich nicht gebrauchen.
@ Mr.Burns (Gast)
>in meine Fall kann ich aber nicht sagen was noch um dem Poti drumherum>ist.
Wieso? Soll das für beliebige Geräte funktionieren?
Wenn es für ein spezielle gerät funktionieren soll, kann man ganz
einfach die Spannung über dem Poti messen und nachdenken.
>ist. Habe schonmal mit einem R2R Widerstandsnetzwerk probiert und dann>damit in den Optokoppler rein. Funktioniert auch soweit, blos das das>ganze so temperaturabhängig ist kann ich nicht gebrauchen.
Tja, dann musst du halt das Ganze anders machen. Daten per UART und
Optokoppler übertragen, auf der Empfängerseite sitzt ein kleiner uC, der
die Daten empfängt und entsprechend den R2R DAC schaltet. Voll digital
ohne Temperaturprobleme und rein ohmsch/passiv!
Hi,
ich kann halt nicht reingucken in das Gerät ist son China-Teil,
zugeklebt.
Mit geht es um die Temperatur - den Widerstand bekomme ich schon hin
über R2R.
Wie aber bekomme ich den Optokoppler unabhängiger von der Temperatur.
Ausgangsseitig ist das doch ein 'normaler' Transistor.
Da muss es doch was geben zur Temperaturstabilisierung.
* Nimm ein Digital-Poti und steuer die Datenleitungen über Optokoppler
an.
* Nimm nen richtigen DAC (dein R2R wird eh nicht besser als 8 Bit) auf
der anderen Seite und steuer die Datenleitungen an
* Nimm einen Digital-Isolator (ADUMxxx) und bilde auf der andern Seite
per PWM die Spannung nach.
* Wenn du wirklich analog frickeln willst, musst du den optischen
Empfänger in die Gegenkopplung nehmen. IL300 wäre ein Ansatz.
Wenn es unbedingt analog sein soll, könnte man evtl. 2 gleiche
Optokoppler nehmen, und die Differenz auswerten? ABER jeder übliche
Transistor, jeder C, jeder Widerstand hat einen TK, der auch weglaufen
kann...
Wenn eine recht niedrige PWM kein Problem ist, wäre ein OptoMOS noch
eine Idee.
Von Fairchild gibts einen JFET mit Optokoppler-Eingang.
Hm. LDR wäre der direkt Weg. Sind allerdings auch stark
temperaturabhängig.
Mr.Burns schrieb:> Mit geht es um die Temperatur - den Widerstand bekomme> ich schon hin über R2R. Wie aber bekomme ich den> Optokoppler unabhängiger von der Temperatur.
Bekommen Fragesätze ein Fragezeichen?
Fragesätze bekommen ein Fragezeichen!
Abgesehen davon: Warum - zum Teufel - willst Du erst das
R-2R-Netzwerk und dann einen Optokoppler verwenden?
Nimm doch erst 10 Optokoppler (oder wieviele auch immer)
und dann das R-2R-Netzwerk!
Hi,
danke schonmal.
>Warum - zum Teufel - willst Du erst das>R-2R-Netzwerk und dann einen Optokoppler verwenden?
Das R2R Netzwerk wollte ich nehmen um aus 4 Bit (oder evtl. 8 Bit) eines
Ports des Mikrocontrollers ein analoges Signal zu bekommen. Den
Optokoppler brauche ich, um galvanisch zu trennen.
Ich könnte den Optokoppler auch weglassen und den Ausgang des R2R
Netzwerks direkt da anlöten, wo das Poti sitzt. Ich weiß aber nicht ob
das nicht evtl. den Schaltkreis wo das Pott drinsitzt beschädigt.
Schließlich ist das R2R Netzwerk ja kein 100% gleichwertige Ersatz für
das Poti - Oder? Habe Bedenken dass evtl. dann vom R2R Ströme in die
Schaltung in der das Poti ist fließen und da evtl. was beschädigen.
Oder denke ich da falsch?
@ Mr.Burns (Gast)
>Das R2R Netzwerk wollte ich nehmen um aus 4 Bit (oder evtl. 8 Bit) eines>Ports des Mikrocontrollers ein analoges Signal zu bekommen.
Klar.
> Den>Optokoppler brauche ich, um galvanisch zu trennen.
Hier leigt das Problem. Ein digitales Signal kann man sehr leicht
galvanisch it einem Optokoppler trennen, ein analoges ist sehr
aufwändig! Erst Recht, wenn es ein Widerstandswert sein soll! Also
anders herum!
Digital trennen, dann Analogwert draus machen!
>Ich könnte den Optokoppler auch weglassen und den Ausgang des R2R>Netzwerks direkt da anlöten, wo das Poti sitzt. Ich weiß aber nicht ob>das nicht evtl. den Schaltkreis wo das Pott drinsitzt beschädigt.>Schließlich ist das R2R Netzwerk ja kein 100% gleichwertige Ersatz für>das Poti - Oder?
Dieses Problem löst deine galvanische Trennung auch nicht, sondern nur
einen möglichen Potentialversatz zwischen Steuerschaltung und Gerät.
> Habe Bedenken dass evtl. dann vom R2R Ströme in die>Schaltung in der das Poti ist fließen und da evtl. was beschädigen.
Wenn du den R2R richtig aufbaust, können da keine Ströme reinfließen.
D.h. aber, man muss etwas anders herum denken als beim normalen R2R DAC,
denn der gibt ja eine Spannung aus. Du willst aber den Widerstand
verändern. Im Zweifelsfall baust du einen binär gewichteten DAC mit
einfachen Open Drain Transistoren und passenden Widerständen, welche
gegen GND schalten, dann ist das idiotensicher.
Hallo Falk,
danke für die Antwort.
>Im Zweifelsfall baust du einen binär gewichteten DAC mit>einfachen Open Drain Transistoren und passenden Widerständen, welche>gegen GND schalten, dann ist das idiotensicher.
Hört sich ganz gut an.
Habe den R2R Baustein von Bourns:
http://www.bourns.com/pdfs/r2r.pdf
Ich habe einen Attiny2313 und würde den gerne dafür nutzen und mit PortB
einen 8Bit DAC aufbauen.
Ich weiß aber nicht, wie ich das in AtmelStudio 6 programmieren muss.
Ich weiß man muss mit PORTX UND DDRX arbeiten, aber ich weiß nicht, wie
man den PortB in den Tristate-Modus bekommt und dann eine 1 oder 0
ausgibt um den Pin einmal hochohmig und dann auf low zu schalten.
Wer kann mir da helfen?
Danke!
Hallo,
habe das mal so gemacht:
while(1)
{
// PortB Bit 0 auf Tristate (hochohmig) setzen
PORTB &= ~(1<<PB0); // B0 auf 0
DDRB &= ~(1<<DDB0); // B0 auf 0
_delay_ms(5000); // 5s warten
// PortB Bit 0 auf Ausgang setzen und auf low ziehen
DDRB |= (1<<DDB0); // B0 auf 1 (Richtung: Ausgang)
PORTB &= ~(1<<PB0); // B0 auf 0 (Auf Low ziehen)
_delay_ms(5000); // 5s warten
}
Am Pin0 des PortB wäre dann das MSB des R2R Netzwerks angeschlossen.
Wäre das so korrekt?