单片机加红外编解码模块(自带破解空调遥控器功能)实现控制空调开关

获取空调遥控器的红外编码(制冷模式)

通过串口获取红外编解码模块(某宝上三四十块)破解到的空调遥控器编码

格力空调遥控器:YAP0F3型号

制冷开机编码

23度开机:FD FD 30 03 40 17 00 34 15 01 32 02 64 00 2A 00 1F 00 2A 00 E6 04 25 00 CF 09 26 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 21 11 22 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 14 51 22 12 22 21 11 22 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 75 3F 7D DF DF

24度开机:FD FD 30 03 40 17 00 34 15 01 33 02 63 00 2A 00 1E 00 2A 00 E5 04 25 00 D0 09 25 00 1A 01 33 02 00 00 21 00 FF FF FF FF 01 22 12 22 22 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 14 51 22 12 22 22 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 30 DF DF

25度开机:F1 FD FD 30 03 40 17 00 34 15 01 34 02 64 00 2A 00 1F 00 2A 00 E6 04 26 00 CF 09 25 00 19 01 33 02 00 00 21 00 FF FF FF FF 01 22 12 22 21 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 14 51 22 12 22 21 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 76 00 BA DF DF

制冷关机编码

FD FD 30 03 40 17 00 34 15 01 32 02 63 00 2A 00 1F 00 2A 00 E6 04 26 00 CF 09 25 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 22 22 21 11 22 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 24 51 22 22 22 21 11 22 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 26 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 76 FC 94 DF DF

制冷调高一度编码

23度调高一度:FD FD 30 03 40 17 00 34 14 01 35 02 62 00 2C 00 1E 00 2A 00 E7 04 26 00 D0 09 26 00 1B 01 33 02 00 00 21 00 FF FF FF FF 01 22 12 22 22 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 14 51 22 12 22 22 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 76 3E 48 DF DF

24度调高一度:FD FD 30 03 40 17 00 34 13 01 34 02 63 00 2A 00 1F 00 2A 00 E7 04 26 00 CF 09 26 00 1A 01 33 02 00 00 21 00 FF FF FF FF 01 22 12 22 21 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 14 51 22 12 22 21 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 76 3F 14 DF DF

25度调高一度:FD FD 30 03 40 17 00 34 14 01 34 02 64 00 2A 00 1E 00 2A 00 E7 04 26 00 D1 09 26 00 19 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 22 12 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 21 14 51 22 12 22 22 12 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 21 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 76 00 E8 DF DF

制冷调低一度编码

26度调低一度:FD FD 30 03 40 17 00 34 14 01 33 02 62 00 2C 00 1D 00 2C 00 E6 04 26 00 CE 09 25 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 21 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 14 51 22 12 22 21 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 76 00 72 DF DF

25度调低一度:FD FD 30 03 40 17 00 34 13 01 35 02 62 00 2C 00 1D 00 2C 00 E6 04 25 00 CF 09 25 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 22 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 14 51 22 12 22 22 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 75 3E 92 DF DF

24度调低一度:FD FD 30 03 40 17 00 34 13 01 33 02 62 00 2C 00 1D 00 2C 00 E8 04 25 00 D0 09 25 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 21 11 22 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 14 51 22 12 22 21 11 22 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 76 7E 7B DF DF

三菱空调遥控器:型号ND09AS TD704

制冷开机

23度:FD FD 30 03 4C 47 00 34 64 00 D6 00 49 00 1E 00 12 00 1E 00 1A 00 1A 00 51 00 17 00 A4 03 15 00 6A 00 D4 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 23 32 32 23 22 33 33 23 13 33 33 11 33 31 11 33 33 33 14 33 34 43 34 33 31 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 14 00 00 44 34 35 64 43 33 43 31 43 43 34 43 44 33 13 34 33 33 33 33 33 33 33 33 33 33 43 33 33 44 33 34 44 33 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 44 34 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 75 3E C6 DF DF

24度:FD FD 30 03 4C 47 00 34 61 00 D8 00 49 00 1F 00 12 00 1E 00 1A 00 19 00 51 00 18 00 A9 03 15 00 6C 00 D2 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 33 33 33 33 33 13 33 33 11 32 33 33 13 33 33 11 33 31 43 31 33 31 33 33 33 33 33 33 33 33 33 33 33 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 31 11 00 00 11 31 25 61 13 33 43 31 43 13 31 12 11 33 43 31 33 33 23 33 33 33 33 33 33 33 43 33 33 44 33 33 33 43 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 44 44 34 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 75 3E DD DF DF

25度:FD FD 30 03 4C 47 00 34 63 00 D6 00 49 00 1E 00 11 00 1F 00 19 00 1B 00 51 00 17 00 A9 03 15 00 6C 00 D2 00 00 00 0B 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 32 23 33 33 33 33 33 33 43 33 33 41 33 31 33 13 33 33 11 33 31 43 34 33 31 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 00 00 33 11 35 61 13 33 13 31 13 13 31 43 11 33 13 31 33 33 33 33 33 33 33 33 33 33 43 33 33 44 33 34 33 43 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 76 3E 2E DF DF

