![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Library for interfacing with Nikon DSLR through IR LED
DslrIr/DslrIr.cpp
- Committer:
- danbudanov
- Date:
- 2019-04-26
- Revision:
- 1:bdc12143ced7
- Parent:
- 0:e977f7ad0d48
File content as of revision 1:bdc12143ced7:
/** * MBED code functionality, including idea of modulating PWM signal, taken from * https://os.mbed.com/users/viswesr/code/DSLR_Camera_IR_Remote/ * As the given values did not work on the Nikon D3300, they were modified, * parameterized, and put into library form. * * Inspiration, default values, and an Arduino validation signal were taken from * https://bayesianadventures.wordpress.com/2013/08/09/nikon-ml-l3-ir-remote-hack/ * * Library instructions were taken from https://os.mbed.com/cookbook/Writing-a-Library */ #include "DslrIr.h" DslrIr::DslrIr(PinName pin) : _pin(pin) { _pin.period_us(PWM_PERIOD); // set PWM period for Carrier Frequency of 38.4 KHz _pin = 0; } void DslrIr::trigger() { _pin = ACTIVE_DUTY_CYCLE; wait_us(SEQ_ON_1_PERIOD); _pin = 0; wait_us(SEQ_OFF_1_PERIOD); _pin = ACTIVE_DUTY_CYCLE; wait_us(SEQ_ON_2_PERIOD); _pin = 0; wait_us(SEQ_OFF_2_PERIOD); _pin = ACTIVE_DUTY_CYCLE; wait_us(SEQ_ON_3_PERIOD); _pin = 0; wait_us(SEQ_OFF_3_PERIOD); _pin = ACTIVE_DUTY_CYCLE; wait_us(SEQ_ON_4_PERIOD); _pin = 0; wait_us(SEQ_OFF_4_PERIOD); // Repeat after 63.2 us _pin = ACTIVE_DUTY_CYCLE; _pin = ACTIVE_DUTY_CYCLE; wait_us(SEQ_ON_1_PERIOD); _pin = 0; wait_us(SEQ_OFF_1_PERIOD); _pin = ACTIVE_DUTY_CYCLE; wait_us(SEQ_ON_2_PERIOD); _pin = 0; wait_us(SEQ_OFF_2_PERIOD); _pin = ACTIVE_DUTY_CYCLE; wait_us(SEQ_ON_3_PERIOD); _pin = 0; wait_us(SEQ_OFF_3_PERIOD); _pin = ACTIVE_DUTY_CYCLE; wait_us(SEQ_ON_4_PERIOD); _pin = 0; }