基于STM32设计的格力空调遥控器

一、格力空调协议介绍

格力空调的红外控制协议被称为格力红外通讯协议或者格力红外遥控协议。这个协议定义了一系列红外信号,可以用来控制格力空调的各种操作,例如开关、温度控制、模式选择、风速控制等等。

格力空调的红外控制协议是一种自定义协议,它并没有像NEC、RC5、RC6等协议一样被广泛应用。因此,不同型号的格力空调可能会有不同的红外控制协议。如果想要使用红外发送器控制格力空调,需要先了解当前空调使用的是哪种红外控制协议。

一般来说,格力空调的红外控制协议包含一个头部和一系列数据位。头部通常由一个起始位和一个引导位组成。数据位通常包括操作码、温度、模式、风速等信息。

下面是一个格力空调红外控制信号:

Start Bit: 9000us
Lead-in: 4500us, 4500us
Data: 0x88, 0x20, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

在这个示例中,红外控制信号的起始位持续时间为9000微秒。接下来是一个引导位,持续时间为4500微秒和4500微秒。引导位后面是一系列数据位,包括操作码、温度、模式、风速等信息。在这个示例中,操作码为0x88,表示将空调设置为制冷模式,并把温度设置为32度。

要控制格力空调,需要使用一个红外发送器,将这个信号通过红外光线发送到空调控制器。可以使用STM32F103ZET6的GPIO引脚控制红外线发送管来发送这个信号。

image-20230720112624187

image-20230720112701039

二、代码实现

2.1 代码实现

