让Hi3861驱动交流电机变频器 原创 精华

鸿联
发布于 2021-9-29 18:25
浏览
4收藏

变频器(Variable-frequency Drive,VFD)是应用变频技术与微电子技术,通过改变电机工作电源电压及频率方式来控制交流电动机的电力控制设备。在工农业生产的自动化控制,节能降耗,动力驱动等领域有着广泛和深入的应用。鸿蒙轻量化设备除了可以应用于智能家居等消费领域,在生产领域的应用也有着巨大的潜力。
这次用Hi3861的PWM来驱动变频器,改变其输出频率,开始:

准备

Windows 开发环境准备
IDE: DevEco Device Tool 2.2 Beta2
源码: OpenHarmony 2.2 Beta2
开发板: 小熊派 BEARPI-HM Nano Hi3861 主板
变频器: 一款国产2.2kw变频器

简介

  1. 常用变频器的启停方式有 ++操作面板++,++端子启停++和++通讯命令启停++等方式,为了简化,本实验采用操作面板的++启停按键++。
  2. 常用变频器的频率给定方式有++操作面板++,++模拟量(电流,电压)++,++端子++,及++通讯++等,本实验采用电压模拟量来调节频率。
  3. 小熊派开发版的GPIO_1脚初始化为PWM4输出,串联300欧电阻连接至变频器的模拟量输入端,通过改变PWM占空比的大小,从而改变GPIO_1脚输出电压,进而改变变频器的输出频率。
    让Hi3861驱动交流电机变频器-鸿蒙开发者社区

4.对应本款变频器,设定参数P0.01频率来源为“VI模拟给定”,参数P0.03运行命令通道为“操作面板”
5. GPIO_1的PWM输出电压为0-3.3v,对应变频器输出频率为0-50Hz,设定变频器参数P1.04为“3.3”v,对应参数P1.05最大输出频率50Hz。

Hi3861编程

  1. 将GPIO_1初始化为PWM4输出,占空比从0-99%,每两秒钟占空比增加10%,测试变频器的输出频率是否可以在0-50HZ之间对应改变。
引脚 GPIO0 GPIO1 GPIO2 GPIO3 GPIO4 GPIO5 GPIO6 GPIO7 GPIO8 GPIO9 GPIO10 GPIO11 GPIO12 GPIO13 GPIO14
功能5 PWM3 PWM4 PWM2 PWM5 PWM1 PWM2 PWM3 PWM0 PWM1 PWM0 PWM1 PWM2 PWM3 PWM4 PWM5
  1. 代码如下:
#include <stdio.h>
#include <unistd.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "iot_pwm.h"
#include "iot_gpio.h"

#define PWM_TASK_STACK_SIZE 2048
#define PWM_TASK_PRIO 25
#define DAC_GPIO 1

static void PWMTask(void)
{
    unsigned int i;

    //初始化GPIO_1,设置引脚复用功能为PWM,引脚为输出模式,初始化PWM4端口
    IoTGpioInit(DAC_GPIO);
    IoTGpioSetFunc(DAC_GPIO, 5);
    IoTGpioSetDir(DAC_GPIO, IOT_GPIO_DIR_OUT);
    IoTPwmInit(4);

    while (1)
    {
        for (i = 0; i < 10; i++)
        {
            //间隔一定时间,输出0-90%占空比的PWM波,驱动变频器频率改变
            IoTPwmStart(4, i * 10, 40000);
            printf("   %d Hz \n", i * 5);
            //间隔2秒,便于观察
            sleep(2);
        }
        // 输出99%占空比,50HZ
        IoTPwmStart(4, i * 10 - 1, 40000);
        printf("   %d Hz \n", i * 5);
        sleep(2);

        i = 0;
    }
}

static void PWMExampleEntry(void)
{
    osThreadAttr_t attr;

    attr.name = "PWMTask";
    attr.attr_bits = 0U;
    attr.cb_mem = NULL;
    attr.cb_size = 0U;
    attr.stack_mem = NULL;
    attr.stack_size = PWM_TASK_STACK_SIZE;
    attr.priority = PWM_TASK_PRIO;

    if (osThreadNew((osThreadFunc_t)PWMTask, NULL, &attr) == NULL)
    {
        printf("Falied to create PWMTask!\n");
    }
}

APP_FEATURE_INIT(PWMExampleEntry);

编译,烧录

  1. 点击DevEco Device Tool待编译工程下“PROJECT TASK"的“Clean"清除之前的编译文件。
  2. 点击“PROJECT TASK"的“Build”开始编译。
  3. 9月2日,DevEco Device Tool升级到V2.2 Beta2后,点击“PROJECT TASK"的“Upload”后,等待“BootromDownloadBoot”出现后再复位开发板,这是V2.2 Beta2相对之前版本的变化
    让Hi3861驱动交流电机变频器-鸿蒙开发者社区
  4. V2.2 Beta2相比之前版本,下载速度较慢,请耐心等待。

运行结果

  1. 连接开发板和变频器,通电后,操作面板按键启动变频器,可以看到输出频率从0到50Hz间隔2秒不断变化,基本达到实验的目的。演示视频见附件。
  2. Hi3861PWM的占空比和变频器实际输出频率的对应关系见下表:
PWM占空比 % 0 10 20 30 40 50 60 70 80 90 99
变频器理论频率 Hz 0 5 10 15 20 25 30 35 40 45 50
实际输出频率 Hz 0 4.44 9.68 14.76 20.00 25.23 30.31 35.55 40.63 45.55 50
  1. 同样适用于润和和其它基于Hi3861的开发板。
  2. 实验中变频器为380V供电,须注意操作安全。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
Hi3861驱动变频器演示视频.zip 2.3M 42次下载
已于2021-9-30 10:17:45修改
5
收藏 4
回复
举报
2条回复
按时间正序
/
按时间倒序
mb6130787976b5d
mb6130787976b5d

变频器可以连上手机吗?

1
回复
2021-9-30 09:11:14
鸿联
鸿联

可以的

回复
2021-9-30 10:09:50
回复
    相关推荐