• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Mitmachen beim DSLR-Forum Fotowettbewerb Mai 2025.
    Thema: "Zweckentfremdet"

    Jeden Monat attraktive Gewinnprämien, gesponsert von unserem Partner PixelfotoExpress.
    Alle Infos zum Juni-Wettbewerb hier!
  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
WERBUNG

Bastelanleitung: Arduino-basierter Lichtschranken-Trigger

1. Was für ein Netzteil muss ich an den Arduino dranhängen 3,3 und 5V ?
Das lässt sich einfach über ein USB-Kabel mit Strom versorgen. Wenn ich das Ding nicht am Rechner habe, nehme ich einen Steckdosen-USB-Lader als Netzteil. Ansonsten gehts soweit ich informiert bin auch mit einem 5V-Netzteil.

2. Verstehe ich den Schaltplan richtig wenn an OK1A und OK1B die Kamera dran kommt und die beiden OK1C und OK1D für die Blitze sind??
Jup, die ersten beiden Optokoppler braucht man für Autofokus- und Auslöser, die anderen beiden können je einen Blitz auslösen. Der PC847 aus meinem Schaltplan vereint 4 Optokoppler in einem Gehäuse.

3. Ich habe als Blitz einen Canon EX580 und ein Yongnuo 460. Beide blitzen sofern man die Blitzkontakte kurzschließt. Reicht der einfache Anschluss an Spitze und Basis von OK1C und OK1D für diese Blitze oder muss da noch irgendwas "elektrisches" zwischen?
Nee, sollte eigentlich so funktionieren. Ich muss zugeben, dass ich das aber noch nicht ausprobiert habe, weil meine Lumopro-Blitze einen 3,5mm Klinkenstecker-Eingang haben.

Trotzdem kurz noch der Hinweis: die Blitzansteuerung ist in der Software aktuell noch nicht enthalten.

@Hoekri: vielen Dank, ich schau mir das mal an und werde es bei Gelegenheit einbauen. Bzgl. der Zeiten: da man die sowieso individuell einstellen muss, würde ich die Zeit eher nicht berücksichtigen wollen.
 
Zuletzt bearbeitet:
Bzgl. der Zeiten: da man die sowieso individuell einstellen muss, würde ich die Zeit eher nicht berücksichtigen wollen.
Das stimmt, aber nur solange auch die (geplante) Blitzauslösung zeitlich variabel ist. Soll der Blitz einfach nur zeitgleich mit der Kamera auslösen, muss dies am Ende des IR-Fernsteuersignals geschehen.
Ich sehe gerade, wenn ich die Zeilen wie folgt vertausche:
Code:
void camera_on() {
  takePicture();                                        //<<<<< hier wird der IR-Auslöser aktiviert, aber die Kamera wird erst am Ende des Signals (knapp 200 ms) ausgelöst!
  digitalWrite(focus_pin, HIGH);
  digitalWrite(shutter_pin, HIGH);
  cam_trigger_active = true;
}
ist der Zeitpunkt der Kameraauslösung unabhängig davon, ob ich über Kabel auslöse oder über IR immer 200 ms verzögert. Damit wäre das Problem der Blitzsynchronisation aus der Welt. Denke ich... Kamera und Blitz lösen gleichzeitig aus.
Bisher musste ich mindestens 1/10 s belichten, sonst war der Blitz lange erloschen, während die Kamera noch überlegte, ob das IR-Signal für sie bestimmt war;)

fg Ralf
 
3. Ich habe als Blitz einen Canon EX580 und ein Yongnuo 460. Beide blitzen sofern man die Blitzkontakte kurzschließt. Reicht der einfache Anschluss an Spitze und Basis von OK1C und OK1D für diese Blitze oder muss da noch irgendwas "elektrisches" zwischen?
Ich habe einen Berotron und einen Sigma Blitz direkt an den Optokoppler angeschlossen, bisher gibt es keine Probleme. Sollte also funktionieren, solange die Blitzgeräte für digitale Kameras ausgelegt sind- sprich die Spannung an den Synchronkontakten im Kleinspannungsbereich liegt.

fg Ralf
 
Die Blitze werden dann unabhängig von der Kamera ausgelöst (mit getrennten Verzögerungszeiten). Insofern sollte das auch Dein Synchronisationsproblem lösen.

