博客
关于我
【STM32学习】(19)STM32实现直流电机测转速(霍尔传感器)
阅读量:172 次
发布时间:2019-02-28

本文共 1444 字,大约阅读时间需要 4 分钟。

最近在学习STM32单片机,想记录一下如何通过霍尔传感器测量直流电机的转速。

材料准备:

  • 单片机:STM32L052K8
  • 霍尔传感器
  • 直流电机
  • 霍尔传感器的引脚解读

    霍尔传感器的引脚一般包括供电、信号输出和地连接。通过实际接线和测试可以确认信号引脚的状态。

    测转速的实现原理

    霍尔传感器检测到金属物体时会输出低电平信号,当物体离开时信号变为高电平。这种低电平和高电平的交替信号可以用来记录电机的转动圈数。

    接线方法

  • 方法一
    • 电机接在PA4口
    • 霍尔传感器接在PA6口
    • 使用定时器实现10us定时,定时器中断触发回调函数
  • 代码实现

    void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {    if (htim->Instance == htim2.Instance) {        cnt++;        if (HAL_GPIO_ReadPin(HUOER_GPIO_Port, HUOER_Pin) == 0 && 0 == flag) {            count_c++;            flag = 1;        } else if (HAL_GPIO_ReadPin(HUOER_GPIO_Port, HUOER_Pin) == 1) {            flag = 0;        }        if (cnt >= 100000) {            printf("\n\r***1秒钟电机旋转的圈数为:%d 圈****\n\r", count_c);            count_c = 0;            cnt = 0;        }    }}
    int main(void) {    /* 用户代码开始 */    /* 用户代码结束 */    HAL_Init();    SystemClock_Config();    MX_GPIO_Init();    MX_USART1_UART_Init();    MX_TIM2_Init();    printf("\n\r***wantin***\n\r");    HAL_GPIO_WritePin(MOTO_GPIO_Port, MOTO_Pin, GPIO_PIN_SET);    HAL_TIM_Base_Start_IT(&htim2);    while (1) {        if (HAL_GPIO_ReadPin(HUOER_GPIO_Port, HUOER_Pin) == 0 && 0 == flag) {            count_c++;            flag = 1;        } else if (HAL_GPIO_ReadPin(HUOER_GPIO_Port, HUOER_Pin) == 1) {            flag = 0;        }    }    /* 用户代码开始 */}

    方法二(不建议使用)

  • 定时器设置1s
  • 在定时器中间周期中读取霍尔传感器信号并统计圈数
  • 测转速效果

    通过上述方法可以实现对直流电机转速的准确测量。两种方法的核心区别在于定时器的使用方式,但实际效果基本一致。

    总结

    通过以上方法,可以轻松实现直流电机的转速测量。选择具体方法需根据实际需求进行权衡。

    转载地址:http://pxnj.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现Convex hull凸包问题算法(附完整源码)
    查看>>
    Objective-C实现convolution neural network卷积神经网络算法(附完整源码)
    查看>>
    Objective-C实现convolve卷积算法(附完整源码)
    查看>>
    Objective-C实现coulombs law库仑定律算法(附完整源码)
    查看>>
    Objective-C实现counting sort计数排序算法(附完整源码)
    查看>>
    Objective-C实现countSetBits设置位的数量算法(附完整源码)
    查看>>
    Objective-C实现currency converter货币换算算法(附完整源码)
    查看>>
    Objective-C实现cycle sort循环排序算法(附完整源码)
    查看>>
    Objective-C实现data transformations数据转换算法(附完整源码)
    查看>>
    Objective-C实现datamatrix二维码识别 (附完整源码)
    查看>>
    Objective-C实现DateToDay 方法算法(附完整源码)
    查看>>
    Objective-C实现DBSCAN聚类算法(附完整源码)
    查看>>
    Objective-C实现DBSCAN聚类算法(附完整源码)
    查看>>
    Objective-C实现decision tree决策树算法(附完整源码)
    查看>>
    Objective-C实现degreeToRadian度到弧度算法(附完整源码)
    查看>>
    Objective-C实现depth first search深度优先搜索算法(附完整源码)
    查看>>
    Objective-C实现DES和3DES加解密算法(附完整源码)
    查看>>
    Objective-C实现des文件加密算法(附完整源码)
    查看>>
    Objective-C实现detectDirectedCycle检测定向循环算法(附完整源码)
    查看>>
    Objective-C实现detectUndirectedCycle检测无向循环算法(附完整源码)
    查看>>