OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5569|回复: 8

超声波雾化片DIY加湿器

[复制链接]

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2017-4-2
在线时间
10 小时
发表于 2017-7-9 19:48:34 | 显示全部楼层 |阅读模式
5金钱
本人在一个帖子中看到用考毕兹振荡器驱动的超声波换能片,于是想到STM32F1的PWM功能来得到一个高频脉冲来驱动它。如果是一款工作电压24v、谐振频率为110khz的换能片,这样接合适吗
MOS管的栅极用PB8控制,那么我想问的是110khz的谐振频率用32怎么实现,我的想法如代码所示
[mw_shl_code=c,true]int main()
{
  GPIO_InitTypeDef GPIO_InitStructure;
        TIM_OCInitTypeDef TIM_OCInitStructure;
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能或者失能APB2外设时钟
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//使能或者失能APB1外设时钟
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高输出速率50MHz
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出
        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化外设GPIOx寄存器
       
        TIM_TimeBaseStructure.TIM_Prescaler =21;//预分频值
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式
        TIM_TimeBaseStructure.TIM_Period =20;//在下一个更新事件装入活动的自动重装载寄存器周期的值
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;//TDTS = Tck_tim
        TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化

        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//PWM模式1
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//使能
        TIM_OCInitStructure.TIM_Pulse = 0;//脉冲宽度,由这个设置占空比
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//高电平有效

        TIM_OC3Init(TIM4,&TIM_OCInitStructure);//初始化

  TIM_Cmd(TIM4, ENABLE);//使能或者失能TIMx外设
  while(1)
{
  TIM_SetCompare3(TIM4,10 );//设置TIMx捕获比较3寄存器值

}

}
[/mw_shl_code]
具体的我想问下分频系数、自动重装载值怎么算,还有就是TIM_SetCompare3(TIM4,10 )中的那个比较值怎么设定,不知道这种方法是否合适,如果合适的话请大神指导,不合适的话希望能有别的方法

简易的驱动电路

简易的驱动电路
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

227

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3096
金钱
3096
注册时间
2016-4-15
在线时间
350 小时
发表于 2017-7-9 22:44:14 | 显示全部楼层
有一个公式的啊,百度一下32定时器公式,选值就行啦
回复

使用道具 举报

1

主题

374

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1310
金钱
1310
注册时间
2014-7-23
在线时间
418 小时
发表于 2017-7-9 23:08:04 | 显示全部楼层
驱动电路要改。。。板子有的挂的风险
回复

使用道具 举报

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2015-11-20
在线时间
9 小时
发表于 2017-7-10 00:31:42 | 显示全部楼层
guset_03 发表于 2017-7-9 23:08
驱动电路要改。。。板子有的挂的风险

嗯嗯  是的 最好加个光耦隔离
回复

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2017-4-2
在线时间
10 小时
 楼主| 发表于 2017-7-10 09:31:35 | 显示全部楼层
liujie136997963 发表于 2017-7-9 22:44
有一个公式的啊,百度一下32定时器公式,选值就行啦

按谐振频率110khz为例,(72MHZ/分频系数)/重装载值=110khz吗?
回复

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2017-4-2
在线时间
10 小时
 楼主| 发表于 2017-7-10 09:32:15 | 显示全部楼层
理海航母 发表于 2017-7-10 00:31
嗯嗯  是的 最好加个光耦隔离

好的谢谢提醒
回复

使用道具 举报

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2015-11-20
在线时间
9 小时
发表于 2017-7-10 09:39:21 | 显示全部楼层
DERRICK 发表于 2017-7-10 09:31
按谐振频率110khz为例,(72MHZ/分频系数)/重装载值=110khz吗?

参考手册上写的很清楚的
回复

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2017-4-2
在线时间
10 小时
 楼主| 发表于 2017-7-10 09:49:50 | 显示全部楼层
guset_03 发表于 2017-7-9 23:08
驱动电路要改。。。板子有的挂的风险

MOS管的栅极是和漏极、源极是拿二氧化硅层隔离的,32板应该不会有问题吧
回复

使用道具 举报

14

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
449
金钱
449
注册时间
2017-3-31
在线时间
118 小时
发表于 2017-7-10 11:45:49 | 显示全部楼层
顶一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-12-18 16:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表