Library for interfacing with Nikon DSLR through IR LED

Dependencies:   mbed

Committer:
danbudanov
Date:
Fri Apr 26 00:25:02 2019 +0000
Revision:
1:bdc12143ced7
Parent:
0:e977f7ad0d48
updated headings

Who changed what in which revision?

UserRevisionLine numberNew contents of line
danbudanov 1:bdc12143ced7 1 /**
danbudanov 1:bdc12143ced7 2 * MBED code functionality, including idea of modulating PWM signal, taken from
danbudanov 1:bdc12143ced7 3 * https://os.mbed.com/users/viswesr/code/DSLR_Camera_IR_Remote/
danbudanov 1:bdc12143ced7 4 * As the given values did not work on the Nikon D3300, they were modified,
danbudanov 1:bdc12143ced7 5 * parameterized, and put into library form.
danbudanov 1:bdc12143ced7 6 *
danbudanov 1:bdc12143ced7 7 * Inspiration, default values, and an Arduino validation signal were taken from
danbudanov 1:bdc12143ced7 8 * https://bayesianadventures.wordpress.com/2013/08/09/nikon-ml-l3-ir-remote-hack/
danbudanov 1:bdc12143ced7 9 *
danbudanov 1:bdc12143ced7 10 * Library instructions were taken from https://os.mbed.com/cookbook/Writing-a-Library
danbudanov 1:bdc12143ced7 11 */
danbudanov 1:bdc12143ced7 12
danbudanov 0:e977f7ad0d48 13 #ifndef DSLR_IR_H_
danbudanov 0:e977f7ad0d48 14 #define DSLR_IR_H_
danbudanov 0:e977f7ad0d48 15
danbudanov 0:e977f7ad0d48 16 #include "mbed.h"
danbudanov 0:e977f7ad0d48 17
danbudanov 0:e977f7ad0d48 18 class DslrIr {
danbudanov 0:e977f7ad0d48 19 public:
danbudanov 0:e977f7ad0d48 20 DslrIr(PinName pin);
danbudanov 0:e977f7ad0d48 21 void trigger();
danbudanov 0:e977f7ad0d48 22
danbudanov 0:e977f7ad0d48 23 private:
danbudanov 0:e977f7ad0d48 24 PwmOut _pin;
danbudanov 0:e977f7ad0d48 25
danbudanov 0:e977f7ad0d48 26 const static float ACTIVE_DUTY_CYCLE = 15.0/24;
danbudanov 0:e977f7ad0d48 27 const static int PWM_PERIOD = 25;
danbudanov 0:e977f7ad0d48 28 const static int SEQ_ON_1_PERIOD = 2160;
danbudanov 0:e977f7ad0d48 29 const static int SEQ_OFF_1_PERIOD = 27840;
danbudanov 0:e977f7ad0d48 30 const static int SEQ_ON_2_PERIOD = 550;
danbudanov 0:e977f7ad0d48 31 const static int SEQ_OFF_2_PERIOD = 1550;
danbudanov 0:e977f7ad0d48 32 const static int SEQ_ON_3_PERIOD = 550;
danbudanov 0:e977f7ad0d48 33 const static int SEQ_OFF_3_PERIOD = 3558;
danbudanov 0:e977f7ad0d48 34 const static int SEQ_ON_4_PERIOD = 550;
danbudanov 0:e977f7ad0d48 35 const static int SEQ_OFF_4_PERIOD = 63000;
danbudanov 0:e977f7ad0d48 36 const static int SEQ_ON_1_PERIOD2 = 2160;
danbudanov 0:e977f7ad0d48 37 const static int SEQ_OFF_1_PERIOD2 = 27850;
danbudanov 0:e977f7ad0d48 38 const static int SEQ_ON_2_PERIOD2 = 530;
danbudanov 0:e977f7ad0d48 39 const static int SEQ_OFF_2_PERIOD2 = 1550;
danbudanov 0:e977f7ad0d48 40 const static int SEQ_ON_3_PERIOD2 = 530;
danbudanov 0:e977f7ad0d48 41 const static int SEQ_OFF_3_PERIOD2 = 3550;
danbudanov 0:e977f7ad0d48 42 const static int SEQ_ON_4_PERIOD2 = 530;
danbudanov 0:e977f7ad0d48 43 };
danbudanov 0:e977f7ad0d48 44
danbudanov 0:e977f7ad0d48 45 #endif