你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【方案秀】电机转速测量仪

[复制链接]
pythonworld 发布时间:2016-5-12 19:14
本帖最后由 pythonworld 于 2016-5-12 19:13 编辑
( \" |5 s$ _' \. W4 M1 L+ @  v% ?1 B& e/ w0 s
      电机测速仪组成:ST188红外传感器+555施密特触发器+STM32开发板+LCD1602液晶显示屏
  ~2 f: ]$ M6 B基本原理就是用定时器捕获功能测量测速脉冲的周期,然后转化为频率和转速。
' y1 {4 F* ~8 F/ M0 l# B主程序:  ! ~9 g& f! J5 T4 E7 V
int main(void): u# i9 C2 ~4 w5 E- g* E
{1 |) c  C9 x/ T5 @$ ^5 {5 M

5 O- h# l, z. v  /* USER CODE BEGIN 1 */
* r& ~. a! f" z/ B7 u% E5 j! a0 X# `1 [0 o' K5 [
  /* USER CODE END 1 */% D7 t9 W% a2 x* v- S

- K4 w% N7 Z% N' f$ h* H: L3 F  /* MCU Configuration----------------------------------------------------------*/9 M! p/ F' t+ n1 r; [9 F0 J

. O6 s- @# u* G; i1 Y, k  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
9 G5 g1 ^- z( w' a  HAL_Init();
1 K' e& u7 y" W* y. c" U8 L& F" [" w+ X9 m- l3 j5 h
  /* Configure the system clock */0 y: ~. |' X: \, Z5 P
  SystemClock_Config();4 T' I1 O! k0 L. p8 q
( O* V' C4 Z' Y: V: ?: }
  /* Initialize all configured peripherals */& X& |" L% c3 B4 N
  MX_GPIO_Init();
" ^7 {. v3 B: D# Y  MX_USART2_UART_Init();
, o" S7 M% _8 F  MX_TIM2_Init();, ~9 T0 b( r1 Z% p7 x: V% F
5 g" g6 }( F. b! r. j
  /* USER CODE BEGIN 2 */- Z3 C  U, O" H7 G6 m/ r
/ i& F5 N# ~; s9 F
  LCDCOM(0x38);1 J- d$ d2 V/ V: y- O
  LCDCOM(0x0c);; o* u. H# A7 Z; A. P: Y
  LCDCOM(0x06);: ~* ~5 |/ k9 D% v4 I4 {
  LCDCOM(0x01);  
% B& O5 T( ^8 |/ a* d
; H8 q8 ]$ `3 K+ I' F! e: W. t  HAL_TIM_Base_Start_IT(&htim2);+ Q5 ~0 o, c* \) I7 Y: z
  HAL_TIM_IC_Start_IT(&htim2, TIM_CHANNEL_1);" {: z/ J, p/ `/ k& ]4 J) |* ]. E3 ~
__HAL_TIM_ENABLE_IT(&htim2, TIM_IT_TRIGGER);( Y+ T7 ]) k* l9 H8 f$ M" [% s
/ S% v' D8 {7 L' ~, z0 O+ R
  if(HAL_TIM_IC_Start_IT(&htim2, TIM_CHANNEL_1) != HAL_OK)
8 F  k8 Y9 H, P6 \, w# L6 o& R  {
/ W  b2 K6 ]. a  u    /* Starting Error *// O, e# S9 |5 ?+ o
    Error_Handler();$ F$ T4 L+ M6 A5 w4 W  c4 u! m
  }
- v( C5 x  a# P5 b
* l" z/ S' _; ^) A' n% l9 W( }8 o. a1 b& }+ u9 z& l6 k$ B
* @2 J, n" [; J- A0 p
  /* USER CODE END 2 */# X* z6 ~: o8 B# I7 p6 G. K4 |& ^3 n

! h" ^; U# g+ g5 {  /* Infinite loop */
- K3 q, S: \3 |* ^) x: ~  /* USER CODE BEGIN WHILE */) U, s" ?; N8 a0 T
  while (1)
