基于CC2530的风扇模块实验

实验内容

  • 理解风扇工作原理;
  • 编写程序,使得风扇能够以不同的速度转动;
  • 准确控制风扇转动速度。

实验目的

  • 熟悉风扇模块的使用;
  • 了解PWM的概念;
  • 能够编程实现用PWM控制风扇。

实验环境

实验所需硬件

序号 名称 数量 备注
1 电脑 1台 系统Windows7及以上
2 CC2530底座模块 1个 ·
3 风扇模块 1个 ·
4 CC Debugger 仿真器和连接线 1套 ·
5 USB线 1根 ·
6 风扇模块实验代码 1份 ·

实验所需软件

CC2530底座:HIVE ZigBee Pro(简称CC2530底座)是一种基于CC2530F256芯片的蜂巢底座。

实验硬件

CC Debugger 仿真器和连接线

实验硬件

风扇模块

风扇模块

USB线

USB线

实验要求

  • 理解PWM相关概念,能够计算PWM频率、周期和占空比等相关参数;
  • 能够用IO口来模拟生成PWM波形并控制电机;
  • 能够画出程序流程图。

实验原理

PWM以及占空比

PWM是Pulse Width Modulation(脉冲宽度调制)的简称,图2所展示的是PWM的波形,PWM从波形上看就是一系列周期变化的脉冲波形。

PWM的波形

所谓的占空比(duty)即Ton脉冲持续的时间与周期T的比值,计算公式如下图所示。

占空比与频率f计算公式

占空比的变化范围可以从0%到100%,当占空为0%时,输出一直为低,当占空为100%时,输出一直为高。在本次的实验中,PWM波通过CC2530的IO口模拟生成,生成PWM的基本原理如下图所示:

利用IO口模拟生成PWM的基本原理

硬件设计

电机的电源V-通过N-MOS管Q1接地,要使电机转动,PWM需输出高电平。当PWM的占空比增大时电机的转速也会随之增大。

风扇模块基本电路

实验步骤

① 将风扇模块安装在CC2530底座上,CC Debugger连接电脑与CC2530底座,如下图所示:

模块组装

② 轻按CCDebugger复位按键,指示灯变绿,表示连接正常。如下图:

模块组装

③ 访问github,进入github界面后点击Code,Clone HTTPS安全链接,如下图所示:

操作步骤

④ 打开电脑终端,进入工作目录workspace (workspace 为工程文件夹所在目录):

$ cd workspace

⑤ 运行clone命令:

$ git clone https://github.com/aiotcom/eps.git

下载目录至指定文件夹下。
如果提示“command not found”表示电脑没有安装Git,请至Git官网下载。
如果电脑没有安装 Git 软件,也可以进入Github,点击 Code -> DownLoad ZIP 下载所有工程代码。如下图所示:
下载代码
如果电脑没有公网,可以进:D盘\实验教程与代码选择相应的代码。

⑥ 打开 IAR Embedded Workbench 工程软件,点击工具栏: File -> Open -> Workspace,选择工程文件:基于CC2530的模块实验\12.风扇模块\风扇模块程序\Fan.eww 并打开。

打开工程

选择文件

⑦ 点击Make按钮,重新编译文件,显示没有错误。

文件编译

⑧ 点击Download and Debug按钮,将程序下载到模块中。

下载程序

代码下载成功

⑨ 点击X退出仿真模式。

退出仿真

⑩ 移除CC Debugger仿真器,采用USB线供电。

⑪ 程序运行后,可以观察到风扇将变化不同的速度转运。

代码讲解

① 程序目录结构,源代码文件如下图:

代码目录结构

② main.c代码对风扇控制IO初始化,完成后,控制风扇转运5秒停步2秒。Fan_Set(1)控制风扇转动,Fan_Set(0)控制风扇停止。

    void main(void)
    {
        Hal_Init_32M();//初始化32M时钟
        Fan_Init();//初始化风扇控制IO

        while(1)
        {
            Fan_Set(1);//风扇转动
            delay_ms(5000);//延时5秒
            Fan_Set(0);//风扇停止转运
            delay_ms(3000);//延时3秒			
        }
    }

常见问题

  1. 弹出警告窗口,不能下载程序。

    • 请确认CCDebugger驱动否安装。
    • 轻按CCDebugger仿真器的按键,指示灯不是绿色连接有问题。
    • CCDebugger仿真器是否正常接入到底座,参考实验步骤第一步。
  2. 下载代码后程序没观察到实验现象。

    • 请重新上电,或者按下底座上的复位按键。
    • 模块没有安装稳妥。
  3. 风扇转动异常。

    • 确认采用的是USB线进行供电而不是CCDebugger。

实验思考

  1. 编写代码实现风扇转速可控制。