基于51单片机实现红外控制系统控制电机调速

发布时间:2023-01-31  

具体功能实现

初始时,数码管上显示0,此时电机不转动;当按下红外遥控上的“1”时,数码管显示1,电机的转速加快;一共分为三个挡位,每升高一个挡位,数码管都会显示对应的挡位数字同时提高电机的转速。


器件:

AT89C52,8位数码管,红外遥控器,步进电机,扇叶,74HC138译码器,HS0038红外接收探头


红外调试前后图 :

调试前:

调节后

知识介绍 :HS0038红外探头

HS0038是一款红外接收探头,接收红外信号频率为38kHz,周期约26μs


红外遥控

红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出

通信方式:单工,异步

红外LED波长:940nm

通信协议标准:NEC标准


红外基本发送与接收

空闲状态:红外LED不亮,接收头输出高电平

发送低电平:红外LED以38KHz频率闪烁发光,接收头输出低电平

发送高电平:红外LED不亮,接收头输出高电平


红外NEC协议编码说明


空闲状态(state=0)代码:

if(IR_State==0) //状态0,空闲状态

{

Timer0_SetCounter(0); //定时计数器清0

Timer0_Run(1); //定时器启动

IR_State=1; //置状态为1

}

开始状态(state=1)代码:

if(IR_Time>12442-500 && IR_Time<12442+500)

{

IR_State=2; //置状态为2

}


repeat状态代码:

else if(IR_Time>10368-500 && IR_Time<10368+500)

{

IR_RepeatFlag=1; //置收到连发帧标志位为1

Timer0_Run(0); //定时器停止

IR_State=0; //置状态为0

}


接收存储数据代码:

//如果计时为1120us,则接收到了数据0

if(IR_Time>1032-500 && IR_Time<1032+500)

{

IR_Data[IR_pData/8]&=~(0x01<IR_pData++; //数据位置指针自增

}

//如果计时为2250us,则接收到了数据1

else if(IR_Time>2074-500 && IR_Time<2074+500)

{

IR_Data[IR_pData/8]|=(0x01<IR_pData++; //数据位置指针自增

}


外部中断:

STC89C52有4个外部中断;

STC89C52的外部中断有两种触发方式:

下降沿触发和低电平触发

下降沿触发:当按键按下不松手时只触发一次

低电平触发:当按键按下不松手时会持续触发

中断号:

PWM脉冲宽度调制定理

PWM(Pulse Width Modulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速、开关电源等领域

PWM重要参数:

频率 = 1 / TS 占空比 = TON / TS 精度 = 占空比变化步距



例子:在制作LED呼吸灯时,如果想要让LED亮的时间更长,只需要提高比较值。


直流电机简介

直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转。

直流电机主要由永磁体(定子)、线圈(转子)和换向器组成。

除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等。


主函数代码(C语言)KEIL5实现:

#include


#include "Delay.h"


#include "Key.h"


#include "Nixie.h"


#include "Motor.h"


#include "IR.h"


unsigned char Command,Speed;


void main()


{


Motor_Init();


IR_Init();


while(1)


{


if(IR_GetDataFlag()) //如果收到数据帧


{


Command=IR_GetCommand(); //获取遥控器命令码


if(Command==IR_0){Speed=0;} //根据遥控器命令码设置速度


if(Command==IR_1){Speed=1;}


if(Command==IR_2){Speed=2;}


if(Command==IR_3){Speed=3;}


     if(Speed==0){Motor_SetSpeed(0);} //速度输出


if(Speed==1){Motor_SetSpeed(50);}


if(Speed==2){Motor_SetSpeed(75);}


if(Speed==3){Motor_SetSpeed(100);}


}


Nixie(1,Speed); //数码管显示速度


}


}


问题解答:

Q:代码超出版本限制如何解决?如图:


A:用注册机对KEIL5软件进行重新破解,破解步骤链接:

Q:延时函数如何快速自动生成?

A:在STC-ISP中根据红色方框进行设计


Q:最后如何进行数据验证?

A:根据下面Data格式进行验证,代码如下:

if(IR_pData>=32) //如果接收到了32位数据

{

IR_pData=0; //数据位置指针清0

if((IR_Data[0]==~IR_Data[1]) && (IR_Data[2]==~IR_Data[3])) //数据验证

{

IR_Address=IR_Data[0]; //转存数据

IR_Command=IR_Data[2];

IR_DataFlag=1; //置收到连发帧标志位为1

}

Timer0_Run(0); //定时器停止

IR_State=0; //置状态为0

}

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    并及时修改,避免因为错误导致整个系统崩溃无法正常运行;程序的编写最好简洁明了,方便以后检查。 测试结果 基于单片机红外遥控器设计系统上电后,系统所有模块初始化完成后,LCD1602液晶......
    基于STC12系列单片机的通用红外遥控信号分析程序(一);前言   最近学51单片机学习到红外遥控解码与发送部分,开发板的相关教程只有NEC协议的解码,基本的解码套路是1838接收头输出管脚接单片机......
    AT89C52单片机对电风扇红外遥控发射电路的设计;传统电风扇多采用机械方式进行控制,功能少,噪音大,各档的风速变化大。随着科技的发展和人们生活水平的提高,家用电器产品趋向于自动化、智能化、环保......
    信号的部分电路。红外遥控信号经过红外接收模块接收后,解调为遥控信号的编码脉冲由输出端A输出,其波形如图3和图4所示,此信号经过反相器74LS04输出到AT89C51的外部中断INT0输入端。单片机通过运行程序对红外遥控......
    温度采集、红外遥控、1602液晶驱动等程序模块组成,整个系统的主程序如图3所示。硬件仿真结果如图4所示。      图3:主程序流程图   4 结束语   系统以单片机的C语言进行软件设计,为便......
    红外遥控电机调速+普中51单片机+江科大自化协;1 实验现象    基于STC89C52单片机设计一个红外遥控直流电机调速系统。一上电,数码管上显示0,此时直流电机不转动。当按下红外遥控器上的“1......
    判断在哪个LED定位点停车卸货。此系统需要用到ESP8266模块、手机APP、打印好的条形码/二维码来构成WIFI无线传输系统。 红外遥控功能的设计:意为人工处理临时问题时的手动控制方式,在单片机初始化后,或者......
    ~1978):初级单片机阶段。以Intel公司的MCS-48为代表 第二阶段(1978~1983):高性能单片机阶段。以MCS-51系列为代表 第三阶段(1988年~):8位单片机巩固、完善及16位单片机......
    红外遥控接收模块+普中51单片机+江科大自化协;1 实验现象   LCD1602上显示红外解码遥控器地址、键值。通过红外遥控器,按下某个按键时,遥控器通过红外发光二极管发射红外线,红外......
    为核心的移动机器人还存在处理数据局限、控制不稳定等不足之处,国内市场暂时还没有出现具有真正意义的跟随性智能载物小车。本设计基于单片机的智能小车测距模块、红外遥控模块和小车智能控制模块,通过软硬件设计调试,实现......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>