
开源协议
:GPL 3.0
(未经作者授权,禁止转载)创建时间:2024-06-17 18:50:15更新时间:2024-07-17 17:16:03
描述
一、立项需求
您是否为测量频率而烦恼?
电机转速频率
电路功能频率
本项目可增加霍尔传感器 获取电机每秒转速
二、功能展示

这是测量示波器的1khz挂口输出的频率
结果证明 误差只有±1 符合测量结果
三、原理部分
本项目基于STC32G进行开发
使用高级PWM定时器进行频率捕获

四:电路设计部分
电池充电电路设计部分:
采用FM4057S42做充电管理部分

采用TX4314为电源开关部分

ADC电路设计部分:
ADC模块仿真图 由积分电路和电压跟随组成 仿真目的是为了更好的获取R1和C1的值

五:软件程序部分
PWM中断函数
void PWM_ISR() interrupt PWMA_VECTOR
{
if(PWMA_SR1 & 0x01)// 更新中断(PWM计数器溢出)
{
P45=!P45;
PWMA_SR1 &= ~0x01;// 清零更新中断标志
cap_overflow ++;// 捕获值要加上计数器一次溢出
}
if (PWMA_SR1 & 0X02)// 当捕获中断标志置1
{
P46=!P46;
PWMA_SR1 &= ~0X02;// 清零捕获中断标志
cap_old = cap_new;// 更新当前捕获值
cap_new = (PWMA_CCR1H << 8) + PWMA_CCR1L;// 读取计数值低8位,并合并存入cap_new
cap = ((uint32_t)cap_overflow<<16) + cap_new - cap_old;// 计算两次捕获差值
cap_overflow = 0;
}
}
PWM初始化设置
void PWM_Config() // PWM初始化设置
{
//--------------------------PWMA设置-捕获上升沿----------------------------------
PWMA_ENO = 0x00;// 关闭捕获/输出通道
PWMA_ENO = 0x00;// 关闭捕获/输出通道
PWMA_CCER1 = 0x00;// 关闭通道
PWMA_CCMR1 = 0x01; // 通道模式配置为输入
PWMA_SMCR = 0x56; // 输入1,触发模式
PWMA_CCER1 = 0x01;// 使能捕获/比较通道1
PWMA_CCER1 |= 0x00; // 设置捕获/比较通道1上升沿捕获
//PWMA_CCER1 |= 0x20;// 设置捕获/比较通道1下降沿捕获
PWMA_IER = 0x03; // 使能捕获中断
PWMA_CR1 = 0x01; // 启动PWMA定时器
}
六: 组装采购
加上vfd的成本大约为20rmb 主打的就是一个丐
芯片购买注意事项:

下单时注意芯片的IO口数量为32脚(7x7)
VFD屏幕采购链接:

PCB生产:

打板方式可使用嘉立创下单助手导入Gerber后领卷免费打板
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程添加到专辑
0
0
分享
侵权投诉


评论