Hatte auch vorhin eine gute Idee, die den Programmablauf für die diversen Verzögerungen erheblich vereinfachen wird. Muss mal sehen, ob ich es die Woche noch schaffe, das umzusetzen.
 
Hallo,

melde mich auch nochmal schnell zu Wort.
Bei dem Schaltplan von Niggoh mit den Optokopplern ist der einzelne Optokoppler für das Magnetventil an der Ausgangseite Falsch. Die Nummern werden wie an einem U angegeben. D.h. 3 und 4 werden vertauscht.
Die Anschlüsse müssen gedreht werden. ;)
Ich betreibe für die Wassertropfen das ganze auch ohne Lichtschranke. Funktioniert soweit ganz gut.
Was noch eine gute Sache wäre, wenn die Blitze mit über den Optokoppler funktionieren würden. Der eine Blitz wird erstmal über die Kamera gesteuert. Geht auch wunderbar. Nur habe ich noch einen 2 der über Kabel ausgelöst werden müsste. :rolleyes:
Ich habe da leider keine Ahnung von, sonst hätte ich schon probiert selber zu programmieren.

Gruß Andreas
 
Hier mal meine Programmschnipsel zum Blitzauslösen:

In einem neuen Reiter flash_functions habe ich das abgelegt:
Code:
void flash1_on() {
  digitalWrite(flash1_pin, HIGH);
  
}

void flash2_on() {
  digitalWrite(flash2_pin, HIGH);
  
}

void flash1_off() {
  digitalWrite(flash1_pin, LOW);
  
}

void flash2_off() {
  digitalWrite(flash2_pin, LOW);
  
}
In waterdrop_functions sind etwa in der Mitte unter camera_on die Zeilen mit flash.... zu ergänzen:
Code:
          camera_on();
          // Zeit der Kameraauslösung speichern
          millis_camtriggerevent = millis();
          flash1_on();
          flash2_on();
        }
      }
    }
    // falls der Kameratrigger aktiv ist: prüfen, ob er wieder losgelassen werden muss
    else if (current_millis - millis_camtriggerevent > cam_trigger_activetime) {
      camera_off();
      flash1_off();
      flash2_off();
      picture_taken = true;
    }
und im bei der Initialisierung müssen die entsprechenden Pins für die Blitze festgelegt werden. Allerdings ist keine getrennte Einstellung der Blitzzeiten möglich, die lösen mit der Kamera aus.
 
Also ich habe eine neue Version mit separater Blitzauslösung fertig, incl. individueller Verzögerungszeiten für jeden Blitz. Ich muss nur noch die entsprechenden Menüpunkte fürs LCD hinzufügen und dann kurz testen, ob das auch alles so funktioniert, wie ich es mir vorgestellt habe.
Wenn das alles klappt, gibts heute abend noch eine neue Softwareversion zum Download.

Wegen des SFH610 im Schaltplan: ich schau nochmal nach wegen der vertauschten Anschlüsse, muss mal das Datenblatt raussuchen. Evtl. ist das Bauteil in Eagle anders als im Datenblatt.

EDIT:
Software Version 0.1d ist online. Damit können nun zusätzlich die beiden Blitze angesteuert werden, die Verzögerungszeiten dafür finden sich im Wassertropfenmenü.
Downloadlink: http://crazymachine.nicolai-korff.de/downloads/crazymachine_currentversion.zip

Ich habe zu Testzwecken die Standardzeiten für Kamera- und Blitzverzögerung auf verschiedene Werte gesetzt. Sobald man für sich selbst sinnvolle Standardwerte gefunden hat, empfehle ich, diese "fest" im Quelltext zu verankern, damit entfällt das Umstellen nach jedem Neustart des Arduinos. Dazu die folgenden Zeilen im Reiter "crazymachine" ändern:

Code:
unsigned int currentvalue_CamDelayTime = 300; // Kameraverzögerung
unsigned int currentvalue_Flash1DelayTime = 400; // Verzögerung Blitz 1
unsigned int currentvalue_Flash2DelayTime = 500; // Verzögerung Blitz 2
Irgendwann gibts sicher noch die Möglichkeit, die Werte im EEPROM des Arduino zu speichern (und somit auch über einen Stromausfall oder Neustart hinaus). Ich weiß, dass es möglich ist, hab das aber noch nie gemacht. Auf jeden Fall würde es relativ viel Arbeit machen, das zu implementieren, deswegen steht das nicht sonderlich weit oben auf der Prioritätenliste.