#include "stm32f10x.h"// 定义红外发送器引脚
#define IR_SENDER_GPIO_PORT GPIOA
#define IR_SENDER_GPIO_PIN GPIO_Pin_1// 定义红外发送器协议参数
#define IR_PROTOCOL_FREQ 38000            // 红外协议频率
#define IR_PROTOCOL_START_DURATION 9000   // 红外协议起始位持续时间
#define IR_PROTOCOL_LEADIN_DURATION 4500  // 红外协议引导位持续时间
#define IR_PROTOCOL_DATA_BIT_0_DURATION 560  // 红外协议数据位0持续时间
#define IR_PROTOCOL_DATA_BIT_1_DURATION 1690 // 红外协议数据位1持续时间// 发送一个红外协议信号
void IR_SendProtocol(uint32_t protocol)
{uint8_t i, j;uint32_t data_bit;// 发送起始位GPIO_SetBits(IR_SENDER_GPIO_PORT, IR_SENDER_GPIO_PIN);delay_us(IR_PROTOCOL_START_DURATION);// 发送引导位GPIO_ResetBits(IR_SENDER_GPIO_PORT, IR_SENDER_GPIO_PIN);delay_us(IR_PROTOCOL_LEADIN_DURATION);GPIO_SetBits(IR_SENDER_GPIO_PORT, IR_SENDER_GPIO_PIN);delay_us(IR_PROTOCOL_LEADIN_DURATION);// 逐位发送协议数据for (i = 0; i < 14; i++){data_bit = (protocol >> i) & 0x01; // 获取当前位的值// 发送数据位GPIO_ResetBits(IR_SENDER_GPIO_PORT, IR_SENDER_GPIO_PIN);if (data_bit){delay_us(IR_PROTOCOL_DATA_BIT_1_DURATION);}else{delay_us(IR_PROTOCOL_DATA_BIT_0_DURATION);}GPIO_SetBits(IR_SENDER_GPIO_PORT, IR_SENDER_GPIO_PIN);delay_us(IR_PROTOCOL_DATA_BIT_0_DURATION);}
}// 控制格力空调开关
void IR_ControlPower(int on_off)
{uint32_t protocol;if (on_off){// 开机protocol = 0x8820000200200000;}else{// 关机protocol = 0x8820000000200000;}IR_SendProtocol(protocol);
}// 控制格力空调温度
void IR_ControlTemperature(int temperature)
{uint32_t protocol;if (temperature < 16 || temperature > 31){return; // 温度范围无效}// 温度码为0x20加上实际温度值protocol = 0x8820002020000000 | (temperature - 16);IR_SendProtocol(protocol);
}// 控制格力空调模式
void IR_ControlMode(int mode)
{uint32_t protocol;switch (mode){case 0: // 制冷protocol = 0x8820000200200000;break;case 1: // 制热protocol = 0x8820000400200000;break;case 2: // 自动protocol = 0x8820000800200000;break;case 3: // 送风protocol = 0x8820001000200000;break;default:return; // 模式无效}IR_SendProtocol(protocol);
}// 控制格力空调风速
void IR_ControlFanSpeed(int fan_speed)
{uint32_t protocol;switch (fan_speed){case 0: // 自动风速protocol = 0x8820002000200000;break;case 1: // 低风速protocol = 0x8820004000200000;break;case 2: // 中风速protocol = 0x8820008000200000;break;case 3: // 高风速protocol = 0x8820010000200000;break;default:return; // 风速无效}IR_SendProtocol(protocol);
}

在代码中,定义了一些常量来表示格力空调红外控制协议的参数,例如红外协议频率、起始位持续时间、引导位持续时间、数据位0和数据位1的持续时间。也定义了一些函数来控制格力空调的各种操作,例如控制开关、温度、模式和风速。这些函数调用了IR_SendProtocol()函数来发送适当的红外信号。

IR_SendProtocol()函数中,先发送起始位和引导位。然后,逐位发送协议数据,根据数据位的值发送适当的红外信号。在代码中,使用delay_us()函数来延迟一定的时间来模拟红外信号的持续时间。

2.2 常见的控制码

以下是一些常见的格力空调红外控制协议:

【1】控制开关

// 开机
0x8820000200200000// 关机
0x8820000000200000

【2】控制温度

// 温度16度
0x8820002020000000// 温度17度
0x8820002120000000// 温度18度
0x8820002220000000// ...// 温度31度
0x8820003F20000000

【3】控制模式

// 制冷
0x8820000200200000// 制热
0x8820000400200000// 自动
0x8820000800200000// 送风
0x8820001000200000

【4】控制风速

// 自动风速
0x8820002000200000// 低风速
0x8820004000200000// 中风速
0x8820008000200000// 高风速
0x8820010000200000

【5】控制扫风

// 扫风开
0x8820080000200000// 扫风关
0x8820100000200000

【6】控制节能模式

// 节能开
0x8820200000200000// 节能关
0x8820400000200000

【7】控制睡眠模式

// 睡眠开
0x8821000000200000// 睡眠关
0x8822000000200000

【8】控制定时开关机

// 定时开机,时间为1小时
0x8824000000200000// 定时开机,时间为2小时
0x8828000000200000// 定时开机,时间为3小时
0x8830000000200000// ...// 定时开机,时间为24小时
0x8878000000200000// 取消定时开关机
0x8820000000400000

【9】控制清新功能

// 清新开
0x8820000002200000// 清新关
0x8820000004200000

【10】控制快速冷热

// 快速冷
0x8820000080200000// 快速热
0x8820000040200000

【11】控制干燥功能

// 干燥开
0x8820000001200000// 干燥关
0x8820000002200000

【12】控制自清洁功能

// 自清洁开
0x8820000008200000// 自清洁关
0x8820000010200000

【13】控制室内外循环功能

// 室内外循环开
0x8820020000200000// 室内外循环关
0x8820040000200000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/103613.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业架构LNMP学习笔记14

默认官方模块&#xff1a; Gzip压缩&#xff1a; 压缩文件&#xff0c;使文件变小了&#xff0c;传输更快了&#xff0c;目前大部分市场浏览器都支持Gzip。 传输的时候省流量。 目的是为了提高用户的加载速度。 #开启gzip压缩 gzip on; #http协议版本 gzip_http_version 1.0…

Java虚拟机反射机制

1 什么是Java虚拟机反射机制&#xff1f; 虚拟机在运行期间&#xff0c;对于任何一个类&#xff0c;我们都能知道其内部信息&#xff0c;包括属性&#xff0c;方法&#xff0c;构造函数&#xff0c;实现接口&#xff1b;对于任何一个对象&#xff0c;我们都能获取其字段值、调…

Java(二)数据类型与变量以及运算符

数据类型与变量以及运算符 二、数据类型与变量&#xff08;重要&#xff09;2.数据类型2.1 基本数据类型 1.变量与常量1.1常量&#xff08;字面常量&#xff09;1.2变量数据类型小总结 三、运算符1.运算符号&#xff08;重要&#xff09;1.1计算运算符1.2增量运算符1.3 自增或自…

LeetCode 1126.查询活跃业务

数据准备 Create table If Not Exists Events (business_id int, event_type varchar(10), occurences int); Truncate table Events; insert into Events (business_id, event_type, occurences) values (1, reviews, 7); insert into Events (business_id, event_type, occu…

智能井盖传感器:高效守护城市道路安全

近年来&#xff0c;井盖出问题导致事故的报道时有发生&#xff0c;但却容易被公众所忽视。井盖作为城市基础设施的一部分&#xff0c;主要用于保护下方的供水管道、下水道以及电信线缆等。然而&#xff0c;由于长时间使用、缺乏维护、设计不合理等原因&#xff0c;井盖出现问题…

zookeeper/HA集群配置

1.zookeep配置 1.1 安装4台虚拟机 &#xff08;1&#xff09;按照如下设置准备四台虚拟机&#xff0c;其中三台作为zookeeper&#xff0c;配置每台机器相应的IP&#xff0c;hostname&#xff0c;下载vim&#xff0c;ntpdate配置定时器定时更新时间&#xff0c;psmisc&#xff…

【Docker】Docker的使用案例以及未来发展、Docker Hub 服务、环境安全的详细讲解

Docker的工具实践及root概念和Docker容器安全性设置 1. 使用案例2. Docker解决的问题3. Docker未来发展4. Docker Hub 服务5. 技术局限6. Docker环境安全7. 容器部署安全 1. 使用案例 Docker是一个命令行工具&#xff0c;它提供了中央“docker”执行过程中所需的所有工具。这使…

【动手学深度学习】--序列模型

文章目录 序列模型1.序列数据2.统计工具3.自回归模型3.1马尔科夫假设3.2潜变量模型 4.训练5.预测 序列模型 学习视频&#xff1a;序列模型【动手学深度学习v2】 官方笔记&#xff1a;序列模型 1.序列数据 想象一下有人正在看网飞&#xff08;Netflix&#xff0c;一个国外的视…

大数据成为市场营销利器 ,促进金融贷款企业获客精准化

随着大数据技术的不断普及&#xff0c;中国对尖端技术和云计算技术的投资大幅增加。大数据、云计算技术、物联网等一系列新一代信息技术也加速完善。 目前&#xff0c;大数据技术也非常成熟&#xff0c;大数据的应用领域也多种多样。大数据的重要方面“运营商大数据”已经被政…

vue优化首屏加载时间优化-gzip压缩

前言 为什么要进行首屏加载优化&#xff0c;因为随着我们静态资源和第三方包和代码增加&#xff0c;压缩之后包会越来越大 随着网络的影响&#xff0c;在我们第一输入url请求资源时候&#xff0c;网络阻塞&#xff0c;加载时间长&#xff0c;用户体验不好 仔细观察后就会发现…

腾讯发布超千亿参数规模的混元大模型;深度学习与音乐分析与生成课程介绍

&#x1f989; AI新闻 &#x1f680; 腾讯发布超千亿参数规模的混元大模型 摘要&#xff1a;腾讯在2023腾讯全球数字生态大会上发布混元大模型&#xff0c;该模型拥有超千亿的参数规模和超2万亿 tokens 的预训练语料。混元大模型将支持多轮对话、内容创作、逻辑推理、知识增强…

MT8788安卓核心板详细参数_MTK安卓主板开发板智能通讯模块

MT8788安卓核心板集成了一个高效的12nm SoC&#xff0c;内置4G LTE调制解调器&#xff0c;将强大的硬件与到处可连接的全面功能设计相结合。 MTK8788智能终端具备许多功能&#xff0c;包括4G、2.4G/5G双频WiFi、蓝牙4.2BLE、2.5W功放、USB、mipi屏接口、三路摄像头接口、GPS和…