本博客介绍一种基于STM32的可学习和存储已有红外发射设备的万能红外遥控器的设计思路。
一、首先需要了解设计一款这功能的遥控器需要什么硬件设备支持。
1、3.3V,5V电源模块,用作给系统模块供电和单片机供电
2、5V的HS3008红外接收头,用作接收其他红外遥控设备的红外线,转换成电信号,发到MCU。
3、STM32F103单片机,这里需要有SPI,定时器,PWM,外部中断功能的单片机即可,MCU用作接收HS3008发过来的电信号,并且解析电信号为数字编码,存储到一个数组,然后再把数组存到外部FLASH,这里实现接收,存储功能。
4、W25Q64芯片,该芯片为FLASH存储芯片,存储空间8Mbytes,与MCU的通信方式为SPI。MCU接收到红外编码信息,通过SPI与其通信把红外的编码信息存储到FLASH里,当需要发射红外编码的时候,从FLSAH提取。
5、红外发射二极管,MCU的pwm引脚控制红外发射二极管发送红外编码。pwm的作用,实现38KHZ的红外的载波。从FLASH提取红外编码信息,根据编码时间控制是否发射载波,实现红外编码信息的发射。
二、设计说明
1、硬件设计
本设备遥控器设备,该设备为5V电源供电,5V电源供电至HS3008红外接收头,ASM1117模块输入端。ASM1117把5V稳压到3.3V给W25Q64芯片,STM32单片机,OLED显示屏幕,NRF24L01无线模块供电。STM32单片机发出红外信号时序电平驱动NPN三极管红外发射管。HS3008红外接收头接收到红外编码后把红外编码存储到W25Q64存储芯片。通过矩阵按键和OLED屏幕的界面选择设置,可以通过按键发射存储的编码。
2、软件设计
主函数初始化硬件SPI驱动,通过硬件SPI写入和读取W25Q64外部FLASH的数据,配置定时器1为5毫秒定时中断模式,配置定时器4为1秒定时中断模式,配置定时器2用作pwm输出用作产生38KHZ红外发射的载波,定时器3用作时间计数,计算接收的红外编码的时间,初始化OLED显示屏的模式,配置用到的IO的模式,配置接收红外编码的外部中断的模式。主循环显示遥控器的工作模式,存储内容,判断按键更改的红外遥控器的模式,进而判断发射存储区中的哪组红外编码。
三、红外编码时序解析
图中为示波器捉HS3008的红外编码,发射器为格力空调的遥控器,其中高电平表示红外发射器没有发射38KHZ载波的红外编码,低电平为发射器发射载波。通过判断高低电平的时间即可解析红外编码的01。
该设计与我的博客:
小白物联网教程stm32f103c8t6通过发送AT指令到ESP8266接入onenet物联网平台
我已将两套设计合为一套,实现了通过onenet控制万能红外遥控器发射红外编码,控制家庭电具。
本博客介绍一种基于STM32的可学习和存储已有红外发射设备的万能红外遥控器的设计思路。
一、首先需要了解设计一款这功能的遥控器需要什么硬件设备支持。
1、3.3V,5V电源模块,用作给系统模块供电和单片机供电
2、5V的HS3008红外接收头,用作接收其他红外遥控设备的红外线,转换成电信号,发到MCU。
3、STM32F103单片机,这里需要有SPI,定时器,PWM,外部中断功能的单片机即可,MCU用作接收HS3008发过来的电信号,并且解析电信号为数字编码,存储到一个数组,然后再把数组存到外部FLASH,这里实现接收,存储功能。
4、W25Q64芯片,该芯片为FLASH存储芯片,存储空间8Mbytes,与MCU的通信方式为SPI。MCU接收到红外编码信息,通过SPI与其通信把红外的编码信息存储到FLASH里,当需要发射红外编码的时候,从FLSAH提取。
5、红外发射二极管,MCU的pwm引脚控制红外发射二极管发送红外编码。pwm的作用,实现38KHZ的红外的载波。从FLASH提取红外编码信息,根据编码时间控制是否发射载波,实现红外编码信息的发射。
二、设计说明
1、硬件设计
本设备遥控器设备,该设备为5V电源供电,5V电源供电至HS3008红外接收头,ASM1117模块输入端。ASM1117把5V稳压到3.3V给W25Q64芯片,STM32单片机,OLED显示屏幕,NRF24L01无线模块供电。STM32单片机发出红外信号时序电平驱动NPN三极管红外发射管。HS3008红外接收头接收到红外编码后把红外编码存储到W25Q64存储芯片。通过矩阵按键和OLED屏幕的界面选择设置,可以通过按键发射存储的编码。
2、软件设计
主函数初始化硬件SPI驱动,通过硬件SPI写入和读取W25Q64外部FLASH的数据,配置定时器1为5毫秒定时中断模式,配置定时器4为1秒定时中断模式,配置定时器2用作pwm输出用作产生38KHZ红外发射的载波,定时器3用作时间计数,计算接收的红外编码的时间,初始化OLED显示屏的模式,配置用到的IO的模式,配置接收红外编码的外部中断的模式。主循环显示遥控器的工作模式,存储内容,判断按键更改的红外遥控器的模式,进而判断发射存储区中的哪组红外编码。
三、红外编码时序解析
图中为示波器捉HS3008的红外编码,发射器为格力空调的遥控器,其中高电平表示红外发射器没有发射38KHZ载波的红外编码,低电平为发射器发射载波。通过判断高低电平的时间即可解析红外编码的01。
该设计与我的博客:
小白物联网教程stm32f103c8t6通过发送AT指令到ESP8266接入onenet物联网平台
我已将两套设计合为一套,实现了通过onenet控制万能红外遥控器发射红外编码,控制家庭电具。
举报