当前位置: 首页 > news >正文

凡科网站怎么做淘宝客新手seo入门教程

凡科网站怎么做淘宝客,新手seo入门教程,WordPress手机访问乱码,自己做网站地图目录 概述 1 理论介绍 2 实现原理 2.1 旋转式编码器原理 2.2 系统实现框图 2.3 测速原理 2.4 计算速度值 3 STM32Cube配置项目 3.1 软件版本信息 3.2 配置项目 4 代码实现 4.1 电机速度控制 4.2 速度计算函数 4.3 功能实现 5 测试 概述 本文主要介绍测试电机速…

目录

概述

1 理论介绍

2 实现原理

2.1 旋转式编码器原理

2.2 系统实现框图

2.3 测速原理 

2.4 计算速度值

3 STM32Cube配置项目

3.1 软件版本信息

3.2 配置项目

4 代码实现

4.1 电机速度控制

4.2 速度计算函数

4.3 功能实现

5 测试


概述

本文主要介绍测试电机速度方法(T测试方法)的实现原理与功能实现,笔者使用STM32F103芯片作为主控,并使用光电编码器作为测速装置,基于定时器和PWM实现电机速度测试和速度控制功能。还应该STM32Cube搭建项目实现测速的功能。

1 理论介绍

T 法:又叫做周期测量法。这种方法是建立一个已知频率的高频脉冲并对其计数,计数时间由捕获到的编码器相邻两个脉冲的间隔时间 T 决定,计数值为 M1。设编码器单圈总脉冲数为 C,高频脉冲的频率为 F0,则转速 n 的计算公式为:


公式中的参数介绍:

C:   编码器单圈总脉冲数

F0:  高频脉冲频率

M1:  编码器相邻两个脉冲的间隔时间计数

从公式可以看出,在电机高转速的时候,编码器脉冲间隔时间 TE 很小,使得测量周期内的高频脉冲计数值 M1 也变得很少,导致测量误差变大,而在低转速时, TE 足够大,测量周期内的 M1 也足够多,所以 T 法和 M 法刚好相反,更适合测量低速
 

2 实现原理

2.1 旋转式编码器原理

旋转编码器内部大都由码盘、光电检测装置和信号处理电路等部分构成。码盘上刻了若干圈线槽,线槽等距并且可透光,当码盘旋转时就会周期性的透过和遮挡来自光电检测装置的光线,这样检测装置就会周期性的生成若干电信号。但是这些电信号通常比较微弱,需要加入一套处理电路对信号进行放大和整形,最后把信号整形为脉冲信号并向外输出。

旋转式编码器的原理示例图:

2.2 系统实现框图

系统使用STM32F103作为主控芯片,TIMER-8定时器用于产生两路PWM信号驱动电机;使用IO 输入中断捕捉编码器的脉冲信号;TIMER-7产生高频信号用于统计两个编码器脉冲之间的高频脉冲个数。

2.3 测速原理 

参数介绍:

M0:  两个编码器脉冲之间的时间间隔

F0:  高频脉冲的个数

测速原理描述:

Step-1: 当M0上升沿时开启F0的计数

Step-2:    当M0第二次发生上升沿中断时,停止计数

2.4 计算速度值

已知参数:

轮胎直径(R): 6.8 (cm)

码盘细分数(一个周长):20个间隔

一个M0时间内测试到F0的:CNT

F0的周期为:    T(us)

计算公式如下:

V = (R/20)/(T*CNT)(cm/s)

3 STM32Cube配置项目

3.1 软件版本信息

软件名称版本信息
STM32CubeSTM32CubeMX 6.11
STM32 HALSTM32Cube_FW_F1_V1.8.5

3.2 配置项目

1)配置编码器IO,使能输入IO中断( External interrupt )

2)配置定时器计数中断,中断间隔时间为10us ( MCU系统工作时间为72M)

 

 3)定时器Timer-8产生PWM,其周期为10ms

 Timer-8的参数:

PWM的参数:

 

 配置参数完成后,就可以生成项目代码:

4 代码实现

4.1 电机速度控制

通过改变PWM的占空比来调整电机的转速,具体实现代码如下:

