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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.