cubemx stm32 a3144模块 霍尔效应传感器 风扇转速驱动代码
a3144
资料
a3144是一种开关型霍尔效应传感器,由下图所知,他有3个引脚,(从丝印正对来看)从左到右是VCC、GND和输出的型号引脚。
需要注意的是:这里的的VCC的范围在4.5到24V之间,输出的饱和电压虽然在400mv以下,但是经过我的实验,发现是可以被stm32单片机引脚的输入模式检测到的
使用方法(这里测速使用)
拿丝印方向正对 磁极的S极,会输出一个高电平
cubemx配置
开个定时器,配置1ms进中断
开个GPIO口为输入模式
风扇硬件安装以及代码
硬件部分
安装
在旋转轴两边各贴一个磁铁,对外的磁极为S极
硬件使用
a3144模块的丝印方向正对风扇
代码部分
a3144.c
#include "a3144.h"
#include "tim.h"#define A3144_Port GPIOB
#define A3144_PIN GPIO_PIN_13uint16_t cntFanSpeed = 0; // 风扇速度
uint16_t cntFanCnt = 0; // 风扇计数// 转速计数
void CountFanSpeed(void)
{static uint8_t Flip = 0;if(Flip != HAL_GPIO_ReadPin(A3144_Port, A3144_PIN)) // 判断是否翻转{Flip = HAL_GPIO_ReadPin(A3144_Port, A3144_PIN);cntFanCnt++;}
}// 获取转速
unsigned short int Get_FanSpeed(void)
{static uint16_t beforeSpeed = 0, cntClear = 0;cntClear++;if(cntClear == 5) // 判断长时间为零,就是停转了{cntClear = 0;beforeSpeed = 0;}if(cntFanSpeed != 0) // 若是当前转速有计,则获取最新速度{cntClear = 0;beforeSpeed = cntFanSpeed;cntFanSpeed = 0;}return beforeSpeed;
}void a3144_Init(void)
{HAL_TIM_Base_Start_IT(&htim3);
}/*定时器中断*/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{static uint16_t cnt1s = 0;if(htim == &htim3){CountFanSpeed(); // 判断翻转计算cnt1s++;if(cnt1s >= 1000) // 到达1s{cnt1s = 0;cntFanSpeed = cntFanCnt/4;cntFanCnt = 0;}}
}
a3144.h
#ifndef __A3144_H_
#define __A3144_H_/* a3144初始化 */
void a3144_Init(void);
/* 读引脚电平 */
unsigned short int Get_FanSpeed(void);#endif /* __A3144_H_ */
main.c
头文件
include "a3144.h"
include "U_Print.h" // 用户串口打印函数
初始化
a3144_Init();
循环中
U_Printf("Fan speed : %d\r\n", Get_FanSpeed());
效果展示
资料
芯片数据手册
cubemx stm32 a3144模块 霍尔效应传感器 风扇转速驱动代码相关推荐
- 【鸿蒙OS开发入门】18 - HDF驱动子系统:加速度计传感器 Driver层驱动代码分析
[鸿蒙OS开发入门]18 - HDF驱动子系统:加速度计传感器 Driver层代码分析 一.如何添加速度计传感器驱动代码(代码.编译.配置) 1.驱动代码实现 2.驱动编译配置 2.1 linux 编 ...
- cubemx stm32 lu90614模块 人体温度检测模块 可以替代温枪 驱动代码
lu90614 使用串口通信在,指值得注意的是,他的TX接单片机的TX,RX接单片机的RX,和其他的串口设备不一样. 模式切换包 lu90614有两种模式, 一个是物温模式,一个是体温模式(检测人体温 ...
- [Arduino] 二氧化碳传感器 ELT IoT-300E 驱动代码
使用方法.原理都在JavaDoc (ArduinoDoc) 里面了,复制即用: // IoT300E.h/*** For ELT Sensor IoT-300E* @version 1.0* @sin ...
- 【霍尔效应传感器模块与 Arduino】
霍尔效应传感器模块与 Arduino 前言 霍尔效应传感器引脚 霍尔效应传感器模块如何工作? 霍尔效应传感器的类型 单极霍尔效应传感器 双极霍尔效应传感器 霍尔效应传感器模块组成 关于霍尔效应传感器的 ...
- OLED显示模块的电路连接和驱动(树莓派)
一.电路连接 OLED显示模块焊接上I2C仅有四个引脚,分别为接电(+3V).接地(GND).SCL和SDA,分别利用母对母杜邦线将SCL和SDA接口接入树莓派GPIO3和GPIO2口,接地和接电分别 ...
- STM32 BMP280模块 获取气压温度高度传感器数据 TFT显示
STM32 BMP280模块 获取气压温度高度传感器数据 TFT显示 简介 BMP280是博世最新推出的数字气压传感器,具有卓越的性能和低廉的价格,相对精度为±0.12 hPa(相当于±1米),传感器 ...
- 霍尔效应传感器A3144磁力开关的基本操作和说明
在本篇文章中,我们将学习有关霍尔效应传感器A3144磁力开关的基本知识和说明.我们还将设计一个使用晶体管的开关电路,以帮助检测磁力北极和南极.它也可以用来检测磁场的存在.霍尔效应传感器,顾名思义,是按 ...
- 基于数字电路交通灯信号灯控制系统设计-基于单片机病房温度监测与呼叫系统设计-基于STM32的无线蓝牙心电监护仪系统设计-基于STM32的智能蓝牙温控风扇控制设计-基于STM32的智能温室控制系统设计
1617基于数字电路交通灯信号灯控制系统设计(仿真电路,论文报告) 摘 要:交通灯控制系统在城市交通控制中发挥着重要的作用,本次课程设计就是以城市交通灯控制系统为背景的,主要通过运用学过的数字电路 ...
- STM32+光敏模块
STM32+光敏模块 器件选择 4线光敏传感器介绍 光敏模块原理图 光敏模块实物 光敏模块引脚说明 CubeMX配置 代码主体部分 结果展示 器件选择 硬件平台选择STM32F103C8T6最小系统开 ...
最新文章
- 石锤!谷歌排名第一的编程语言,死磕这点,程序员都收益
- 更多的结构化命令(第十三章)
- springcloud 组件_深入理解 Spring Cloud 核心组件与底层原理
- Python列表的常用方法
- [css] 举例说明伪类:focus-within的用法
- vm虚拟远程部署windows驱动
- 修改list中对象的值_怎样在S7-200 SMART中监控和修改变量的值?
- git命令之git rebase 的用法
- matlab循环取出矩阵的某一行并标示上A1 A2 A3
- Excel数据透视表制作
- 微信小程序图片上传组件
- 不再以讹传讹 剖析720P 1080i和1080P
- C# 通过反射获取类属性标识名称
- 达人评测联想小新笔记本air14 2023和联想小新pro162022款选那个好
- 用计算机进行绘画教案,电脑绘画的教案
- react中配置less-loader报错
- 一个程序员码农的迷茫期
- 【老生谈算法】matlab实现多种滤波器算法源码——多种滤波器
- 你有新的推送消息,请注意查收
- 什么是EasyUi?