Außerdem habe ich den Code von Hoekri zur IR-Auslösung von Nikon-Kameras eingefügt. Konnte ich mangels entsprechender Kamera nicht testen. Um damit auszulösen im Reiter "crazymachine" in der folgenden Zeile "false" in "true" ändern:
Code:
boolean use_nikon_ir_trigger = false;
Die IR-Auslösung ist nicht sauber von der Kabelauslösung getrennt, d.h. die Auslösung über Kabel findet trotzdem noch statt. Der Pin für die IR-LED ist erstmal der gleiche wie der shutter_pin, kann aber ggf. noch geändert werden. Die entsprechende Zeile im Code, hier ggf. die Zahl ändern:
Code:
const byte nikonirshutter_pin = 1; // Pin für die IR-LED für die Nikon IR-Auslösung

So, und nun müsst Ihr Testen, meine Maschine ist momentan eingemottet, hab nur einen Trockenversuch am PC gemacht :)

Viel Spaß!

Gruß,

Nico
 
Zuletzt bearbeitet:
Hab nochmal nachgelesen wegen SFH610:

Das Problem ist, dass in der Eagle-Bibliothek die Pins 3 und 4 vom SFH610 vertauscht sind. Ist natürlich etwas unpraktisch. Weiß jemand, wie man dort in der Bibliothek Bauteile verändern kann?
 
Hab nochmal nachgelesen wegen SFH610:
Das Problem ist, dass in der Eagle-Bibliothek die Pins 3 und 4 vom SFH610 vertauscht sind. Ist natürlich etwas unpraktisch. Weiß jemand, wie man dort in der Bibliothek Bauteile verändern kann?

LIB im Control Panel öffnen, editieren speichern :confused:


die Package Variante ist richtig nummeriert, der Fehler muss im Symbol liegen
 
@ Niggoh
Erst mal vielen Dank für Deine Mühe:top:
Ich habs mal hochgeladen und lediglich die Pinbelegung meiner Hardware angepasst.
Zunächst: IR-Auslösung für Nikon funktioniert tadellos!
Dann habe ich meine Blitze angesteckt, nur einer löste aus.
Also Fehlersuche: Blitzgeräte ok, Zusatzhardware ok, Verbindung zum Arduino ok, Pins getauscht (vielleicht ist ja der Arduino kaputt) ok:confused:
Niggohs Programm untersucht, keinen Schreibfehler gefunden. und nun?
Jetzt habe ich die Blitzverzögerungszeiten beide auf 500 ms gestellt- und siehe da: Doppelblitz! Zeit wieder zurückgestellt- und es blitzte nur einer, grr.
Lichtschranke und "Selenoid" habe ich noch nicht angeschlossen.
Ist es möglich, dass da was mit dem Zeitmanagement hakt?
Hab verschiedene Blitzzeiten ausprobiert, aber ein System konnte ich nicht erkennen. Es gibt aber auch Einstellungen, da löst keiner der Blitze aus:mad:
Werde als nächstes mal den IR-Shutter deaktivieren, vielleicht ist das der Störenfried

Edit:
hätte ich mir den ganzen Beitrag sparen können: das war die Ursache! Wahrscheinlich durch die 38 kHz und oder die Pulse wird das Hauptprogramm beeinflusst. Sooo, jetzt habe ich zwar Blitzgewitter aber kann meine Kamera nicht mehr auslösen;)
 
Zuletzt bearbeitet:
Fein, es funktioniert also grundsätzlich.

Als Lösungsvorschlag für Dich Hoekri:
Belichtungszeit an der Kamera möglichst lang einstellen und die Kamera dann deutlich früher auslösen, das eliminiert evtl. die Probleme mit dem zweiten Blitz.
 
Ich werde auf jeden Fall am WE noch weiter testen. Blitzverzögerung einzeln und unabhängig von der Kamera ist ja für unsere Zwecke nicht unbedingt notwendig und damit Luxus.
Alles Andere lässt sich lösen, denke ich:top:
 
Zum Test der Version 0.1d