: g- y4 ^7 T2 {" c$ u  {
- ?; V4 ]( Z0 b  /* USER CODE END WHILE */
7 }/ x: Q8 j4 j0 k& ], ]" Y
+ H7 ?! i9 ~1 Q4 D3 b6 b  /* USER CODE BEGIN 3 */, [0 f8 g" \5 w0 i$ @
     HAL_Delay(1200);: h; K, ]4 z" ~. [3 r
     LCDCOM(0x01);% `/ n! D6 w7 R1 x$ g
     HAL_Delay(10);( Y( v( q/ d. b; O" ?8 V- u: u- o
     LCDCOM(0x80);; ?1 b9 @% U" ^' F& H
$ E9 K. r3 A5 `# ]+ ?% c6 ^
     if(status)  a7 N- R+ ?  k4 b; ?8 `+ H
       {/ y; ^! c" f1 s$ V8 i: b0 V! p' D
     status = 0;
) ?  l7 I! q) x  d' `0 o3 y         printf("  %6.0f RPM\n",8000000.0/uwIC2Value2*60);/ `  r4 l) Q6 a3 [0 ]" A8 j
         LCDCOM(0xc0);
* _9 }2 l; V3 J; I         printf("      RUN     \n");; T/ y7 Z* z& [4 e

" k2 z" @! n6 c9 |         if(uwIC2Value2<2)9 l/ a2 \' Z% v: p
           {
. A5 i9 r5 o3 b             LCDCOM(0xc0);0 G+ g4 M, d# s  J  _/ K
             printf("      HIGH     \n");% a/ L! g" b" V1 r$ B
           }
3 }  t+ ~) K# n+ M       }* \1 \; Z/ h% R! b" K7 |4 U
     else
! e1 ]# L. ^0 f        {
# r1 H0 v+ p  r8 ~' q         LCDCOM(0x80);
' t! @; I- w- m/ \, a3 W+ ^# _/ G/ G3 z9 \         printf("       0 RPM \n");$ n: O  z  I' T
         LCDCOM(0xc0);
: z; f! T& |% G5 _  c9 E0 S          printf("      STOP     \n");) ^- H4 E. X& g6 ^( O2 V) E/ e! M
         }: i+ ?: ^9 Q9 H) M
; D7 z3 f  Z% k3 t! o' w
//     LCDCOM(0x18);
/ m( O/ D8 X$ t4 q0 u2 J( _
4 d& U! M" s( c! V! z  }. N! T; m; ^1 Y. j3 n
  /* USER CODE END 3 */- I/ O% c1 {! D6 M
7 Y* d2 U5 i& k
}
" \2 B' D* b+ f$ q8 }( a9 A: Z
! d" E( J8 W# j& G. _+ R定时器触发捕获回调函数 :6 Y6 \# a' a9 ^* B* F, P
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
' ]9 i; b+ f8 ^' D' F/ b{4 N. x4 ^; A9 C  F4 E
//  HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
* K: y$ Q8 ]& G0 \3 Z  uwIC2Value2= HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);# _; {5 z- S. O  R0 a) D% U
  status = 1;
6 [* Y1 \: F; w) N5 Z0 r
8 B; V. B5 d) _2 ~}
6 y1 [$ K, O9 U1 R6 R8 n! b* g9 c5 H4 c
7 _( o& j; \( y

1

1

2

2
收藏 1 评论7 发布时间:2016-5-12 19:14

举报

7个回答
suoma 回答时间:2016-5-12 21:14:00
给电机个图片
anny 回答时间:2016-5-13 09:00:33
给电机个图片
沐紫 回答时间:2016-5-13 09:59:46
谢谢楼主分享!
zengyi703-16313 回答时间:2016-5-13 11:44:18
谢楼主分享
唐英tcy 回答时间:2019-7-19 08:25:17
谢谢分享
4 o0 f1 T. t" ?& H  O
山里人民 回答时间:2019-7-19 08:34:00
签到签到
wilson791010 回答时间:2019-11-7 16:33:49
签到一下!

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版