基于DM164137的PWM电机调速试验(Funpack第七期)
使用DM164137开发板和MIKROE-4114模块,实现驱动电机正反转和调速。 每按下S1按键,电机可以在停止、低速正转、高速正转、停止、低速反转、高速反转等6种状态依次切换。
标签
PWM
Funpack第七期
PIC
DM164137
MIKROE-4114
chinaking
更新2021-04-13
900

一、功能描述

完成funpack第七期的任务二:

选择从Digi-Key购买mikroBUS扩展模块,插在本期板卡上完成任意一个项目。

具体功能:购买了一个MIKROE-4114模块,该模块可驱动电机正反转和调速。

每按下S1按键,电机可以在停止、低速正转、高速正转、停止、低速反转、高速反转等6种状态依次切换。

软件:MPLAB X IDE v5.45

硬件:DM164137开发板(核心芯片PIC16F18446)

    MIKROE-4114电机驱动模块(核心芯片TB67H451FNG)

      小直流电机 1个

      充电宝1个

FvmW0c2D5Vdi0If_KwzNUbSaZVOb

                                                   图1 系统连接图

二、具体实现

2.1 MCC配置

TMR4和PWM6设为一组,TMR6和PWM7设为一组,两组配置相同。

Fkp_-w8S4LGPMd3iGmbrfpPN0lqJ

                                          图2 PWM配置

FtPcBHtzrOKa7plp6i-nFiRxtfp8

                                        图3 定时器配置

FmSiiaI8DqapQ1ONqs0XVaYUlad4

                                      图4 Pin Module配置

2.2主要代码

本次代码参考了github的pic16f18446-curiosity-lpc-demo-code工程。

将原demo按下S1切换不同demo程序段,改成切换电机控制PWM值。

PWM6_LoadDutyValue(0)设置占空比。

函数参数和占空比的关系,可结合MCC中PWM设置查看(图2)。

参数值 PWMDC Value

占空比%  Duty Cycle

0

0

5

20

12

40

18

60

25

80

31

100

                         表1 PWM函数参数值和输出占空比关系

void main(void) {
    SYSTEM_Initialize();

    // Disable the pre-enabled interrupts of the MCC    
    INTERRUPT_TMR0InterruptDisable();

    while (1) {
        checkButtonS1();
        switch (labNumber) {
            case 1: PWM6_LoadDutyValue(0);//停止
                    PWM7_LoadDutyValue(0);
                    LED_D5_SetHigh();  
                break;
            case 2: PWM6_LoadDutyValue(18);//低速正转占空比60%
                    PWM7_LoadDutyValue(0);
                    LED_D5_SetLow(); 
                break;
            case 3: PWM6_LoadDutyValue(25);//高速正转占空比80%
                    PWM7_LoadDutyValue(0);
                    LED_D5_SetLow(); 
                break;
            case 4: PWM6_LoadDutyValue(0);//停止
                    PWM7_LoadDutyValue(0);
                    LED_D5_SetHigh(); 
                break;   
            case 5: PWM6_LoadDutyValue(0);
                    PWM7_LoadDutyValue(18); // 低速反转占空比60%
                    LED_D5_SetLow(); 
                break;
            case 6: PWM6_LoadDutyValue(0);//
                    PWM7_LoadDutyValue(25); // 高速反转占空比80%
                    LED_D5_SetLow(); 
                break;   
              }

        if (switchEvent) {
            nextLab();
        }
    }
}

 三、心得体会

     这期开发难度不大,MCC配置和第一期stm32cubeIDE使用非常相似的,主程序代码也比较简单。

后续计划将此次试验应用在智能小车控制上。

第一,准备把DM164137开发板加上遥控功能,计划结合funpack第4期的BLE蓝牙板使用。也可能单独用BLE蓝牙板控制电机驱动板。

第二,因本期电机驱动板TB67H451FNG只有1路输出,只能控制小车的前进后退。若需在无舵机的情况下,实现差速转向,至少需要电机驱动板有2路输出。目前选型是TB6612FNG。

待完成后分享。

 

 

软硬件
电路图
附件下载
02-说明文档 基于DM164137的PWM电机调速试验(Funpack第七期)-老胡.docx
03-代码 基于DM164137的PWM电机调速试验(Funpack第七期) 老胡.zip
团队介绍
老胡,自动化工程师,嵌入式开发爱好者。
团队成员
chinaking
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号