Library for interfacing with Nikon DSLR through IR LED

Dependencies:   mbed

Committer:
danbudanov
Date:
Fri Apr 26 00:18:24 2019 +0000
Revision:
0:e977f7ad0d48
Child:
1:bdc12143ced7
controlling nikon DSLR via remote using a class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
danbudanov 0:e977f7ad0d48 1 #include "DslrIr.h"
danbudanov 0:e977f7ad0d48 2
danbudanov 0:e977f7ad0d48 3 DslrIr::DslrIr(PinName pin) : _pin(pin)
danbudanov 0:e977f7ad0d48 4 {
danbudanov 0:e977f7ad0d48 5 _pin.period_us(PWM_PERIOD); // set PWM period for Carrier Frequency of 38.4 KHz
danbudanov 0:e977f7ad0d48 6 _pin = 0;
danbudanov 0:e977f7ad0d48 7 }
danbudanov 0:e977f7ad0d48 8
danbudanov 0:e977f7ad0d48 9
danbudanov 0:e977f7ad0d48 10
danbudanov 0:e977f7ad0d48 11
danbudanov 0:e977f7ad0d48 12 void DslrIr::trigger()
danbudanov 0:e977f7ad0d48 13 {
danbudanov 0:e977f7ad0d48 14 _pin = ACTIVE_DUTY_CYCLE;
danbudanov 0:e977f7ad0d48 15 wait_us(SEQ_ON_1_PERIOD);
danbudanov 0:e977f7ad0d48 16 _pin = 0;
danbudanov 0:e977f7ad0d48 17 wait_us(SEQ_OFF_1_PERIOD);
danbudanov 0:e977f7ad0d48 18 _pin = ACTIVE_DUTY_CYCLE;
danbudanov 0:e977f7ad0d48 19 wait_us(SEQ_ON_2_PERIOD);
danbudanov 0:e977f7ad0d48 20 _pin = 0;
danbudanov 0:e977f7ad0d48 21 wait_us(SEQ_OFF_2_PERIOD);
danbudanov 0:e977f7ad0d48 22 _pin = ACTIVE_DUTY_CYCLE;
danbudanov 0:e977f7ad0d48 23 wait_us(SEQ_ON_3_PERIOD);
danbudanov 0:e977f7ad0d48 24 _pin = 0;
danbudanov 0:e977f7ad0d48 25 wait_us(SEQ_OFF_3_PERIOD);
danbudanov 0:e977f7ad0d48 26 _pin = ACTIVE_DUTY_CYCLE;
danbudanov 0:e977f7ad0d48 27 wait_us(SEQ_ON_4_PERIOD);
danbudanov 0:e977f7ad0d48 28 _pin = 0;
danbudanov 0:e977f7ad0d48 29 wait_us(SEQ_OFF_4_PERIOD); // Repeat after 63.2 us
danbudanov 0:e977f7ad0d48 30 _pin = ACTIVE_DUTY_CYCLE;
danbudanov 0:e977f7ad0d48 31 _pin = ACTIVE_DUTY_CYCLE;
danbudanov 0:e977f7ad0d48 32 wait_us(SEQ_ON_1_PERIOD);
danbudanov 0:e977f7ad0d48 33 _pin = 0;
danbudanov 0:e977f7ad0d48 34 wait_us(SEQ_OFF_1_PERIOD);
danbudanov 0:e977f7ad0d48 35 _pin = ACTIVE_DUTY_CYCLE;
danbudanov 0:e977f7ad0d48 36 wait_us(SEQ_ON_2_PERIOD);
danbudanov 0:e977f7ad0d48 37 _pin = 0;
danbudanov 0:e977f7ad0d48 38 wait_us(SEQ_OFF_2_PERIOD);
danbudanov 0:e977f7ad0d48 39 _pin = ACTIVE_DUTY_CYCLE;
danbudanov 0:e977f7ad0d48 40 wait_us(SEQ_ON_3_PERIOD);
danbudanov 0:e977f7ad0d48 41 _pin = 0;
danbudanov 0:e977f7ad0d48 42 wait_us(SEQ_OFF_3_PERIOD);
danbudanov 0:e977f7ad0d48 43 _pin = ACTIVE_DUTY_CYCLE;
danbudanov 0:e977f7ad0d48 44 wait_us(SEQ_ON_4_PERIOD);
danbudanov 0:e977f7ad0d48 45 _pin = 0;
danbudanov 0:e977f7ad0d48 46 }