11、
基于单片机的风扇转速采集系统
基本要求:
a)设计风扇转速采集系统
b)风扇电机可调速
c)显示转速测量结果3位,分屏显示,精确到小数点后2位立,并与用示波器看到的光电开
关的信号计算得到的转速进行比较,分析它们之间的差别及产生的可能原因。
扩展要求:
滚动显示测量结果。
分析影响测量准确度的因素,并在现有条件上下提高测量准确度
风扇转速采集系统是工业和家庭应用中常见的一个控制系统,主要用于监测风扇的转速并进行适当的调节,以达到高效节能和稳定运行的目的。本实验旨在设计一个基于单片机的风扇转速采集系统,通过调节风扇电机速度,并显示测量结果,与示波器计算结果进行比较,分析差异及其原因。同时,滚动显示测量结果并提高测量准确度。
使用的是8051系列单片机,它是一个8位的微控制器,广泛应用于各种嵌入式系统中。其主要特性包括:
4KB ROM
128字节RAM
32个I/O口线
2个16位定时/计数器
串行口
风扇电机
光电开关:用于检测风扇转速,通过接收反射或透射的光信号来计数。
PWM模块:用于调节风扇电机的速度。
LCD显示模块:用于显示风扇转速。
光电开关的输出连接到单片机的外部中断引脚。
PWM输出通过驱动电路连接到风扇电机。
LCD显示模块通过并行接口与单片机连接。
电路主要由单片机、光电开关、风扇电机、PWM调速模块和LCD显示模块组成。光电开关检测风扇的旋转速度,输出脉冲信号至单片机的外部中断引脚。单片机根据接收到的脉冲信号计算转速,并通过PWM调节风扇电机速度,将转速结果显示在LCD上。
程序主要分为以下几个部分:
初始化部分:设置定时器、外部中断和PWM输出。
PWM调速部分:通过调整PWM的占空比来改变风扇电机的速度。
转速测量部分:利用外部中断计数脉冲数,根据脉冲数计算转速。
显示部分:将计算得到的转速显示在LCD上。
cvoid SystemInit() {
TMOD = 0X21; // t1用来串口,t0定时
TH0 = THC0;
TL0 = TLC0;
TH1 = 0xC0;
TL1 = 0xC0;
ET1 = 1;
ET0 = 1;
TR0 = 1;
TR1 = 1;
EX0 = 1; // 中断0用来测量转速
IT0 = 1;
EA = 1;
}
设置定时器模式,初始化定时器寄存器和外部中断。
cvoid PWMOUT() {
if (cnt < PWMTime) {
PWM_FC = 1;
} else {
PWM_FC = 0;
}
if (cnt > 1000) {
cnt = 0;
}
}
通过控制PWM的占空比来调节风扇电机的速度。
cvoid SetSpeed() {
if (AddSpeed == 0) {
delay(200);
if (AddSpeed == 0) {
PWMTime += 1; // 加速PWM
}
}
if (SubSpeed == 0) {
delay(200);
if (SubSpeed == 0) {
PWMTime -= 1; // 减速PWM
}
}
if (PWMTime > 1000) {
PWMTime = 1000;
} else if (PWMTime < 0) {
PWMTime = 0;
}
}
通过按钮控制风扇速度的增加和减少。
cvoid int0() interrupt 0 {
Inpluse++;
}
通过外部中断计数脉冲数。
cvoid t0() interrupt 1 {
static unsigned int time = 0;
TH0 = THC0;
TL0 = TLC0; // 每2ms执行一次这个中断函数
time++; // 转速测量周期
if (time > 500) {
zs = 1;
time = 0;
num = Inpluse; // 计算转速
Inpluse = 0;
}
PWMOUT();
}
定时器中断用于周期性测量转速和输出PWM信号。
cvoid main() {
SystemInit();
init();
zs = 1;
while (1) {
SetSpeed();
if (zs == 1) {
zs = 0;
cc[6] = num / 1000 + '0';
cc[7] = num / 100 % 10 + '0';
cc[8] = num / 10 % 10 + '0';
cc[9] = num % 10 + '0';
LCD_Write_String(0, 0, cc);
}
}
}
主函数初始化系统,设置风扇速度并显示转速。
通过LCD显示和示波器测量的转速进行比较,分析两者之间的差异。通常情况下,示波器测量的转速较为精确,而单片机系统由于存在一定的延迟和误差,可能会与示波器结果有所不同。
光电开关的精度
单片机的计数精度
程序中断延迟
PWM调速的稳定性
使用更高精度的光电开关
优化程序,减少中断延迟
增加滤波电路,减小电机抖动
使用更高频率的PWM信号,提高调速的平滑性
通过本次实验,我们成功设计并实现了一个基于单片机的风扇转速采集系统。该系统能够有效地调节风扇速度,并实时显示转速。通过与示波器测量结果的比较,我们分析了系统的准确度并提出了改进措施。本实验为进一步研究和开发更高精度的转速测量系统提供了基础。
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!