Library Discription:
At the search, how to emulate my Nikon IR remote control, I found following site. bigMike. A first sketch was written fast and with best results. A friend of mine would like use the same easy system to control his Canon. I found the Canon timing and a lot of others at a thread here. Not just Canon, also Minolta, Sony, Olympus and Pentax. I decide to write a Arduino library where all timings are included. Nikon, Canon, Pentax, Olympus and Sony cameras are working very well. The other cameras have to be checked. It would be nice if you could do that and give me a feedback. Some cameras do have the possibility to control a lot of more then just the shutter. For example zoom and other things. I would like to implement these features later if it is clear that the timings are working well.
Please don’t forget to chose a mode of your camera where it will receive IR commands!
You will find the Arduino multiCameraIrControl library download at the end of the page.
Have fun!
Bibliothekenbeschreibung:
Auf der Suche im Web nach einer Möglichkeit meine Nikon Fernauslösung zu simulieren, habe ich folgende Seite mit den passenden Informationen gefunden. bigMike. Eine erste kleine Sketch funktionierte problemlos. Ein Freund war begeistert, konnte die Sketch jedoch nicht benutzen, weil er eine Canon besitzt. Bei der Rechreche nach weiteren IR Timings kommt man ganz schnell auf diesen Forenbeitrag. Dort sind alle Timings für Canon, Nikon, Olympus, Pentax, Minolta und Sony aufgelistet. Ich habe alle in die multiCameraIrControl Arduino Library eingebaut. Die Sequenz für Nikon, Canon, Pentax, Olympus und Sony ist getestet. Minolta sollte funktionieren. Da würde ich mich freuen wenn das jemand mal testen könnte. Einige Modelle bieten weitere Möglichkeiten wie Zoom, usw. an. Das ist in der ersten Version noch nicht implementiert. Soll aber folgen.
Bitte nicht vergessen die Kamera in einen Modus zu schalten in dem Sie Kommandos über IR empfängt!
Der Download der Arduino Library ist ganz unten zu finden. Bitte berichtet über Erfolge und wenn etwas nicht funktioniert.
Viel Spaß!
To Do:
Canon test, thanks FrankOlympus test, thank you StevePentax test, thx AndriesMinolta test, thank you HansSony test, thanks to Walter- get the Code more tight
- Got more functions, zoom and more
Aufgabenliste:
Canon bestätigen, danke FrankOlympus testen, Danke sehr StevePentax testen, danke AndriesMinolta testen, mit Dank an HansSony testen, Dank an Walter- Code verschlanken
- Fehlende Funktionen wie Zoom usw. implementieren
Partlist:
- Arduino Diecimila, UNO, or some else
- IR LED
- Resistor
- Camera: Canon, Nikon, Olympus, Pentax, Sony or Minolta with IR sensor
Stückliste:
- Arduino Diecimila, UNO, einen anderen
- IR LED
- Widerstand
- Kamera: Canon, Nikon, Olympus, Pentax, Sony oder Minolta mit IR Sensor
Commands:
void shutterNow()
The camera will shot directly a picture. It will work with every camera.
void shutterDelayed()
The camera will wait after transmission for round about two seconds. This is only supported for Canon, Sony and Minolta cameras.
int zoomin()
soon for Olympus
int zoomout()
also available from V1.6
Funktionen:
void shutterNow()
Die Kamera wird sofort nach dem Erhalt der Botschaft auslösen, dies wird von allen Kameratypen unterstüzt.
void shutterDelayed()
Es wartet die Kamera nach dem Erhalt der Botschaft für zwei Sekunden, bevor sie auslöst. Dies ist aber nur bei Canon, Sony und Minolta möglich.
int zoomin()
Das ist bald für Olympus nutzbar
int zoomout()
Auch dieses ist aber der Version 1.6 verfügbar
Code Example:
Beispielcode:
/*******************************************
*
* Name.......: multiCameraIrControl Library - Canon Example
* Description: A small example sketch how to use multiCameraIrControl library. Please check the project page for wiring and leave a comment.
* Author.....: Sebastian Setz
* Version....: 1.2
* Date.......: 2011-01-25
* Project....: http://sebastian.setz.name/arduino/my-libraries/multi-Camera-IR-Control
* Contact....: http://Sebastian.Setz.name
* License....: This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to
* Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
* Keywords...: arduino, library, camera, ir, control, canon, nikon, olympus, minolta, sony, pentax, interval, timelapse
* History....: 2010-12-08 V1.0 - release
* 2011-01-04 V1.1
* 2011-01-25 V1.2 - changing pin number, because the wiring at the homepage was different
*
********************************************/
#include <multiCameraIrControl.h>
Canon D5(9);
void setup(){
}
void loop(){
D5.shutterNow();
delay(5000);
D5.shutterDelayed();
delay(5000);
}
License:
Lizenz:

lightPrint von Sebastian Setz steht unter einer Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Lizenz.
Über diese Lizenz hinausgehende Erlaubnisse können Sie unter http://Sebastian.Setz.name erhalten.





