![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Library for interfacing with Nikon DSLR through IR LED
DslrIr/DslrIr.h@1:bdc12143ced7, 2019-04-26 (annotated)
- 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?
User | Revision | Line number | New 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 |