Forum: Analoge Elektronik und Schaltungstechnik Ausschaltverzögerung: Transistor oder OK


von Jürgen S. (jojolino)


Lesenswert?

Hallo zusammen!

Zunächst, zum Verständnis worum es geht, eine kurze Erklärung:

Ich habe inzwischen für meinen Arduino einen Sketch erstellt (mit etwas 
Starthilfe hier aus dem Forum), mit dem ich in einem fototechnischen 
Aufbau zeitgesteuert und unabhängig voneinander Kamera(verschluss) 
öffnen und schließen und den Blitz zünden kann.
Dabei wird der Blitz über einen MOC3020 und die Kamera 
(Fernauslöseranschluss) über einen NPN Transistor BC537 gesteuert.

Da ich den Blitz somit unabhängig der normalerweise vorhandenen 
Kamerasteuerung ansteuern kann habe ich eine Versuchsreihe gestartet.

Ziel ist es herauszufinden wie lange der Verschluss ab dem Zeitpunkt des 
Wegfalls des HIGH Signals benötigt sich zu schließen.
D.h. Ausgangszustand ist ein offener Kameraverschluss (Kamera im Modus 
bulb).

Durch triggern (in meinem Fall mit Hilfe einer Lichtschranke) werden 
zeitgleich (also fast, aber Nano- oder Microsekunden sind hierbei 
zunächst irrelevant) der Verschluss der Kamera geschlossen und der Blitz 
gezündet.

Nun wollte ich den Punkt finden an dem der Verschluss anfängt sich zu 
schließen.
Bedeutet, wenn ich ein schwarzes oder nur teilweise belichtetes Bild 
bekomme, dann ist der Verschluss zu oder in Bewegung.

Im Sketch schließe ich nun den Kameraverschluss (Ausgang wird LOW) und 
zünde den Blitz (Ausgang wird HIGH) zunächst zeitgleich.
Über ein ganz einfaches delay() verzögere ich nun das Zünden des Blitzes 
in Bezug auf das Schließen des Kameraverschlusses.
Ich weiß, dass delay() nur Millisekundenschritte zulässt und ich weiß 
auch, dass der Arduino in der Zeit blockiert ist aber bei dieser ersten 
Anwendung ist das unerheblich.

Was mich nun stark verwundert sind die Ergebnisse. Ich bekomme keinen 
festen Zeitpunkt zu dem ich sagen könnte hier fängt der Verschluss an 
sich zu schließen. Das schwarze Bild ist manchmal schon nach 190ms, 
mitunter erst nach 220ms zu erkennen.

Nun zu meiner Frage:

Um auszuschließen, dass dies mit meiner Ansteuerung zu tun hat, wollte 
ich fragen ob es sein kann, dass der Transistor derart unterschiedlich 
lange benötigen könnte um zu schalten? Er ist ganz klassisch, ohne 
"Beschleunigungstricks" angeschlossen, d.h. Basis=Signal des Arduino 
(über Widerstand), Emitter=GND, Collector=Kameraanschluss, der zweite 
Kameraaschluss geht wieder an Masse.

Also zum Einen kann es sein, dass die Schaltzeiten so stark variieren 
und zweites, ist ein Optokoppler z.B. schneller und evtl. auch 
kontinuierlicher?
Könnte ich das Schaltverhalten des Transistors durch Dioden 
"stabilisieren"?

Bin leider völliger Laie und finde im Netz nicht so wirklich eine 
Antwort auf meine Fragen. Habe leider auch kein Messequipment, mit dem 
ich das messen könnte.

Jürgen

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


Lesenswert?

Herzlichen Glückwunsch: du hast Interrupts entdeckt, die das delay() 
unterbrechen. Was du jetzt beobachtest, nennt sich "Jitter": obwohl du 
meinst, immer die selbe Zeit zu brauchen, dauert die Ausführung des 
delay() doch unterschiedlich lang.

Workaround für harte Kerle: du musst die Interrupts während der 
Wartezeit sperren.

Jürgen S. schrieb:
> Also zum Einen kann es sein, dass die Schaltzeiten so stark variieren
> und zweites, ist ein Optokoppler z.B. schneller und evtl. auch
> kontinuierlicher?
Du solltest zuallererst mal z.B. mit einem Oszi oder einem Logikanalyzer 
die Zeiten direkt am µC Pin messen. Besser als die Abweichung dort 
wird es auch mit zusätzlicher Beschlatung nicht.

: Bearbeitet durch Moderator
von HildeK (Gast)


Lesenswert?

Jürgen S. schrieb:
> Um auszuschließen, dass dies mit meiner Ansteuerung zu tun hat, wollte
> ich fragen ob es sein kann, dass der Transistor derart unterschiedlich
> lange benötigen könnte um zu schalten?

Der Transistor selber wird keine unterschiedliche Zeiten mit dieser 
Varianz im ms-Bereich liefern können. Beim Optokoppler hättest du ev. 
sogar noch mehr Unsicherheit drin, aber die liegt bei beiden eher im ns- 
bis untersten µs-Bereich.
Es liegt also an der Ansteuerung (s. Erklärung von Lothar) oder auch an 
der mechanischen Unsicherheit des Schlitzverschlusses selber.
Ich bin jetzt davon ausgegangen, dass es eine analoge Kamera mit 
mechanischem Schlitzverschluss ist, bei anderen hätte ich keine 
Erklärung für deine Versuche.

von jojolino (Gast)


Lesenswert?

OK, danke!
Ein sehr hilfsbereiter User aus einem anderen Forum hat mir bereits die 
"Nachtwächterschaltung" als Alternative zum Delay in meinen Code 
gepackt, damit habe ich aber noch nicht getestet, das werde ich nun tun.

Danke nochmals für die Erklärungen!

Jürgen

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.