制冷关机

FD FD 30 03 4C 47 00 34 62 00 D7 00 49 00 1F 00 12 00 1F 00 1A 00 19 00 51 00 18 00 AA 03 15 00 6C 00 D2 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 22 32 33 33 33 33 23 33 11 33 31 11 33 32 33 11 32 31 43 31 23 31 33 33 33 33 33 33 33 33 23 33 33 33 33 33 33 32 33 33 33 33 33 33 33 33 33 33 33 33 33 14 00 00 11 13 25 61 12 33 13 31 13 43 31 43 11 32 13 31 33 33 23 33 33 33 33 33 33 33 33 33 33 44 33 34 44 33 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 44 43 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 76 00 2F DF DF

制冷调高一度

23度调高一度:FD FD 30 03 4C 47 00 34 64 00 D6 00 4A 00 1E 00 12 00 1E 00 1A 00 19 00 A9 03 15 00 6C 00 D2 00 52 00 18 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 32 33 32 33 33 13 23 33 11 33 32 33 13 23 33 11 33 31 13 31 33 31 33 23 33 32 33 33 33 33 33 32 33 33 33 33 33 33 33 33 32 33 33 23 33 33 33 33 33 33 31 11 00 00 11 21 34 51 12 33 13 31 13 13 31 63 11 33 13 31 33 33 32 33 23 33 33 33 33 33 13 33 33 66 33 33 33 63 33 33 66 33 36 63 36 33 36 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 36 66 66 36 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 76 01 7C DF DF

24度调高一度:FD FD 30 03 4C 47 00 34 61 00 D8 00 49 00 1E 00 13 00 1E 00 1B 00 19 00 51 00 19 00 A3 03 17 00 6B 00 D2 00 00 00 0A 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 22 22 22 22 22 22 12 22 22 11 22 31 22 12 22 22 11 22 31 42 31 22 21 22 22 22 22 22 22 22 23 22 22 22 22 22 22 22 22 22 23 22 32 23 22 32 23 22 22 22 22 22 22 00 00 23 14 25 61 12 22 12 21 12 12 21 42 11 22 13 34 23 33 33 33 33 33 33 33 33 33 43 33 33 44 33 34 33 43 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 75 3F 72 DF DF

25度调高一度:FD FD 30 03 4C 47 00 34 62 00 D8 00 49 00 1F 00 11 00 1F 00 1A 00 1A 00 51 00 18 00 A2 03 16 00 6B 00 D4 00 00 00 0D 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 22 23 33 33 33 33 13 33 33 11 33 33 13 13 33 33 41 33 31 13 31 33 31 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 31 33 00 00 33 11 35 61 13 33 13 31 13 13 31 43 11 33 13 31 33 33 33 33 33 33 33 33 33 33 13 33 33 44 33 33 43 43 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 33 33 44 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 76 00 90 DF DF

制冷调低一度

26度调低一度:FD FD 30 03 4C 47 00 34 64 00 D6 00 4A 00 1E 00 12 00 1E 00 1A 00 18 00 A5 03 15 00 6C 00 D2 00 52 00 18 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 33 33 32 33 33 13 32 33 11 33 21 33 13 33 33 11 33 31 13 31 33 31 33 33 33 23 33 33 33 33 23 33 33 33 32 33 33 32 33 33 33 33 23 33 33 33 33 23 33 33 33 33 00 00 33 11 24 51 13 33 12 31 13 12 31 63 11 33 13 31 33 33 32 33 23 33 33 33 33 33 13 33 33 16 33 36 33 63 33 33 66 33 36 63 36 33 36 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 66 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 76 00 98 DF DF

25度调低一度:FD FD 30 03 4C 47 00 34 61 00 D8 00 48 00 1F 00 16 00 1F 00 50 00 19 00 A4 03 15 00 6A 00 D4 00 1C 00 16 00 00 00 11 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 22 22 22 22 22 22 12 22 22 31 22 22 22 12 22 22 11 22 23 32 21 22 21 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 33 00 00 11 23 24 53 32 22 32 23 32 32 23 32 33 22 32 23 22 22 22 22 22 22 22 22 22 22 32 22 22 33 22 22 22 32 22 22 33 22 23 32 23 22 23 22 22 22 22 22 22 22 22 22 22 62 22 22 22 22 22 22 62 22 22 22 62 22 22 22 26 22 26 63 33 33 23 27 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 75 00 62 DF DF

24度调低一度:FD FD 30 03 4B 47 00 34 62 00 D7 00 4A 00 1F 00 12 00 1F 00 15 00 28 00 1A 00 19 00 AA 03 15 00 6C 00 D2 00 52 00 16 00 01 12 23 12 21 12 12 21 12 11 22 12 21 22 22 22 22 22 44 24 44 44 44 14 44 44 11 44 41 11 44 44 44 11 44 21 14 41 42 41 44 24 44 44 44 44 44 44 44 42 44 44 42 44 42 44 44 44 44 44 44 44 44 44 44 44 44 44 44 11 00 00 11 41 25 61 14 24 14 41 14 14 21 14 11 24 14 41 44 44 44 44 44 24 44 44 44 44 14 44 44 77 44 47 77 44 44 44 77 44 47 74 47 44 47 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 77 77 47 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 76 3E 97 DF DF

