Go Down

Topic: Canon DSLR time lapse controller with adjustable delay on LCD (Read 5807 times) previous topic - next topic


That is very interesting! I went with an IR LED that functions much like a remote to trigger the shutter when needed. I set the camera to BULB mode and the shutter speed depends on how fast the LED sequences are triggered ( there is an OPEN sequence and a CLOSE sequence). So my shutter speed depends on the time between the OPEN and CLOSE sequence.

Another idea for your LCD display, it might also be helpful to read up on some tutorials involving displays and check the playground for projects that need similar types of control and read their code. 


I have seen some examples using IR control they look pretty cool! Mine will be good enough with a cable control though as the rx end will be mounted on the tripod :)

I have just found the following example, using a 10k pot as the analogue input. I guess it would be possible to display the time on an LCD with some tweaking? I have set up LCD's before but I'm not sure how I could adapt this code yet. Also I would be nicer if select the time with buttons instead of a pot for more precise increments  :smiley-roll-blue:

Code: [Select]
DSLR Intervalometer

//setup variables
int sensorPin = A0;
int sensorValue = 0;
int lapsePeriod = 0;
int x = 0;

void setup() {
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
    //determines how many seconds it should wait between pictures.
    sensorValue = analogRead(sensorPin);
    if (sensorValue >= 20) {
      lapsePeriod = 10 + (sensorValue / 20);
    else {
       lapsePeriod = 10;

  //blink 3 times to indicate it has started
  digitalWrite(7, HIGH);
  digitalWrite(7, LOW);
  digitalWrite(7, HIGH);
  digitalWrite(7, LOW);
  digitalWrite(7, HIGH);
  digitalWrite(7, LOW);

void loop() {
  //waits however many seconds you have chosen
  while (x < lapsePeriod) {
  x = 0;
  //focus and blink focus LED for one second
  digitalWrite(3, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(3, LOW);
  digitalWrite(8, LOW);
  //shoot and blink shoot LED for one second
  digitalWrite(2, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(2, LOW);
  digitalWrite(7, LOW);



Can anyone offer some advice on the programming side for my project?

Many thanks


Have you seen glacialwanderer's controller project?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.
I speak for myself, not Arduino.


I have had a look through all the camera axe stuff, but unfortunately its a bit to in depth for me and I struggle to follow most of the code  :smiley-slim:
I'm sure the outcome that I want will have a fairlys simple solution but I'm really struggling  :smiley-eek:


You can hook the digital output from Uno directly to the shutter pin on a newer Canon DSLR.  It's high impedance, little current flows when your short it to ground.  Just be aware of polarity.


Have you seen the photoduino solution at http://www.photoduino.com/?
i think that the original project is in Spanish, but the english translation should be good enough.

I have this idea in my project cue, so I'm glad to collaborate.

Lets split the solution into modules:

  • camera control: you should be ok with a pair of optocouplers, one for the autofocus and one for the shot. If you want to activate an external flash, a thyristor seems to be better

  • time setting: use a couple of switches or an encoder (it's not a pot, it's one of this devices that is replacing pots in radios and other devices, and clicks when you turn them)

  • a screen to show the configuration: being that any type of LCD

So you have to develop the code for the second and third part, and integrate everything.
If you have the hardware, I suggest you star playing and coding each part, before going to an integrated solution.
Hope this helps.

Go Up