12.082015

Mit Arduino Canon Auslöser bauen

Heute habe ich mir mal überlegt, wie man es hinbekommen kann, einen Auslöser für meine Canon zu bauen. Also einen Fernauslöser kann ja jeder bauen, aber ich wollte einen Knopf haben, dass der Arduino 5 Bilder in einem bestimmten Abschnitt auslöst. Man kann natürlich auch noch den Autofokus und alles mögliche darüber steuern, aber das kann man sich ja nach dem Tutorial selbst nochmal zusammen bauen. Ich habe also meine Platine angefangen zu verdrahten und habe mir ein 2,5mm Klinke Kabel bestellt. Dies habe ich dann in der Mitte zertrennt und die einzelnen Adern (Stereo Kabel, somit 3 Adern) auf die Platine gesteckt. Weiterhin habe ich mir 2 Knöpfe zum Testen auf die Platine gesetzt und ein Relais für den Auslöser angeschlossen. Im Grunde sollte ja jeder wissen, wie das geht, da es hierfür dutzend Tutorials gibt, wie ein Relais funktioniert. Also den Auslöser auf den, wenn im Digitaloutput LOW gesetzt wird, offenen Zustand gelegt und den Knopf auf einen Digitaleingang gesetzt(mir ist aufgefallen, dass der Knopf der im Funduino Paket enhalten ist, einige male ein HIGH gesendet hat. Hier sollte man wohl einfach einen höher Wertigen Knopf benutzen, aber für meinen Test hat's locker gereicht). IMAG0363Also Digitaleingang für Knopf von 5V auf digital Pin 4 und den Ausgang für das Relais habe ich auf 2 gesteckt. Heute Habe ich übrigens mal den Arduino Mega ausprobiert, im gegensatz zum letzten Mal. Auf dem folgenden Foto seht ihr die Verkabelung(auch wenn diese ziemlich wirr erscheint) Weiterhin habe ich noch für mich zum Testen den anderen Kontakt vom 2,5 Klinke Stecker (auf dem Bild der rote) für Autofokus noch auf einen anderen Knopf gesetzt, um zu gucken wie sich das verhält.   Den für mein Programm kurzen Code erläutere ich gleich noch:

const int relais = 2;
const int buttonPin = 4;
int buttonState = 0;
void setup() {
 pinMode(relais, OUTPUT);
 pinMode(buttonPin, INPUT);
}
void loop() {
 buttonState = digitalRead(buttonPin);
 delay(150);
 if (buttonState == HIGH) {
 makeFotos();
 }
}
void makeFotos(){
 for(int i = 0; i < 5; i++){
 digitalWrite(relais, LOW);
 delay(100);
 digitalWrite(relais, HIGH);
 delay(1000);
 }
}

Hier wird im Loop alle 150 ms abgefragt, welchen State der Button hat (war ein kleiner Bugfix, da mein Knopf echt oft HIGH angegeben hatte, obwohl er nicht gedrückt war). Wenn der Button betätigt wurde, wurde jede Sekunde für 0,1 sekunden der Auslöser gedrückt. Die Länge ist bei meinem Auslöser genau 1 Bild mit ausgeschaltetem Autofokus. Was mir hierbei schon aufgefallen ist, wenn man Autofokus an hat, muss man diesen gedrückt halten (also im Grunde 2 Relais und den Autofokus schließen) und dann kann man auch mit angeschaltetem Autofokus mehrere Bilder hintereinander machen. So kann man z.B. sich seinen eigenen Fotoautomaten bauen, der Passfotos macht, oder für eine Hochzeit ein Fotobooth bauen. Ich hoffe ihr habt viel Spaß beim nachbasteln, bis zum nächsten mal, euer Mark