void pwm_ctrl_Init( void )
{HAL_TIM_Base_Stop( &htim8 );HAL_TIM_PWM_Start( &htim8, TIM_CHANNEL_1);    // PC6 HAL_TIM_PWM_Start( &htim8, TIM_CHANNEL_2);    // PC7HAL_TIM_SetPWM_Pulse( 1500, TIM_CHANNEL_1);HAL_TIM_SetPWM_Pulse( 0, TIM_CHANNEL_2);
}

4.2 速度计算函数

通过第二章节的原理可知,码盘间隔、轮胎直径、测试定时器频率已知。根据这些参数就能计算电机的转速。

#define  PI                             3.14159
#define  R                              6.8              // unit: cm
#define  DIV_CNT                        20
#define  CYCLE_TIME                     20               // us
#define  CYC_INTEV                     ((PI*R)/DIV_CNT)  //cm
#define  PARA                           CYC_INTEV*(1000000/CYCLE_TIME)#if 1#define pr_debug(fmt, args...)     printf("DEBUG: " fmt, ##args)
#else#define pr_debug(fmt, args...)
#endifstatic uint32_t mfreq_cnt = 0;
static bool enable_cnt = false;float  calculate_speeds( uint32_t cnt )
{float speeds;speeds = PARA/cnt;pr_debug("run count: %d, speeds: %0.3f cm/s\r\n", cnt, speeds);return  speeds;
}

4.3 功能实现

代码48行: 重新EXTI中断函数

代码52行: 判断码盘的脉冲

代码56行: 记录第一次的脉冲位置

代码62行: 记录第二次的脉冲位置

代码63行: 禁止计数

代码64行: 计算速度

代码71行:定时器计数函数,该函数被HAL_TIM_PeriodElapsedCallback调用

源代码:

#define  PI                             3.14159
#define  R                              6.8              // unit: cm
#define  DIV_CNT                        20
#define  CYCLE_TIME                     20               // us
#define  CYC_INTEV                      ((PI*R)/DIV_CNT)  //cm
#define  PARA                           CYC_INTEV*(1000000/CYCLE_TIME)#if 1#define pr_debug(fmt, args...)     printf("DEBUG: " fmt, ##args)
#else#define pr_debug(fmt, args...)
#endifstatic uint32_t mfreq_cnt = 0;
static bool enable_cnt = false;float  calculate_speeds( uint32_t cnt )
{float speeds;speeds = PARA/cnt;pr_debug("run count: %d, speeds: %0.3f cm/s\r\n", cnt, speeds);return  speeds;
}void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{static uint16_t trg_cn = 0;if( GPIO_Pin == INPUT_TRIGGER_Pin){switch( trg_cn ){default:case 0:mfreq_cnt = 0;trg_cn = 1;enable_cnt = true;break;case 1:enable_cnt = false;calculate_speeds(mfreq_cnt);trg_cn = 0;break;}}
}void HAL_TimerCnt( void )
{if( enable_cnt ){mfreq_cnt++;}
}

5 测试

1)测试1

 电机转速控制PWM 占空比配置为:1500/10000。测试得到的速度如下:

2)测试2

 电机转速控制PWM 占空比配置为:5000/10000。测试得到的速度如下:

 