Hi,
FYI: this library (1.7 on Duemilanove) works with the Pentax WG-1. Thanks a lot for your work and making it available!
I assume you used Arduino as well to read the remote codes? If so, could you share the code and the schematic so that I may try to find the Pentax’s ‘zoom’ and ‘function’ remote codes?
Regards,
Martijn
Thanks Martijn!
As I wrote in the text above I found all timings in a forum. But somewhere in the past I found a very good website where somebody had a arduino project which could do what you would like to do. But I cant find it right now…
Best regards
Sebastian
Martijn, you can look at this site
http://www.ladyada.net/learn/sensors/ir.html
Hi.
Anyone tested with the Olympus SP-565 UZ?
I just ordered an arduino, and was looking various hardware projects, and noticed the question about the Olympus SP-565UZ. Unfortunately, the SP-565UZ does not support an infrared remote shutter release (Olympus product numbers RM-1, RM-2). However, it does support a wired shutter release (RM-UC1). You need to get a cable that is compatible with the RM-UC1, either by hacking up an existing clone RM-UC1 shutter release, or getting the Pixel CL-UC1 cable, which has the Olympus 12 pin multi-connector on one side, and a 2.5mm phono plug on the other side. I would imagine there are other projects that deal with wired shutter releases. A commerical product that will start shipping shortly is the triggertrap (triggertrap.com), and they make a shield that plugs into the Arduino, and the code is available for the shield.
Thanks for the tips
Hallo ich habe folgendes Problem:
Ich möchte per Knopfdruck meine D3000 auslösen jedoch zeigt er mir die fehlermeldung:
Button.cpp: In function ‘void loop()’:
Button:16: error: ‘D3000′ was not declared in this scope
Woran könnte das liegen?
Hier der Code:
#include #include const int buttonPin = IO27; int buttonState = 0; void setup() { pinMode(buttonPin, INPUT); digitalWrite (buttonPin,HIGH); Nikon D3000(IO15); } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { D3000.shutterNow(); delay(1000); } else { } }Hallo Ewald,
was sagt Dir denn die Fehlermeldung? Sie sagt, dass etwas in einem Bereich (loop()) nicht deklariert ist. Kannst Du Dir vorstellen was das sein könnte?
Wenn Du es nicht hin bekommst, gern nochmal melden.
Viele Erfolg und Spaß
Sebastian
Ach nein wie blöd
Fange grad erst an mit Arduino..
Danke !!
Sebastian:
How do I change the range of allowable interval for y Nikon to say 300K to 1200K miliseconds?
Thanks,
Scott
Hello Scott,
sorry, but which interval do you mean?
Sebastian
Hallo Sebastion
ich würde gerne mit dem Code von Don K arbeiten.
Mich interessiert die Sony Klasse. Würde da gerne erweitern.
Gibts die Datei irgendwo mit der korrekten Formatierung?
Gruss
Erich
Hallo Erich,
ich habe die Änderungen noch nicht eingebaut. Den Code von Don K werde ich an Dich weiterleiten. Falls Du dann Erfolg hast, würde ich mich freuen den neuen Code auch zur verfügung gestellt zu bekommen.
Gruß und viel Erfolg
Sebastian
Hallo Sebastian
Danke für den Code.
Werde mich am WE mal damit befassen.
Meine NEX 5 funktioniert mit Deinem Code problemlos.
Möchte den Code auch für die Sony CX Familie erweitern.
Falls es klappt sende ich den Code zurück.
Gruss
Erich
I have incorporated your code into my own project.
If the Camera (EOS 550D) is set to Bulb and the following code is used, long exposure shots (5 sec in example) are capable.
D5.shutterNow();
delay(50);
D5.shutterDelayed();
delay(5000);
D5.shutterNow();
delay(50);
Sorry if this is obvious, or it has already been posted but i cannot read German.
Hello David,
thanks for your hint. Until now nobody has reported about that possibility.
Best regards
Sebastian
Moin,
sag mal, was genau für IR-LEDs nimmt man da? Gibt ja doch ein paar.
Gruß
Peter
Hallo Peter,
ich hatte mir mal unterscheidliche Wellenlängen bestellt. Ich habe bei kurzen Distanzen keine Unterschiede festgestellt und bisher hab ich keine LED gesehen bei der es nicht funktioniert hat. Das mag bei großen Distanzen anders sein. Es hängt ja auch von der Kamera ab.
Ich hoffe Dir mit der schwammigen Antwort geholfen zu haben.
Grüße
Sebastian
mhh hab 950er als 5mm da. Probier ich es halt erstmal damit:)
Danke
Hallo Sebastian,
Vielen Dank für Deine Arbeit mit dieser Bibliothek. Ich habe sie in meinem inzwischen nicht mehr ganz kleinen Arduino-Fotoprojekt eingesetzt. Dazu musste ich allerdings sinnvollerweise die Zuordnung der Pins in die Funktionen stecken, die das IR-Signal generieren, weil die Pins in meinem Programm variabel sind. Weil ich es für sehr verwirrend halte, wenn mehrere Bibliotheken mit ähnlichen Namen existieren, habe ich die Funktionen aus den Bibliotheken in meinen normalen Quelltext integriert.
Falls Du Lust auf Wassertropfenfotografie bekommen solltest, kannst Du Dich gerne auf meiner Projektseite umschauen.
Hi Nicolai,
tolles & gut dokumentiertes Projekt hast Du!
Kennst Du schon den Photoduino? (http://www.photoduino.com/)
Gruß
Sebastian
Jup, das Photoduino kenne ich. Und noch das eine oder andere Gerät, das ähnliche Dinge kann (z.B. CameraAxe, Glipsecatcher, Timemachine, Stopshot und ein paar andere aus dem Arduino-Playground). Das war mir aber alles entweder zu teuer oder hardwaretechnisch zu anspruchsvoll. Teilweise ist es auch schwierig, die benötigten Bauteile zu finden, deswegen bin ich am Ende bei der Eigenentwicklung gelandet, dabei habe ich auch eine Menge gelernt.
Wenn es um die Steuerung von mehreren Ventilen geht, wird das Feld der Mitbewerber übrigens schon deutlich kleiner, das kann in der Form eigentlich nur der Glimpsecatcher, der allerdings nur über eine Computerverbindung nutzbar ist. Inzwischen ist meine Variante wohl auch eine der flexibelsten Lösungen, weil es softwareseitig nur noch eine untergeordnete Rolle spielt, was an die Pins angeschlossen wird.
Gruß,
Nico
Hallo Sebastian,
vielen Dank für deine neue Version. Funktioniert perfekt mit der Olympus e3 (Shutter, ZoomIn und ZoomOut).
Hannes
Hallo Hannes,
das freut mich zu hören!
Was hast Du geändert dass das Zoomen inzwischen funktioniert? Am 11. Nov. hattest Du ja noch Probleme.
Gruß
Sebastian
Hallo Sebastion,
ich benutze ZoomOut, ZoomIn im Bulb-Modus; damit kann ich nun eine eigene Belichtungszeiten zur HDR – Foto – Erstellung machen.
Dank deiner neuer Version.
Gruß
Hannes
Hi,
. Vielleicht hilfts ja dem einen oder anderen.
ich habe das ganze heute mit meiner Canon D600 getestet. shutterDelayed funktionierte, shutterNow jedoch nicht. Laut folgender Seite http://www.doc-diy.net/photo/rc-1_hacked/ braucht man sowohl für shutterDelayd als auch für shutterNow 16 Impulse(natürlich mit verschiedenem delay). Ich habe den Code dementsprechend angepasst. Nun funktioniert es
void Canon::shutterNow() { for(int i=0; i<16; i++) { digitalWrite(_pin, HIGH); delayMicroseconds(11); digitalWrite(_pin, LOW); delayMicroseconds(11); } delayMicroseconds(7330); for(int i=0; i<16; i++) { digitalWrite(_pin, HIGH); delayMicroseconds(11); digitalWrite(_pin, LOW); delayMicroseconds(11); } }Hallo Viktor,
vielen Dank für den Hinweis!
Ich habe den Fehler in der Bibliothek korrigiert & steht nun in der Version 1.7 zur Verfügung.
Gruß
Sebastian
Was mache ich falsch?
Ich benutze Arduino 1.0, habe die ZIP-Datei entpackt und in das Verzeichnis C:\Program Files\arduino-1.0\libraries\ kopiert. Sowohl beim klicken auf “Verfiy” als auch bei “Upload” erhalte ich folgende Fehlermeldung:
C:\Program Files\arduino-1.0\libraries\multiCameraIrControl/multiCameraIrControl.h:26:22: error: WProgram.h: No such file or directory
Unter File – Examples finde ich die Beispielprogramme und unter Sketch – Import Library … finde ich Bibliothek.
Gruß und Danke
Helmut
Hallo Helmut,
ich bekomme den Fehler auch bei anderen Bibliotheken. Dazu habe ich folgendes gefunden.
Quelle: http://arduino.cc/blog/2011/10/04/arduino-1-0/
Am schnellsten änderst Du eben die entsprechende Stelle in der Bibliothek oder wartest bis ich das eingebaut habe & dann hier zur Verfügung stelle. Das wird voraussichtlich morgen was.
Gruß
Sebastian
Hallo Helmuth,
in der Version 1.6 ist die Bibliothek nun Arduino 1.0(und abwärts) kompatibel.
Viel Spaß
Sebastian
Hallo Sebastian,
vielen Dank, es funktioniert, die EOS 5D Mark II klappert jetzt vor sich hin.
Gruß
Helmut
Hai Sebastian, your program Multi Camera IR Control for K7 also works fine with a Pentax K10 . You can put it on your list and thanx. I had it working within no time.
Regards Ewoud
Hello Ewoud,
nice to hear that!
Sebastian
Hallo Sebastian,
vielen Dank für deine Library.
Ich spiele zum ersten Mal mit Arduino und einer Olympus E-3 mit deinem Code. Trotz der mehrfachen Forumseinträge über ZoomIn / ZoomOut mit der Olympus bring ich das Arduino nicht damit zu laufen. Gibt es Hoffnung auf eine weitere Version deinerseits?
Danke für die Info!
Hallo Hannes,
ich besitze keine Olympus & bin daher auf Feedback anderer angewiesen.
Funktioniert denn das Auslösen?
Gruß
Sebastian
Hallo Sebastian,
die Auslösung funktioniert problemlos.
Ich würde aber gerne die Tasten “W” sowie “T” (ZoomIn, ZoomOut) für die Steuerung der Belichtungszeit im Bulb-Modus vervenden.
Der Code von Don K. produziert bei mir nur Fehler und ich habe keine Idee wie ich das Programm korrekt zum Laufen bringe.
Danke
Hi Sebastian,
Thank you for the library. I tried to rewrite the code to make it smaller, faster and prevent interrupts from causing a problem. Each demo sketch compiles to about 100 bytes smaller and should be faster. I cannot really test most of the routines but it is possible that all timings are slightly off because the code is faster. I don’t know if this is consistant with the plans to ‘tighten’ the code but this is my attempt.
Thanks for all of your work.
don
class Canon{public:
Canon(int pin);
void shutterNow();
void shutterDelayed();
private:
int _pin;
int _pause;
};
// Canon S60/S70/S1IS/G1/G2/G3/G5/G6/Pro90/Pro1
class CanonWLDC100
{
public:
CanonWLDC100(int pin);
void shutterNow();
private:
int _pin;
int _pause;
byte _len;
unsigned long _seqShutter;
};
class Minolta{
public:
Minolta(int pin);
void shutterNow();
void shutterDelayed();
private:
int _pin;
int _pause;
byte _len;
//unsigned long long _seqShutter; // will add approx 600 bytes
//unsigned long long _seqDelayed; // will add approx 600 bytes
unsigned long _seqShutter;
unsigned long _seqDelayed;
};
class Nikon{
public:
Nikon(int pin); //sets IRLED pin and other private data
void shutterNow(); //toggles IRLED appropriately
private:
int _pin; //pin to use for IRLED
int _pause; //(1000/freq/2)-4; if freq is 38khz use 38 in calc
};
class Olympus{
public:
Olympus(int pin);
void shutterNow();
void zoomIn(unsigned int pct);
void zoomOut(unsigned int pct);
private:
int _pin;
int _pause;
byte _len;
unsigned long _seqShutter;
unsigned long _seqZoomIn;
unsigned long _seqZoomOut;
};
class Pentax{
public:
Pentax(int pin);
void shutterNow();
private:
int _pin;
int _pause;
byte _len;
unsigned long _seqShutter;
};
class Sony{
public:
Sony(int pin);
void shutterNow();
void shutterDelayed();
private:
int _pin;
int _pause;
byte _len;
unsigned long _seqShutter;
unsigned long _seqDelayed;
};
void wait(unsigned long time)
{
time += micros();
while(micros() < = time)
;
}
void high(unsigned long time, int pause, int pinLED)
{
time += micros();
while(micros() <= time)
{
digitalWrite(pinLED,HIGH);
delayMicroseconds(pause);
digitalWrite(pinLED,LOW);
delayMicroseconds(pause);
}
}
Canon::Canon(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
_pause = 11; //(1000/33/2)-4;//frequency of 33khz use 40 for 40khz
}
void Canon::shutterNow()
{
cli(); //turns off interrupts
high(480,_pause,_pin);
wait(7330);
high(480,_pause,_pin);
sei(); //turns interrupts back on
}
void Canon::shutterDelayed()
{
cli(); //turns off interrupts
for(int i=0; i<16; i++) {
digitalWrite(_pin, HIGH);
delayMicroseconds(_pause);
digitalWrite(_pin, LOW);
delayMicroseconds(_pause);
}
delayMicroseconds(5360);
for(int i=0; i<16; i++) {
digitalWrite(_pin, HIGH);
delayMicroseconds(_pause);
digitalWrite(_pin, LOW);
delayMicroseconds(_pause);
}
sei(); //turns interrupts back on
}
CanonWLDC100::CanonWLDC100(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
_pause = 9; //(1000/38/2)-4;//frequency of 38khz use 40 for 40khz
_len = 32; //_seq is 32 bits long
// 5 3 8 D F 8 0 7
_seqShutter = 0x538DF807;//B0101|0011|1000|1101|1111|1000|0000|0111;
}
void CanonWLDC100::shutterNow()
{
unsigned long mask = 1UL <>= 1;
}
high(599,_pause,_pin);
sei(); //turns interrupts back on
}
Minolta::Minolta(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
_pause = 9; //(1000/38/2)-4;//frequency of 38khz use 40 for 40khz
//_len = 33; //sequence is 33 bits long but we will send out a
//standalone leading zero then 32 bits of the rest
//of the code, this avoids unsigned long longs
//this avoids about 600 bytes of code
// 0 5 8 A 7 0 5 0 1
//_seqShutter = 0x058A70501;//B0|0101|1000|1010|0111|0000|0101|0000|0001
//_seqDelayed = 0x058A70401;//B0|0101|1000|1010|0111|0000|0100|0000|0001
_len = 32; //sequence is 33 bits long but we will send out a leading 0
_seqShutter = 0x58A70501;//B0101|1000|1010|0111|0000|0101|0000|0001;
_seqDelayed = 0x58A70401;//B0101|1000|1010|0111|0000|0100|0000|0001;
}
void Minolta::shutterNow()
{
//unsigned long long mask = 1ULL < < (_len - 1); //64 bit mask
unsigned long mask = 1UL <>= 1;
}
sei(); //turns interrupts back on
}
void Minolta::shutterDelayed()
{
//unsigned long long mask = 1ULL < < (_len - 1); //64 bit mask
unsigned long mask = 1UL <>= 1;
}
sei(); //turns interrupts back on
}
Nikon::Nikon(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
_pause = 8; //(1000/40/2)-4;//frequency of 38khz use 40 for 40khz
}
void Nikon::shutterNow()
{
cli(); //turns off interrupts
high(2000,_pause,_pin);
wait(27830);
high(390,_pause,_pin);
wait(1580);
high(410,_pause,_pin);
wait(3580);
high(400,_pause,_pin);
sei(); //turns interrupts back on
}
Olympus::Olympus(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
_pause = 8; //(1000/40/2)-4;//frequency of 38khz use 40 for 40khz
_len = 32;
// 6 1 D E 8 0 7 F
_seqShutter = 0x61DE807F;//B0110|0001|1101|1100|1000|0000|0111|1111;
_seqZoomIn = 0x61DEC03F;//B0110|0001|1101|1100|1100|0000|0011|1111;
_seqZoomOut = 0x61DE40BF;//B0110|0001|1101|1100|0100|0000|1011|1111;
}
void Olympus::shutterNow()
{
unsigned long mask = 1UL <>= 1;
}
sei(); //turns interrupts back on
}
void Olympus::zoomIn(unsigned int pct)
{
unsigned long mask = 1UL <>= 1;
}
wait(40000);
if (pct>100) pct = 100;
pct = (pct*52)/100 + 1;
for (int i=1; i
{
high(9000,_pause,_pin);
wait(2000);
high(500,_pause,_pin);
wait(96000);
}
sei(); //turns interrupts back on
}
void Olympus::zoomOut(unsigned int pct)
{
unsigned long mask = 1UL <>= 1;
}
wait(40000);
if (pct>100) pct = 100;
pct = (pct*70)/100 + 1;
for (int i=1; i
high(9000,_pause,_pin);
wait(2000);
high(500,_pause,_pin);
wait(96000);
}
sei(); //turns interrupts back on
}
Pentax::Pentax(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
_pause = 9; //(1000/38/2)-4;//frequency of 38khz use 40 for 40khz
}
void Pentax::shutterNow()
{
cli(); //turns off interrupts
high(13000,_pause,_pin);
wait(3000);
for (int i=0;i<7;i++){
high(1000,_pause,_pin);
wait(1000);
}
sei(); //turns interrupts back on
}
Sony::Sony(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
_pause = 8; //(1000/40/2)-4;//frequency of 38khz use 40 for 40khz
_len = 20;
// 7 4 7 8 F
_seqShutter = 0x7478F; //B1011|0100|1011|1000|1111;
_seqDelayed = 0xEC78F; //B1110|1100|1011|1000|1111;
}
void Sony::shutterNow()
{
unsigned long mask = 1UL << (_len - 1); //32 bit mask
cli(); //turns off interrupts
for (int j=0;j>= 1;
}
wait(10000);
}
sei(); //turns interrupts back on
}
void Sony::shutterDelayed()
{
unsigned long mask = 1UL < < (_len - 1); //32 bit mask
cli(); //turns off interrupts
for (int j=0;j>= 1;
}
wait(10000);
}
sei(); //turns interrupts back on
}
Hello Don,
I’m very impressed of your work! A big thank you to you!
I hope I will understand your changes. In a few weeks I hopefully will have more time to implement all the work from you and the others. Your code will lead to ver.2 of the library.
Have a nice Day!
Sebastian
Sebastion,
The code does seem destroyed. I don’t know how to upload/attach the files or create a code box.
I am happy to share if I can figure out how. I wouldn’t mind mailing the code to someone
for posting.
The code has been destroyed by html encoding (less than character is now <)
How can we get working code?
Thanks for the hint. I have changed the endcoding, now it looks ok.
The code looks better but I guess things like
for (int j=0;j>= 1;
}
will “confuse any compiler”?
( Inside method: void Sony::shutterDelayed() )
Could Don have a look at it?
The posted code was destroyed by the html formatting. I have just send my original files to Sebastian for posting.
Sorry for the confusion.
don
mega tolle idee!
leider muss ich weiterhin einen servo an meine kamera binden…
könnte man den code denn so abändern, dass das ganze auch mit meiner fuji s2000 hd funktioniert?! kann ich das selbst machen und falls dem so ist, woher hast du die schaltzeiten bekommen?!
lg j
Hallo,
das kannst Du natürliuch! Ich habe oben im Text geschrieben woher ich all die Timings bekommen habe. Außerdem hat RIm am 18. Juli einen Link gepostet in dem es unzählige weitere Timings gibt.
Wenn Du etwas zu Fuji gefunden hast, würde ich mich freuen das in die Bibliothek einbauen zu können.
Gruß
Sebastian
hallo
ich hab lange nach soetwas gesucht. DANKE !!!!
Funktioniert super mit meiner Sony alpha 380.
Weiter so …
Danke, das hört man gern.
For my Canon EOS ti1 (d500 in Europe) I noticed that you need to send only one signal for it to work. If you do a simple if condition with a pushbutton for exemple it will not work because the controller will send many signals to your camera. A simple delay fix the issue.
This will NOT work:
void loop() { if (digitalRead(pushBUTTON1) == HIGH) { t1i.shutterNow(); } }This will work:
void loop() { if (digitalRead(pushBUTTON1) == HIGH) { t1i.shutterNow(); delay(1000); } }I just can’t get to work with a push button, please Daniel can you help me posting a schemating? I’m new withthese things..thanks a lot.
P.S: I have a Canon D550
Hi Sebastian,
cooles Projekt. Ich habs nachgebaut und mit einer regulären LED ausprobiert ob es funzt. Bei der IR Led hab ich mit meinem Handy geschaut und gesehen, aha, es pulst. Jedoch will meine Kamera EOS 350D nicht auslösen, woran könnte es liegen ??
Denn hier im Thread hat ja auch schon jemand es mit einer 350D geschafft. Ich weiss nicht was ich falssch gemacht haben könnte. Vielen Dank für Hilfe.
Die Antwort ist ganz unten. gepostet @28. Dezember 2010 um 12:05
Man muss die Kamera natürlich drauf vorbereiten das Infrarot Signale kommen. Funktioniert 1a. Vielen Dank!!!!!
Super Projekt. Ich hab eine IR-LED aus einer alten Medion-Fernbedienung genommen, einen 1000Ohm Widerstand und es ging fast problemlos. Ich musste erst den IR-Empfänger auf der Canon 450D suchen (ist das kleine schwarze Fenster im Griff unter dem Auslöser). Die Reichweite beträgt über 20cm.
Gruß Gunnar
Just tried your sketch on my Sony Alpha 580 and it works like a charm.
Great work. I now have to work on a way to have different intervals and be able to switch. Also have it battery powered. Will use it for time lapse photography.
cheers
Greetings! I’ve just written and tested class CanonWLDC100 for you library, which adds possibility to use IR transmitter for Canon WL-DC100 remote for Canon next cameras: S60/S70/S1IS/G1/G2/G3/G5/G6/Pro90/Pro1
class CanonWLDC100{ public: CanonWLDC100(int pin); void shutterNow(); private: int _pin; int _freq; }; CanonWLDC100::CanonWLDC100(int pin) { pinMode(pin, OUTPUT); _pin = pin; _freq = 38; } void CanonWLDC100::shutterNow() { bool _seq[] = { 0,1,0,1,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1 }; high(9042,_freq,_pin); wait(4379); for (int i=0;i<sizeof(_seq);i++){ if (_seq[i]==0){ high(612,_freq,_pin); wait(512); } else{ high(612,_freq,_pin); wait(1621); } }; high(599,_freq,_pin); }using:
CanonWLDC100 D3(8); void setup(){ } void loop(){ D3.shutterNow(); delay(5000); }Thanks for the library!
ImaRH.
Hello ImaRH,
sorry for the late response, I was in holiday.
Thank you for your work! I will implement your code in the library.
Best Regards
Sebastian
Hi! Great library! I have canon 5Dm2 and it work well. But my another old non DSLR camera does not work. It has anower remote WL-DC100 and another protocol to work. Here is description for LIRC project http://lirc.sourceforge.net/remotes/canon/WL-DC100.
Can you add support for this remote. It suitebal for canon S60/S70/S1IS/G1/G2/G3/G5/G6/Pro90/Pro1 cameras.
Big thanks!
Hello RIm,
that is a very impressive list! So the library could offer the support for a lot of new devices…
Thank you!
Sebastian
Hey,
hab die Bibliothek gerade mit meiner Nikon D40 ausprobiert; funktioniert super, vielen Dank!
Alex
Hello, so I admire your work.
is fantastic.
I have a problem I can not load the code in my arduino
Hello,
do you have still the upload problem? Can you upload other code?
Sebastian
Sorry if I answer only now, but I’ve been very busy with work.
Yes I still have problems with upload.
What can I do?
Please give me your email address
Hello, I have the same type of error.
I send you the link where I put a photo of the error.
thanks Joseph
http://www.nikonclub.it/forum/index.php?showtopic=191371&pid=2568348&st=75&#entry2568348
Hello Joseph and Giuseppe,
looks like the Arduino software didn’t find the library. Are you copied the files for the library to the right place?
Best regards
Sebastian
Now it works well, but I have almost a second delay on the shutter of my Nikon D50.
you can do something to eliminate this delay?
thanks joseph
Hello Joseph,
the camera should take a picture instantly. Maybe you use a delay mode at your camera?
Sebastian
I’ve just managed to get my Canon XSi (EOS 450d) shooting remotely with this code, but I would like to point out one little thing with IR led’s, for those who are having problems with getting their rig to work. At least in the case of the IR LED I used, you basically have to aim the head of the LED directly at the IR sensor on your camera. If it is orthogonal to it, it will probably not trigger the shutter. Apparently my Arduino was sending out signals correctly all this time while I was tinkering with the timings thinking something was off. I can’t speak for other cameras but on the XSi the remote sensor sits directly below the shutter button. Also, I used a 850nm IR LED over a 100 Ohm resistor.
Anyways, I’m really glad I found this little library, it has made my evening. Danke schoen!!
Bitte schön
Hallo Sebastian,
tolle Arbeit, klappt einwandfrei, vielen Dank. Leider muss ich mit meiner EOS350 sehr nah (ca. 50 cm) zur LED ran. Bei meinem nächsten Stadtausflug besorge ich mir den Transistor und versuchs mal damit.
Hello Sebastian,
I recently tried it with my Nikon D3 but it does not work
Maybe there is a bit different sequence for this camera. (I have a standard IR remote control too and this one works well.) Sorry.
i’m a student in informatic engineering in Italy,
i’d like to implement something (just a little intervalometer) in hardware, with VHDL language.
it’s a project for university, NON COMMERCIAL.
i’d like to talk a bit with you…
where did you found documentation or datasheet to know how “talk” to camera and timing?
could you help me? please…
thanks giacomo
Ciao Giacomo,
I listed all my sources in this documentation. Mostly people measured there IR transmitter and publicise it in the web. But feel free to contact me for more information.
Regards
Sebastian
Thank you so much, 5 minuts to have the setup with a push button, and working gr8 !!
I got it working with a Nikon D80, my Nikon P7000 just shows the IR signal in the live preview but other than that does nothing…
Cheers,
Crischan
Hallo Sebastian,
Ich kan bestetigen das deine “multi camera ir control” functioniert mit meine alte Minolta F300 camera.
Ich habe doch probleme um die intensitat meine IR led zu optimieren. Ich habe schaltung 1 gebraucht doch solte schaltung 2 ausprobieren wollen als ich wusste welche transistor ich gebrauchen kan?
Schone grusse aus Holland!
Hans
Hallo Hans,
das ist ja super, dass Minolta auch funktioniert!
Du kannst einen ganz normalen NPN benutzen, z.Bsp. diesen hier.
Viel Erfolg noch!
Sebastian
This is SO awesome. I was planning to do this a long time ago. Now I just soldered of the IR LED fra an old SONY remote, downloaded your code, and 5 mins later it works! Love it. Arduino+Sebastian <3
thx (._.)
Hello Sebastian. Прошу прощение, что не пишу на вашем языке. К сожалению я не знаю не Немецкий и не Английский. Но обязан сказать вам, что очень вам благодарен. Благодаря вам я смог реализовать свою идею управление Sony NEX5 через ИК-порт с помощью Arduino Всё очень хорошо работает: http://www.youtube.com/watch?v=-Af50zDC9xU И теперь я смогу собрать ещё один Kap Rig: http://kitevlad.ucoz.ru/forum/14-43-2603-16-1298625439 с применением ИК-дида.
Sebastian, огромное вам спасибо!
Google ->>
“Hallo Sebastian. Ich schreibe nicht in Ihrer Sprache entschuldigen. Leider weiß ich nicht, kein Deutsch und kein Englisch. Aber muss Ihnen sagen, dass sehr dankbar. Dank euch konnte ich seine Idee der Verwaltung Sony NEX5 realisieren Infrarot mit Arduino Alles funktioniert sehr gut: http://www.youtube.com/watch?v=-Af50zDC9xU Und jetzt kann ich sammeln anderen Kap Rig: http://kitevlad.ucoz.ru/forum/14-43-2603-16-1298625439 mit Infrarot Dida.
Sebastian, ich danke Ihnen sehr!”
Hallo!
Das ist ein tolles Projekt! Ich hoffe irgendwann meine Kamera auch mal an meinen 8m² Rokkaku hängen zu können…
A very nice project! I hope I can put my camera once to my 8m² Rokkaku…
Это большой проект! Я надеюсь, что в какой-то момент моя камера иногда может висеть на моем 8 м ² Rokkaku.
Gruß
Sebastian
Hey Seb, just wanted to say a big thanks! This works perfectly on my Nikon D90, and has saved me so much time! Cheers!
Thank You!
Hallo Sebastian,
bin gerade über deine Seite gestolpert weil ich genau nach einer Möglichkeit suche meine Nikon CoolPix P6000 mit Intervalen auszulösen die kleiner sind als ihre eigenen.
Habe die Bibliothek getestet und was soll ich sagen sie funktioniert
aber leider nur an meiner Nikon D90 meine CoolPix P6000 interesiert das Signal kein Stück
habe auch mal Andere Bibliotheken von vonRoth getestet D90 “ja” P6000 “nein”
Was ich nicht verstehe ich kann beide mit der originalen ML-L3 auslösen ich dachte Nikon benutzt den gleichen Code.
Kennst du das Problem und hast eine Lösung parat?
Gruss Marcus
Hallo Marcus,
ich kenne das Problem nicht & leider habe ich auch keine Lösung. Ich könnte mir höchstens vorstellen, dass evtl. der originale Auslöser zwei unterschiedliche Signale sendet… Falls ich noch was raus finden sollte sage ich Bescheid. Wenn Du es noch hin bekommst bitte auch!
Gruß
Sebastian
Sorry found teh problem…I hadn’t downloaded to the Arduino Library folder..
JohnW
Many thanks for your good work (and all those that have assisted).
I am a newcomer and I find that when I try and use the Canon example Arduino comes up with the error message …………….’Canon’ does not name a type.
I have simply opened up the Canon example from the Arduino Sketchbook. I am obviously doing something WRONG !!
Thanks again John W
Yes, works great with my Canon EOS 350D.
I’ve took the IR LED from an old Philipps VCR Remote and uses a 220 Ohm resistor as indicated above.
great work!
Thanks a lot for the library! Combined it with a PIR motion sensor to create a motion controlled shutter release on my Nikon.
Tried it with the Sony A330 and it didn’t work. Tried a each of the supplied sketches. Any thoughts?
Hello Sean,
I didn’t own a Sony camera. But Walter, a bit lower, say it works.
Sebastian
Hello Sean,
Moritz also say it works.
The camera must be in the romote control state.
Walter
Hallo Sebastian,
genau wie bei Thorsten funktionierts bei mir auch nicht, in meinem Fall mit einer Canon 550D.
Funktion der LED ist gegeben. Anscheinend ist hier eine andere Sequenz gefordert. Der für diese Kamera angebotene Fernauslöser ist auch für folgende verwendbar (siehe http://www.riccos-camera.de/product_info.php/products_id/7529?osCsid=43850bbf0326f1a4aadcdd383ce103c2)
* Canon EOS 60D
* Canon EOS 550D
* Canon EOS 450D
* Canon EOS 500D
* Canon EOS 7D
* Canon EOS 5D Mark II
Auf gleicher Internetseite gibt es auch eine Angabe für welche Kameras die RC-1 Fernbedienung funktioniert.
Vielleicht ist hier jemand unterwegs, der die RC-6 Sequenz kennt oder ausmessen kann.
Gruß Reinhard
Reinhard
Moin Richard,
ein ähnliches Problem hatte ja auch Michal schon am Anfang mit seiner EOS400… Ich hab leider keine Kamera zu testen. Werde mich aber mal umhören ob es da unterschiedliche Timings gibt.
Mit einer EOS350D funktioniert die Bibliothek aber einwandfrei.
Gruß
Sebastian
Hallo,
Erstmal Danke für dein Projekt!
Ich habs gerade mit meiner EOS 550 ausprobiert und klappt ohne Probleme.
Grüße
Daniel
Hallo,
warum nimmst Du bei der Treiberschaltung “optional” eine Emitterschaltung die hat doch eine 180°Phasendrehung (Inverter) und ist als Spannungsverstärker vorgesehen, Du willst doch den Ausgang entlasten da eignet sich die Kollektorschaltung besser. Ansonsten scheint mir der Arbeitspunkt mit 2×220 Ohm etwas willkürlich…
Bei den Nikons kann man doch auch den Focus einstellen, das wär doch auch an Sich ganz nett.
Wenn man jetzt noch über einen Optokoppler ein Blitzgerät abfeuern könnte ware das ganz cool.
Horst
Hallo Horst,
bei dem ersten Teil Deiner Frage würde ich mir gern etwas Zeit nehmen. Woher hast Du die 2×220Ω? Von den Farbringen der Verkabelung? Das ist nur ein Serviervorschlag
Der zweite Teil fällt mir schon leichter. Ich kenne keine Nikon DSLR deren Fokus ich über IR steuern könnte.
Gruß
Sebastian
Hallo Horst
Emitterschaltung und Collektorschaltung sind Schaltungen in denen der Transistor im Proportionalbereich verwendet wird und die Ausgangsspannung proportional der Eingagsspannung ist.
Die Schaltung die Sebastian verwendet ist eine Treiberschaltung bei der der Basisstrom den Transistor voll durchschaltet und darum die Collektor – Emittorspannung klein ist. Der Transistor geht in Sättigung und der Collektorstrom ist durch die Last (LED mit Vorwiderstand) begrenzt und nicht durch den Transistor. Diese Schaltung negiert das Signal nicht. Die LED leuchtet, wenn Spannung auf die Basis gegeben wird.
http://www.elektronik-kompendium.de/sites/slt/0208031.htm
http://www.elektronik-kompendium.de/sites/slt/1201131.htm
Der Vorwiderstand an der Katode der LED wird so gewählt, daß der Strom durch die LED auf einen Werte begrenzt wird daß die Verlustleistung den maximal zulässigen Wert der LED nicht überschreitet. Kurzzeitige Ansteuerung mit großen Pausen erlauben einen höheren Strom.
Der Strom errechnet sich aus dem Spannungabfall über den Widerstand und den gewälten LED-Strom. Der Spannungabfall über die IR-Led ist ca 1,4V. Bei 220 Ohm fließen ca 16mA. Man könnte auch Widerstands-Werte bis hinunter zu 10 Ohm verwenden. Dann fließen ca 350mA und die Reichweite erhöht sich. Die meisten IR-LEDs verkraften diesen Wert kurzzeitig. Eine Kontrolle im Datenblatt der LED schadet aber nicht.
Der Widerstand an der Basis ist zum Schutz des Arduino-Ausganges. Der Wert ist nicht kritisch. Es muß nur sichergestellt werden, daß der Bassistrom groß genug ist, um den Transistor voll durchzusteuern, da ansonsten die Verlustleistung des Transistors zu groß wird und unter Umständen der Transistor thermisch zerstört würde.
Viele Grüße Uwe
Hello Sebastian,
I spent more time today experimenting with the Olympus pulse train, and found the allowable limits for each pulse and null by trial and error. I also added two functions, zoomin() and zoomout(), to control the camera’s zoom function. The functions are passed an unsigned integer value which represents the percentage of zoom movement requested. This value determines the number of times the trailing pulse train is repeated.
The code for zoomout is identical except for the bool sequence and the percentage coversion factor, which is 70 rather than 52.
Here is the code:
void Olympus::shutterNow() { bool _seq[] = {0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1}; high(9000,_freq,_pin); // 7100-? allowable wait(4500); // 4000-5200 high(500,_freq,_pin); // 380-850 for (int i=0;i<sizeof(_seq);i++){ if (_seq[i]==0){ wait(500); // 300-700 high(500,_freq,_pin); // 380-850 } else{ wait(1500); // 1400-1900 high(500,_freq,_pin); // 380-850 } } } void Olympus::zoomin(unsigned int pct) { bool _seq[] = { 0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1 }; high(9000,_freq,_pin); wait(4500); high(500,_freq,_pin); for (int i=0;i<sizeof(_seq);i++){ if (_seq[i]==0){ wait(500); high(500,_freq,_pin); } else{ wait(1500); high(500,_freq,_pin); } }; wait(40000); if (pct>100) pct = 100; pct = (pct*52)/100 + 1; for (int i=1; i<pct; i++) { high(9000,_freq,_pin); wait(2000); high(500,_freq,_pin); wait(96000); } } void Olympus::zoomout(unsigned int pct) { bool _seq[] = {0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1 }; high(9000,_freq,_pin); // wait(4500); high(500,_freq,_pin); for (int i=0;i<sizeof(_seq);i++){ if (_seq[i]==0){ wait(500); high(500,_freq,_pin); } else{ wait(1500); high(500,_freq,_pin); } }; wait(40000); if (pct>100) pct = 100; pct = (pct*70)/100 + 1; for (int i=1; i<pct; i++) { high(9000,_freq,_pin); wait(2000); high(500,_freq,_pin); wait(96000); } }Regards,
Steve
The program failed tests with an Olympus C-750. I wrote a quick program to trap pulse train sequences from an Olympus RM-1 and captured the following sequence (values are in microseconds):
+8976,-4376,+624,-488,+600,-1612,+628,-1584,+624,-488,+628,-488,+600,
-488,+624,-488,+628,-1588,+620,-1612,+600,-1608,+624,-484,+596,-1612,+628,-1588,
+620,-1612,+600,-492,+624,-488,+628,-1580,+620,-488,+624,-492,+600,-488,+624,-48
8,+628,-492,+592,-488,+628,-488,+628,-484,+600,-1608,+620,-1588,+628,-1608,+600,
-1612,+624,-1584,+624,-1608,+604,-1612,+620,-39444,+8980,-2160,+624,-95152,+8952
,-2164,+620,-95160,+8972,-2164,+596,-95156,…
Where “+” indicates a pulse, and “-” indicates null. The +89xx,-21xx,+6xx,-95xxx at the end is repeated as long as the remote’s shutter button is pressed.
The major differences between this pulse train and the program’s pulse train are:
1. The start pulse is almost 9 ms, rather than 3.8 ms long. This is probably the crucial difference.
2. The “zero” nulls are slightly less than 500 us.
3. The “ones” nulls are 1600 us long, rather than 1500 us.
4. The pulses between the nulls are 600 us, rather than 500.
I modified the multiCameraIrControl.cpp program as follows, with the literal values from the test results, and was successful in triggering the camera:
void Olympus::shutterNow() { bool _seq[] = { 0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1 }; high(8972,_freq,_pin); wait(4384); high(624,_freq,_pin); for (int i=0;i<sizeof(_seq);i++){ if (_seq[i]==0){ wait(488); high(600,_freq,_pin); } else{ wait(1600); high(600,_freq,_pin); } }; }Thank you for sharing this program. I am constructing an Arduino-based camera controller, and this has been very helpful!
- Steve
Hello Steve,
thank you for your detailed and helpful comment! I will update the library soon.
Best regards
Sebastian
Hi,
also so ganz hab ich das hier noch nicht durchschaut:
Es gibt drei Files:
- unter Examples:Canon.pde
- multicameraircontrol.h
- multicameraircontrol.cpp
Öffnen kann ich nur die pde datei, die anderen beiden nur mit einem Editor.
Wie genau muss ich die denn nun verknüpfen oder kopieren?
Ich möchte nur mit meiner IR LED meine canon 450d ansprechen und auslösen.
Freu mich über Hilfe
Gruß
Hallo Thorsten,
im Grunde sehr einfach, Du hast nichts mit den einzelnen Dateien zu tun. Library installieren und Beispiel laden. Folgend aber die einzelnen Schritte:
1. Die .zip Datei herunter laden
, jetzt sollte im Intervall Bilder aufgenommen werden
2. den Ordner “multiCameraIrControl” in den libraries Ordner entpacken. Unter Windows meist: Eigene Dateien/Arduino/libraries
3. Arduino (die IDE) neu starten
4. in Arduino, File > Examples > multiCameraIrControl > Canon, aufrufen
5. die Sketch hochladen
6. IR LED mit Vorwiderstand anschließen
7. die Kamera in den Fernauslöser Modus schalten
8. Fertig
Bei Fragen bitte nochmal melden, natürlich gern auch wenn es funktioniert hat!
Gruß
Sebastian
Hallo Sebastian,
Sketch konnte ich jetzt so problemlos hochladen.
Meine 450d wird allerdings nicht ausgelöst. => sollte aber damit funtionieren oder?
- Cam ist im Selbst/Fernauslösermodus
- IR funktioniert, hatte ich durch den Sucher meiner Kompakten getestet (Mit dem Blink Sketch, hier sind die Zeiten scheinbar so kurz, dass ich nix sehe)
- Kanns am falschen WIderstand liegen? Dass die IR beispielsweise zu schwach ist weil der Widerstand zu hoch? Problem ist, dass ich den genauen OHM Wert nicht berechnen kann, da ich die genauen V und mA Werte nicht von der Reichelt site finde, diese IR LED hab ich : http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A54;GROUPID=3045;ARTICLE=6832;START=0;SORT=artnr;OFFSET=16;SID=314gkqFawQAR8AAAywayYf9390196e81ea05f2096e628fc5497f4
Vielleicht kannst mir ja helfen
Gruß
Thorsten
Moin Thorsten,
das Datenblatt findest Du auf der von Dir genannten Seite unter Datenblatt.
Dort steht, dass die typische Spannung 5V & 150mA beträgt. Wenn Du die IR LED ohne Transistor anschließen möchtest, würde ich einen möglichst kleinen Vorwiderstand von nicht weniger als 100Ω verwenden um den AtMega nicht zu überlasten.
Wenn Du aber schon sagst, dass Du die LED in Deiner Kompakten sehen kannst ist eigentlich alles OK. Du kannst noch versuchen die LED direkt vor den Empfänger zu halten. Ansonsten überprüfe noch mal ob Du im richtigen Modus bist. Ich habe selbst keine Canon, meine aber zu wissen, dass es einen Unterschied zwischen Selbstauslöser & Fernauslöser gibt.
Viel Erfolg & gern wieder melden.
Gruß
Sebastian
Hi,
ich kriegs leider nicht hin. Hab leider keinen 100ohm Widerstand, aber habs mit 68 und 240 und ohne getestet. Das IR Signal seh ich nur bei BLINK, ich vermute in deinem Sketch ist das nicht sichtbar weil sehr kurze Zeiten???
Hab auch den Sketch mal geändert (Canon D5(13); un Canon D5(9); => versteh das eh nicht, deine grafik legt die LED ja an Ausgang 9 an, dein Sketch an 13) egal, beides geht nicht.
Vermutlich ist mein Empfänger an der Cam auch defekt, kann das leider nicht testen.
Ärgerlich, hätt das so gern mal ausprobiert.
Dir jedenfalls danke. Und falls hier noch jemand ist, der die 450d hat und mir nen Tipp geben kann…wäre nett!
Gruß
Hallo Thorsten,
mmh hier noch in paar Gedanken:
Das war’s jetzt leider erst mal mit meinen Ideen, sorry.
Gruß
Sebastian
Hallo Sebastian,
also ich habe jetzt mehrere IR LEDs getestet mit verschiedenen Wellenlängen. Mit keiner hat es geklappt.
Die IR LED seh ich mit meinem iPhone ganz schwach alle 5 sek blinken, also da sollte alles stimmen.
Es kann also nur daran liegen, dass die Frequez nicht für die 450d geeignet ist oder dass tatsächlich mein Empfänger defekt ist.
Sehr schade für mich
Viele Grüße
Thorsten
Hi Thorsten,
Micha (ganz unten) und Reinhard (02.02.11) haben ähnliche Probleme. Mit einer EOS350D funktioniert die Library allerdings offensicht. Vermutlich wurde bei den aktuellen Modellen am Timing was geändert… Mal sehen ob ich das irgendwie noch in die Bibliothek eingebaut bekomme…
Sebastian
Hallo Sebastian,
ich habe (weil Anfänger) die Sketch erst mal nicht zum laufen gebracht. Jetzt funktionierts. Fehler war, dass MultiCameraIrControl.h in dem selben Verzeichnis stehen musste wie Olympus.pde. Ich benutze eine Olympus E 510.
Zur Zeit versuche ich das Programm abzuändern um timelapse-Fotografien zu machen. Gedacht habe ich mir, über einen Taster von 1 bis 5 zu zählen und dann dadurch fünf verschiedene Zeitintervalle auszulösen. Das bekomme ich aber nicht hin. Kann jemand helfen, wo ich z.B. die Zeilen aus dem Beispiel ButtonStateChange einfügen muss.
Danke und Gruß
Harald
Hallo Harald,
wie die Library zu installieren ist, sollte ich vielleicht nochmal im Text beschreiben. Ansonsten daran halten wie ich es Thorsten am 22.01.11 weiter unten bereits sehr ausführlich erklärt habe.
Heut hab ich leider keine Zeit für die weitere Beantwortung Deiner Frage, melde mich aber wieder.
Gruß
Sebastian
thnx for the library
Tested on Pentax K200D, Pentax Kx and Pentax K-7. Works on these cameras.
Hello Andries,
nice to hear that! Thanks for your feedback
.
Best regards
Sebastian
Hi Andries,
I know your post is quite old, but did you use the Pentax example code that Sebastian gave in the library to test your K-x? I’ve been trying to hook up my K-x, but can’t get it to work. I just started using Arduino and I’m new to coding. Any help would be greatly appriciated!
Thanks,
Kim
I got it. Thanks Sebastian for this wonderful library! And Andries for letting me know it’s compatible with Pentax K-x!
Hello Kim,
nice to hear that you got it work. But’s always good when you share the reason too.
Sebastian
mhm vllt mach ich ja was falsch aber ich bekomm da immer die fehler
C:\…\arduino-0022\libraries\multiCameraIrControl\multiCameraIrControl.cpp: In member function ‘void Sony::shotDelayed()’:
C:\…\arduino-0022\libraries\multiCameraIrControl\multiCameraIrControl.cpp:176: error: ‘_seq’ was not declared in this scope
Hallo Moritz,
es gab tatsächlich einen Fehler in der Library. In der jetzt aktuellen Version 1.4 ist dieser behoben. Achtung! Ich habe zusätzlich den Namen der Funktionen von shotNow() auf shutterNow() geändert.
Viel Spaß!
Sebastian
Danke für die schnelle Antwort, jetzt funktioniert alles super! gute Arbeit, das Ganze!
geht dies auch mit einer Sony alpha 100 ohne Zubehör, oder brauche ich noch ein Empfänger?
Hallo Toni,
laut dieser Seite, können nur die 700 und 900 ohne weitere Hardware per IR ausgelöst werden. Im Zweifelsfall im Handbuch nachsehen ob die Kamera einen IR Empfänger hat.
Gruß
Sebastian
Hier der funktionierende Code für Sony :
void Sony::shotNow() { bool _seq[] = { 1,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,1,1,1,1 }; for (int j=0;j<3;j++) { // muß 3mal ausgeführt werden high(2320,_freq,_pin); wait(650); // Pause hat gefehlt for (int i=0;i<sizeof(_seq);i++){ if (_seq[i]==0){ high(575,_freq,_pin); wait(650); } else{ high(1175,_freq,_pin); wait(650); } } delay(10); // Verzögerung zwischen den Commands } }Vielen Dank Walter! Werde die Library schnellstmöglich aktualisieren.
Hallo Walter,
nochmal herzlichen Dank! Ich habe die Timings angepasst und die Version 1.3 zum download bereit gestellt.
Kannst Du die Funktionstüchtigkeit bitte nochmal bestätigen.
Danke & Gruß,
Sebastian
arbeitet einwandfrei.
Gruß
Walter
Hi,
I was trying to get my dSLR (Canon EOS400) work with this library, as a start point for the bigger project, but.. it didn’t work (I’ve tested) minimal version now. What is your suggestion for R1 resistor? I’ve tried with 100Ohm. I don’t know why it’s not working, but I will try to make it work. I’ve to study your library to check. I’ve tested IR led, it’s working fine (video + slower blinking, second on, second off, pin 13). Is there any setup in Camera which should be done..? Thank you in advance.
Hello Michal,
you have to switch into the RC mode by using the timer button(the top right of the screen). Than you should see a RC symbol on the screen.
The value of R1 depends on your LED. But if your LED has a voltage drop of 1.5V and a current of less than 50mA, 100 Ohm is a good choice.
Please let me know if you get it work.