Da ich hier wohl der einzige "mit ohne" Fernsteueranschluss bin, habe ich erstmal die IR-Fernsteuerung abgeschalten.
Jetzt arbeitet die "Crazy Machine" brav ihren Code ab, jede Zeit für Blitz und Magnetventil lässt sich individuell einstellen und das Programm reagiert entsprechend.
Sobald ich aber die Lichtschranke aktiviere
Code:
boolean use_irbarrier = true; // Lichtschranke benutzen oder nicht?
erhalte ich für die Calibrierung jedes mal andere Werte. Haa! dachte ich, Lichtschranke kaputt! Lichtschrankenstecker abgezogen und dennoch, bei jedem reset mal 40, 178, 12 usw. Die Blitzauslösung erfolgt auch weiterhin unabhängig von der Lichtschranke.
Ist das nur bei mir so oder hat noch jemand Erfahrung damit?

fg Ralf
 
Hallöchen,

also, mehrere Pakete sind angekommen! Grins.....
Arduino und DFRobotshield schon mal zusammengesteckt und dann die ersten Schritte mit der Arduino Software gemacht. Nach einigem Probieren und lesen erschien dann auch brav "Crazymachine" auf meinem Display.
Am Wochenende werd ich erst mal löten und dann mal sehen ob alles richtig ist. Dürfte sich ja messen lassen.

Wieder ne Frage:
Gibt es eine "Menuübersicht" ?
Also so ne Art Gliederung was wie eingestellt werden kann?
Steht ja sicherlich auch im Code, aber ich kann jetzt nicht wirklich coden.

Was mir aber schon aufgefallen ist, dass selbst bei vielen Seiten im Internet rund um den Arduino so gut wie kein Tutorial existiert welches umfänglich "alles" inklusive der ersten Schritte beschreibt.

Sobald ich mir das erarbeitet habe, mach ich mich mal dran.

Habe leider einige Termine am Wochenende, die würd ich am liebsten sausen lassen um die Zeit fürs "Tröpfeln" zu nutzen. Mal sehen was übrig bleibt.....

gruss
peter
 
Eine Menüübersicht gibts grundsätzlich schon, ist relativ weit oben im Reiter crazymachine im Programmcode zu finden (ab Zeile 64), ist aber nicht unbedingt übersichtlich. Da findest Du die ganzen Textkonstanten, die auf dem Display ausgegeben werden. Einen richtigen Menübaum kann ich bei Gelegenheit nochmal hinzufügen.

Zumindest der erste Post hier im Thread sollte aber schon erklären, wie das mit dem Upload aufs Arduino funktioniert. Ansonsten gibts wirklich viele grundlegende Infos auf arduino.cc

Wegen Lichtschranke: ich kann evtl. heute nachmittag nochmal testen, ob ich das Problem reproduzieren kann. Verstehe aber ad hoc nicht, warum das auftreten sollte.
 
Hallo,

die Version 0.1d bekomme ich nicht auf mein Arduino geladen.
Ich mache da bestimmt wieder was falsch. Obwohl es bei den anderen geklappt hat oder muss ich da irgend etwas beachten? :rolleyes:
Bin da aber auch eine null in den Sachen. :rolleyes:

Gruß Andreas
 
Bekommst Du eine Fehlermeldung? Wenn ja, wie lautet die? So ganz ohne nähere Informationen ist es jetzt schwer zu sagen, woran es hakt.

Upload-Probleme habe ich bisher stets durch eines folgende Dinge behoben bekommen:
- Computer neu starten
- anderen USB-Port benutzen
- Board und COM-Port in der Software neu einstellen (im Menü Tools)
- Arduino USB-Treiber ggf. installieren
 
Hab jetzt mal ein screenshot von der Fehlermeldung gemacht.
Hab sämtliche Sachen ausprobiert.
Ist bestimmt nur eine kleinigkeit.
Vielleicht weiß ja einer von euch was der Fehler ist.
Danke schonmal im vorraus :)

Gruß Andreas
 
Sieht so aus, aus hättest Du nur einen Teil des Programms geladen. Die aktuelle Version besteht aus 9 Teilen, zu erkennen an 9 Reitern im Arduino-Progammfenster. cam_functions, waterdrop_functions, lcd_functions, sensor_functions, menu_functions..... Diese 9 Dateien müssen sich auf Deinem Computer in einem Ordner mit dem Namen crazymachine befinden!
Es scheitert bei Dir momentan schon beim compilieren, mit der Verbindung zum Arduino hat das erst mal noch nichts zu tun! Hast Du beim Entpacken alles richtig gemacht?
 
WERBUNG
Zurück
Oben Unten