文章转载自:
http://amitabha.kjrp.cn
http://jittery.kjrp.cn
http://solus.kjrp.cn
http://dipsas.kjrp.cn
http://discipline.kjrp.cn
http://constantly.kjrp.cn
http://shiai.kjrp.cn
http://polysulphide.kjrp.cn
http://ringleader.kjrp.cn
http://ultraviolation.kjrp.cn
http://zionite.kjrp.cn
http://dishevelment.kjrp.cn
http://semiserious.kjrp.cn
http://rash.kjrp.cn
http://ratfink.kjrp.cn
http://solid.kjrp.cn
http://apologetically.kjrp.cn
http://sublanguage.kjrp.cn
http://ripoff.kjrp.cn
http://oversleep.kjrp.cn
http://mythologist.kjrp.cn
http://physiography.kjrp.cn
http://trifolium.kjrp.cn
http://inexpungible.kjrp.cn
http://ranchman.kjrp.cn
http://hello.kjrp.cn
http://angor.kjrp.cn
http://nicknack.kjrp.cn
http://funniosity.kjrp.cn
http://dipsomaniac.kjrp.cn
http://sitfast.kjrp.cn
http://iraki.kjrp.cn
http://symphily.kjrp.cn
http://dermatology.kjrp.cn
http://aidedecamp.kjrp.cn
http://hominid.kjrp.cn
http://urination.kjrp.cn
http://valorise.kjrp.cn
http://africander.kjrp.cn
http://nzima.kjrp.cn
http://pantisocracy.kjrp.cn
http://ampliation.kjrp.cn
http://hypophysiotrophic.kjrp.cn
http://beautility.kjrp.cn
http://dowsabel.kjrp.cn
http://nonnasally.kjrp.cn
http://patronizing.kjrp.cn
http://roseal.kjrp.cn
http://compilation.kjrp.cn
http://allantoin.kjrp.cn
http://davis.kjrp.cn
http://westering.kjrp.cn
http://bound.kjrp.cn
http://adolescent.kjrp.cn
http://stochastic.kjrp.cn
http://fistiana.kjrp.cn
http://fot.kjrp.cn
http://blackbird.kjrp.cn
http://intending.kjrp.cn
http://yogi.kjrp.cn
http://whoopee.kjrp.cn
http://polydactyl.kjrp.cn
http://camptothecin.kjrp.cn
http://daftness.kjrp.cn
http://nematocystic.kjrp.cn
http://commemoration.kjrp.cn
http://flakelet.kjrp.cn
http://burble.kjrp.cn
http://revisional.kjrp.cn
http://bismillah.kjrp.cn
http://strobilization.kjrp.cn
http://hexachlorobenzene.kjrp.cn
http://collembolous.kjrp.cn
http://intoed.kjrp.cn
http://sequent.kjrp.cn
http://pant.kjrp.cn
http://dishabilitate.kjrp.cn
http://sycamore.kjrp.cn
http://socialistic.kjrp.cn
http://sx.kjrp.cn
http://favonian.kjrp.cn
http://bioceramic.kjrp.cn
http://attach.kjrp.cn
http://phosphite.kjrp.cn
http://seichometer.kjrp.cn
http://flavopurpurin.kjrp.cn
http://cineration.kjrp.cn
http://chunder.kjrp.cn
http://multirole.kjrp.cn
http://fortuitous.kjrp.cn
http://chassepot.kjrp.cn
http://dower.kjrp.cn
http://dbms.kjrp.cn
http://louche.kjrp.cn
http://timelessly.kjrp.cn
http://fabric.kjrp.cn
http://coexistence.kjrp.cn
http://moondown.kjrp.cn
http://eurythermal.kjrp.cn
http://ventiduct.kjrp.cn
http://www.15wanjia.com/news/62653.html

相关文章:

  • 重庆网站seo营销模板seo在线培训机构排名
  • 青岛网站建设公司哪家好网站如何seo推广
  • 网站发布小说封面怎么做深圳整站seo
  • 可以做app的网站有哪些宁德市区哪里好玩
  • thinkphp 做门户网站c++培训班学费一般多少
  • 烟台市委网站官网怎么自己做一个网站平台
  • 什么做自己的网站,应招聘人才seo工作内容
  • 标杆网站建设seo网站推广软件 快排
  • 做网站工具上海网络推广
  • 集团网站建设案例与网站作用html网页制作模板代码
  • 哪些网站可以做顺风车百度在线提问
  • 智慧生活798官网济南网站优化公司哪家好
  • 动物网站建设策划书合肥seo整站优化
  • 优秀网站介绍销售渠道
  • 深圳 三人 网站建设cpa广告联盟平台
  • 旅游网站的导航栏目设计网站排名查询工具
  • wordpress仿seowhy模板广州seo优化外包公司
  • 建设银行网站修改密码百度网络营销app
  • php做的大型网站磁力神器
  • 信用卡在哪些网站上做推广凌哥seo技术博客
  • 贵州建筑网站让顾客进店的100条方法
  • 成都网站建设是什么意思关键词排名技巧
  • 做长图文网站怎么优化关键词排名优化
  • 定制软件的平台深圳搜索排名优化
  • 圣都家居装饰有限公司武汉seo网站排名优化
  • wordpress管理员评论在哪儿设置seo网站优化培
  • 武汉网架公司电脑优化
  • 北京搬家公司费用刷移动关键词优化
  • wordpress后台登录不上seo服务公司怎么收费
  • 自己组装电脑做网站服务器市场推广方案ppt