单片机控制思路

现在得到了空调遥控器的编码,那么我们要做的就是将该由字符串表示的16进制编码转化成对应的由字符串表示的10进制编码(有点拗口),再通过串口发送给红外编码器,使其发送控制空调的的红外编码信号。

上面的编码中,每两个字符组成的一个十六进制数,两个十六进制数中间由空格隔开。

提取思路:在for循环中,先读取第一个字符,判断其是否为空格。若不为空格,则再++,读取下一个字符,将两个字符分别转化为相应的十进制数,再通过第一个十进制数 x 16 + 第二个十进制数,这样就获得了十六进制字符相应的十进制数;若为空格,则++,再执行一样的操作

注意:获得的十六进制字符相应的十进制数应该存储到unsigned char型的字符串中,因为char型的取值范围是 -128 ~ +127,而十六进制对应的十进制数的范围是 0 ~ 255,对于unsigned char型的取值范围是 0 ~ 255

代码实现

以下是树莓派加红外编解码模块的代码

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <wiringPi.h>
#include <wiringSerial.h>

int HexChar(char c) //获取十六进制字符对应的十进制数
{
        if((c >= '0') && (c <= '9'))
                return c-0x30;

        else if((c >= 'A') && (c <= 'F'))
                return c-'A'+10;

        else if((c >= 'a')&&(c <= 'f'))
                return c-'a'+10;

        else //错误的十六进制字符
                return 0x10;
}

int main()
{
        int fd, n, status = 0, nread = 0;
        wiringPiSetup();
        fd = serialOpen("/dev/ttyAMA0", 9600);
        printf("fd = %d\n", fd);

		//开机的编码
        char* str = "FD FD 30 03 4C 47 00 34 62 00 D7 00 49 00 1F 00 12 00 1F 00 1A 00 19 00 51 00 18 00 AA 03 15 00 6C 00 D2 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 22 32 33 33 33 33 23 33 11 33 31 11 33 32 33 11 32 31 43 31 23 31 33 33 33 33 33 33 33 33 23 33 33 33 33 33 33 32 33 33 33 33 33 33 33 33 33 33 33 33 33 14 00 00 11 13 25 61 12 33 13 31 13 43 31 43 11 32 13 31 33 33 23 33 33 33 33 33 33 33 33 33 33 44 33 34 44 33 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 44 43 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 76 00 2F DF DF ";

        int t, t1;
        int rlen=0, len=strlen(str);
        unsigned char ctrl[236] = {'\0'};

        for(int i=0; i<len; )
        {
                char l, h=str[i];
                if(h == ' ')
                {
                        i++;
                        continue;
                }

                i++;

                l = str[i];
                t = HexChar(h);
                t1 = HexChar(l);

                if((t == 16)||(t1 == 16))
                        break;
                else
                	t = t*16 + t1;

                i++;

                printf("%x ", t);
                ctrl[rlen] = (unsigned char)t;
                rlen++;
        }
        printf("\nstrlen = %d; sizeof = %d\n",strlen(ctrl),sizeof(ctrl));
        write(fd, ctrl, sizeof(ctrl));
        printf("\n");

        return 0;
}

注意:用write函数向串口写控制指令时,第三个参数要用 sizeof ,不能用 strlen !!!当遇到 0 时,strlen结束计数

  • 5
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
AVR单片机红外遥控器解码,是指利用AVR单片机来解析红外遥控器信号,从中提取出红外遥控器发送的指令。 首先,红外遥控器是通过红外线发送遥控信号的。红外遥控器解码的关键在于解析红外遥控器发射的红外信号。在解析过程中,我们需要一个红外接收头来接收红外信号。红外接收头一般会将红外信号转换成电信号,然后通过电路将其转换为数字信号,进而进行解码。 使用AVR单片机进行解码的过程如下: 1. 选择一个合适的引脚连接红外接收头,并通过电阻分压电路将信号转接到单片机的引脚上。 2. 初始化AVR单片机的外部中断,使得单片机可以通过中断接收红外接收头的信号变化。 3. 在中断服务子程序中,计算红外信号的时间间隔,根据时间间隔判断信号是"0"还是"1"。 4. 解码红外信号,将红外信号转换为相应的指令码。不同品牌的红外遥控器可能采用不同的编码方式,因此需要根据具体情况进行解码。 在解码过程中,可以根据不同的应用需求,选择合适的解码算法。例如,可以通过建立红外码表,将红外信号与相应的指令码进行映射,从而实现红外遥控器的解码。 AVR单片机红外遥控器解码的过程相对简单,通过设置合适的引脚连接和编写相应的代码,可以实现红外遥控器信号的解析和对应指令的获取。这样,我们就可以利用AVR单片机控制各种设备,实现远程遥控的功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值