ich habe mit eurer Hilfe zusammen eine Tropfenbox Shield entwickelt, das klappt auch alles sehr gut.
Die Firmware Funktioniert auch ohne Probleme (noch), ich habe bisher ja immer nur einen Blitz im Einsatz.
Da ich mir überlege mehrere Blitze zuzulegen habe ich mir hier etwas erkundigt wie das ist, und habe festgestellt das die manchmal eine unterschiedliche Reaktionszeit haben, und die Blitze im Bereich von 50 - 500 Mikrosekunde µs unterschiedlich eingestellt werden müssen, die Aktuelle Firmware arbeitet mit werten von Millisekunde.
Also dachte ich mir, kein Problem kann ich umschreiben, jedoch fehlt mir dafür die Grundlage also habe ich mich versucht mit den Mikrosekunde µs beim Arduino etwas einzulesen und hier ist das was ich nicht verstehe schon wider verborgen.
Ich arbeite mit einem Arduino Mega bzw. Uno sie arbeiten beide auf 16 MHz somit ist die Aussage im Raum:
Auf 16 MHz Arduino Boards (z.B. Duemilanove und Nano), hat diese Funktion eine Auflösung von 4 Mikrosekunden (d. h. der Rückgabewert ist immer ein Vielfaches von Vier).
Was soll das Bedeuten.
Angenommen, das Programm ist in Wirklichkeit 100 Mikrosekunde gelaufen und ich mache die abfrage dann bekomme ich immer einen wert zwischen 100 und 104 als Ergebnis?
ist die Schwankung denn dann Reproduzierbar? oder bei jedem Funktionsaufruf wider eine andere?
oder ist es nur nach einem Reset / aus einschalten nicht mehr Reproduzierbar zum letzten Programm Durchlauf?
wenn Ihr mir da etwas Licht ins Dunkle bringen Könntet wäre ich euch sehr dankbar.
micros von 1 - 4µs dauern 4µs. Das ist damit gemeint. Spricht wenn du 100µs warten möchtest, sollte es auch 100µs dauern. Möchtest du aber 101µs messen, dann kommt da ein Wert von 104µs raus
Wenn blockierender Code für dich ok kannst du es auch genau mit delayMicroseconds() machen. Delays werden immer verschrien, aber für solche sehr kurzen Sachen kann das in Ordnung sein. Hier mal den Prozessor für weniger als eine ms zu blockieren bekommt man gar nicht mit.
Sondern das ich auf die Microseconde genau einen Ausgang (Digitalen PIN) schalten möchte.
Bei meinem Tropfenbox Shield kann kann ich eine Kamera 3 Blitze und bis zu 12 Ventil (12V) ansteuern.
bei den Ventilen ist es im Millisekunden Bereich alles in bester Ordnung, und ich dachte das ich bei der Kamera und den Blitzen auch kein Problem habe, jedoch habe ich nun festgestellt das wenn ich alle drei Blitze zur exakt selben zeit auslöse diese eine leichte Verzögerung haben, die Verzögerung kommt aber von den Blitzen selbst denn die Lösen unterschiedlich aus (glaube das das mit der Feinjustierung der Elektrik im Blitz zu tun hat)
jedoch sind die unterscheide im Microseconden Bereich von 50 bis 500 Microseconden.
Jetzt dachte ich mir das wenn ich die Ausgänge schon entsprechend einstelle dann kann ich die Verzögerung der Blitze elementaren.
ist nur doof wenn das nicht genau genug gehen würde, daher beschäftige ich mich mit der Microseconde auf dem Arduino.
Und dabei ist mir das mit den 4er Blöcken glaube ich jetzt endlich klar geworden.
bevor Ihr mich noch verrückter haltet wie ich wirklich bin.
Bei einem Passbild oder oder sonder gleichen ist es egal ob die Blitze so exakt miteinander blitzen oder nicht da kommt es auf ein paar Microseconden hin oder her nicht an.
Jedoch mache ich mit dem Tropfenbox Shield Bilder von Wassertropfen wie sie aufeinander Prallen und Friere somit das Bild ein wenn jetzt aber die Blitze um genau die auslöse Verzögerung variieren dann habe ich eine "Doppelbelichtung" im Bild was nicht gewünscht ist, das sind dann oft so Bläuliche Schatten im Bild.
was serenifly mit "blockierendem code" gemeint hat:
wenn Du während der verzögerungen der blitzauslösungen nichts anderes machen willst, ist delayMicroseconds() schon in ordnung.
ich denke, das trifft bei Dir zu.
bei drei blitzen hast Du dann zwar zwei kurze zeiten während derer der arduino "blockiert" ist, aber er soll dann ja ohnehin nichts anderes tun als warten.
aber, eigentlich besteht Dein programm ja sowieso nur aus reihenfolge und wartezeiten, also weitermachen wie bis jetzt, nur halt mit millionstel sekunden.
@stefan: ah jetzt verstehe ich, ... ja das Programm wenn es denn mal Scharf ist (ausgelöst wurde) arbeitet eine bestimmte Reihenvogel an Werten ab, und dazwischen wird immer gewartet und es soll auch nichts anderes gemacht werden das ist soweit richtig
Perfekt danke.
@Uwe: ja da bin ich mir sicher denn ich habe bisher noch keine drei Blitze sondern habe mich bisher nur eingelesen in die Thematik und hier wird von Testern genau das Problem geschildert, dachte zuerst das es auch an der unterschiedlichen Länge der Kabel liegen könnte scheinbar ist das den Herstellern aber auch bekannt und die haben mir das auch bestätigt das es da zu minimalen Abweichungen kommen kann.
Ssolange Du Interrupts aktiv hast können die jederzeit auftreten und mal locker ein paar Mikrosekunden verbrauchen. Um das zu verhindern solltest Du vor der ersten Blitzausloesung Interrupts abschalten und dann mit delaymicros arbeiten. Danach die Interrupts wieder ausschalten. Danach die Interrupts wieder anschalten.
Um Zeitunterschiede für die Blitzzündung durch den Arduino von vorne herein auszuschließen habe ich nicht für jeden Blitz einen eigenen Arduinoausgang verwendet, sondern nur einen Ausgang der gleichzeitig vier Optokoppler schaltet.
peter_de:
Um Zeitunterschiede für die Blitzzündung durch den Arduino von vorne herein auszuschließen habe ich nicht für jeden Blitz einen eigenen Arduinoausgang verwendet, sondern nur einen Ausgang der gleichzeitig vier Optokoppler schaltet.
machst du auch TaT Bilder?
was machst du wenn die Blitze aber eine leichte Verzögerung haben?
z.B. bei den "Yongnuo YN-560 III" wenn hier die ersten drei Nr. der Serien Nr. unterschiedlich sind dann stammen die aus einer anderen Produktion und unter den verschiedenen Produktionen haben die unterschiedliche auslöse Verzögerungen, wenn die also alle an einem Ausgang hängen bekomme ich dennoch eine Doppelbelichtung.
das kann dann mit einem Ausgang leider nicht mehr geregelt werden.
Noch kann ich das selber nicht testen da ich nur einen Blitz habe, habe darüber aber schon das eine oder andere gelesen.
Nehme aber gerne Tipp an. die Idee mit den zusätzlichen OK der dann z.B. 4 Blitze gleichzeitig schaltet finde ich nicht schlecht.
Ich hatte mal TaT's gemacht. Mein Interesse daran ruht seit fast zwei Jahren.
Als Blitze hatte ich modifizierte REVUETRON C35s verwendet. Die waren und sind immer noch günstig gebraucht zu haben.
Bis zu vier Blitze hab ich verwendet und keine Zeitunterschiede festgestellt.
Mit dem Yongnuo hab ich keine Erfahrung.
Vier Optokoppler an einem Ausgang sind sicherlich kein Nachteil. Wenn die Blitze aber unterschiedlich reagieren kriegst du das damit nicht in den Griff. Dann muss jeder seinen eigenen Ausgang haben.
Bei mir hat es mit den vier Blitzen an einem Ausgang jedenfalls gut funktioniert weil alle Blitzgeräte die gleiche Verzögerung hatten.
Kameraseitig hab ich mit Spiegelvorauslösung gearbeitet. Das reduzierte die Auslöseverzögerung der Kamara um die Hälfte.
Sorry das wird jetzt etwas [OT]
denn von dir genanten Blitz habe ich gerade bei E-Bay gesehen, da steht dabei,
Die Spannung am Blitzschuh beträgt 10,5 Volt.
das ist für die OK aber kein Problem?
ich wies nicht wie das genau ist, alte Blitze haben doch eine Sehr hohe Volt zahl gehabt, und die Neuen Digitalen eigentlich fast gar nichts mehr? wo zahlt der denn dazu?
EDIT: habe mir auch schon überlegt ob ich mir eine Kleine Überwachung baue für die Blitze,
sprich eine Fotodiode und dann Messen wann und wie lange es hell ist, vielleicht sogar noch wie Hell es ist
bin mir aber nicht sicher ob Fotodioden da das richtige sind ob die Schnell genug reagieren und das Arduino Bord auch. bei Blitzzeiten von 1/33.000 Sekunde oder weniger.
Fotodioden sind das schnellste was es gibt. Die Auswertung ist aber nicht trivial wenn es wirklich gut sein soll. Im µs Bereich reichen aber vielleicht auch Fototransistoren.
Ein Vorteil von Fotodioden in diesem Bereich ist vielleicht dass da welche gibt die bei höheren Wellenlängen deutlich empfindlicher sind als Transistoren. Fototransistoren sind stark auf den IR-Bereich zugeschnitten, wobei es auch da welche gibt die bei höheren Wellenlängen noch einigermaßen gehen. Da muss man beim Kauf aufpassen.
Serenifly:
Fotodioden sind das schnellste was es gibt. Die Auswertung ist aber nicht trivial wenn es wirklich gut sein soll. Im µs Bereich reichen aber vielleicht auch Fototransistoren.
Ein Vorteil von Fotodioden in diesem Bereich ist vielleicht dass da welche gibt die bei höheren Wellenlängen deutlich empfindlicher sind als Transistoren. Fototransistoren sind stark auf den IR-Bereich zugeschnitten, wobei es auch da welche gibt die bei höheren Wellenlängen noch einigermaßen gehen. Da muss man beim Kauf aufpassen.
Cool danke,
wenn ich die wie eine "Konstantstromquelle mit Arbeitswiderstand" betreibe dann kann ich die wie einen Taster abfragen? und so die zeit stoppen
natürlich würde ich dann die Pins wider per Register abfragen (wie bei den Schieblehre, ob ich das noch hin bekomme)
jetzt habe ich da nur gelesen das es recht langsam so sein soll, leider kann ich mit der Rechnung auf der Seite mal so gar nichts anfangen
kann man das auch für Doofe nachlesen irgend wo? www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor
dort der Abschnitt: Konstantstromquelle mit Arbeitswiderstand
Muecke:
... Die Spannung am Blitzschuh beträgt 10,5 Volt.
das ist für die OK aber kein Problem?
...
Nein, die 10,5V sind für Optokoppler noch kein Problem. Ich hatte an meinen Blitzen 11,5V gemessen.
Wegen dem kleineren Gehäuse habe ich den SFH 615A-3 als Koppler genommen und IF für die Diode auf 20mA festgelegt. Damit wurden die Blitze und die Kamera (ich habe eine 20D) sauber angesteuert.
Ich habe meine Blitze alle aus der Bucht und für keinen mehr als 8€ incl. Versand bezahlt.
Die Blitze habe ich alle modifiziert.
In den Deckel vom Batteriefach habe ich Stecker für die Stromversorgung und Buchsen für die Blitzauslösung eingebaut.
So muss ich nicht ständig Batterien wechseln oder Akkus laden. Außerdem bin ich für die Auslösung von dem leidigen Blitzschuh weg für den man sonst noch einen Adapter braucht oder Kabel anlöten müsste.
Im Blitz ist auch ein Lichtsensor verbaut der normalerweise die Leuchtdauer (Blitzleistung) regelt.
Den hab ich intern abgeklemmt und die beiden Drähte die zu ihm führten durch den Deckel vom Batteriefach nach außen geführt. Normalerweise habe ich die beiden herausgeführten Drähte dann kurz geschlossen. Das ergibt die für den Blitz kürzest mögliche Abbrenndauer. Wenn man mehr licht braucht kann man an der Stelle ein Poti oder einen Festwiderstand anschließen und so die Blitzleistung erhöhen.
Eine Messung für die Blitzdauer hatte ich auch mal mit einer BPW34 versucht und das Ausgangssignal auf einem Oszilloskop dargestellt. Das Messignal ist aber kein Rechteck und deshalb kannst du daraus nicht viel ableiten, höchstens Tendenzen erkennen. Dann war das Signal auch noch extrem davon abhängig wo die Photodiode positioniert war. Vergiss diese Messung und schau mal auf diese Seite. Abbrenndauer von Studioblitzen, da sind auch Canon Speedlite mit aufgeführt.