Andrea L / IRremote

Dependents:   ConditionlyDaikin

Committer:
alittera
Date:
Mon May 27 11:13:55 2019 +0000
Revision:
9:4e06441ceecf
Parent:
8:da53af1db462
Final revision.; Tested with led on D13, also visible with the built in Led on Nucleo-F401RE;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alittera 8:da53af1db462 1
alittera 8:da53af1db462 2
alittera 8:da53af1db462 3 #include "IRremote.h"
alittera 8:da53af1db462 4 #include "IRremoteInt.h"
alittera 8:da53af1db462 5
alittera 8:da53af1db462 6 //==============================================================================
alittera 8:da53af1db462 7 //
alittera 8:da53af1db462 8 //
alittera 9:4e06441ceecf 9 // DAIKIN LITTERA
alittera 8:da53af1db462 10 //
alittera 8:da53af1db462 11 //
alittera 8:da53af1db462 12 //==============================================================================
alittera 8:da53af1db462 13
alittera 8:da53af1db462 14
alittera 8:da53af1db462 15
alittera 8:da53af1db462 16
alittera 8:da53af1db462 17
alittera 8:da53af1db462 18 #define DYIRDAIKIN_FREQUENCY 38
alittera 8:da53af1db462 19
alittera 8:da53af1db462 20 //DAIKIN
alittera 8:da53af1db462 21 #define DYIRDAIKIN_HDR_MARK 3600 //DAIKIN_ZERO_MARK*8
alittera 8:da53af1db462 22 #define DYIRDAIKIN_HDR_SPACE 1600 //DAIKIN_ZERO_MARK*4
alittera 8:da53af1db462 23 #define DYIRDAIKIN_ONE_SPACE 1300
alittera 8:da53af1db462 24 #define DYIRDAIKIN_ONE_MARK 400
alittera 8:da53af1db462 25 #define DYIRDAIKIN_ZERO_MARK 400
alittera 8:da53af1db462 26 #define DYIRDAIKIN_ZERO_SPACE 428
alittera 8:da53af1db462 27
alittera 8:da53af1db462 28
alittera 8:da53af1db462 29 // IR detector output is active low
alittera 8:da53af1db462 30 #define MARK 0
alittera 8:da53af1db462 31 #define SPACE 1
alittera 8:da53af1db462 32
alittera 8:da53af1db462 33 //+=============================================================================
alittera 8:da53af1db462 34 //
alittera 8:da53af1db462 35
alittera 8:da53af1db462 36
alittera 9:4e06441ceecf 37 void IRsend::daikinWarm ()
alittera 9:4e06441ceecf 38 {
alittera 9:4e06441ceecf 39 _pwm.write(0.5);
alittera 8:da53af1db462 40 IRsend::custom_delay_usec(100);
alittera 9:4e06441ceecf 41 _pwm.write(0.0);
alittera 8:da53af1db462 42 IRsend::custom_delay_usec(5);
alittera 8:da53af1db462 43 }
alittera 8:da53af1db462 44
alittera 8:da53af1db462 45
alittera 8:da53af1db462 46 void IRsend::sendDaikin(unsigned char buf[], int len, int start) {
alittera 8:da53af1db462 47 int data2;
alittera 9:4e06441ceecf 48
alittera 9:4e06441ceecf 49 daikinWarm();
alittera 9:4e06441ceecf 50
alittera 8:da53af1db462 51 enableIROut(DYIRDAIKIN_FREQUENCY);
alittera 8:da53af1db462 52 mark(DYIRDAIKIN_HDR_MARK);
alittera 8:da53af1db462 53 space(DYIRDAIKIN_HDR_SPACE);
alittera 8:da53af1db462 54
alittera 8:da53af1db462 55 for (int i = start; i < start+len; i++) {
alittera 8:da53af1db462 56 data2=buf[i];
alittera 8:da53af1db462 57
alittera 8:da53af1db462 58 for (int j = 0; j < 8; j++) {
alittera 8:da53af1db462 59 if ((1 << j & data2)) {
alittera 8:da53af1db462 60 mark(DYIRDAIKIN_ONE_MARK);
alittera 8:da53af1db462 61 space(DYIRDAIKIN_ONE_SPACE);
alittera 8:da53af1db462 62 }
alittera 8:da53af1db462 63 else {
alittera 8:da53af1db462 64 mark(DYIRDAIKIN_ZERO_MARK);
alittera 8:da53af1db462 65 space(DYIRDAIKIN_ZERO_SPACE);
alittera 8:da53af1db462 66
alittera 8:da53af1db462 67 }
alittera 8:da53af1db462 68 }
alittera 8:da53af1db462 69
alittera 8:da53af1db462 70 }
alittera 8:da53af1db462 71 mark(DYIRDAIKIN_ONE_MARK);
alittera 8:da53af1db462 72 space(DYIRDAIKIN_ZERO_SPACE);
alittera 8:da53af1db462 73 }
alittera 8:da53af1db462 74
alittera 8:da53af1db462 75 //+=============================================================================
alittera 8:da53af1db462 76
alittera 8:da53af1db462 77