极品馒头泬19p,国产精品亚洲一区二区三区,狠狠色噜噜狠狠狠7777奇米,国产精品视频一区二区三区无码,国产欧美日韩久久久久

【E2251】基于STM32F103精確控制42步進(jìn)電機(jī)源碼

2021-11-13 19:03:22      索煒達(dá)電子      1824     

項(xiàng)目編號(hào):E2251

文件大?。?.32M

源碼說(shuō)明:帶中文注釋

開(kāi)發(fā)環(huán)境:C編譯器

簡(jiǎn)要概述:

利用STM32F103精確控制步進(jìn)電機(jī)

一、用到的元器件

STM32F103C8T6

42步進(jìn)電機(jī)(42SHDC4040-17B)

TB6600電機(jī)驅(qū)動(dòng)器升級(jí)版


二、42步進(jìn)電機(jī)

1.步進(jìn)電機(jī)的基本知識(shí)

(1)拍數(shù)——每一次循環(huán)所包含的通電狀態(tài)數(shù)(電機(jī)轉(zhuǎn)過(guò)一個(gè)齒距角所需脈沖數(shù))

(2)單拍制分配方式——狀態(tài)數(shù)=相數(shù)

(3)雙拍制分配方式——狀態(tài)數(shù)=相數(shù)的兩倍

(4)步距角 ——步進(jìn)機(jī)通過(guò)一個(gè)電脈沖轉(zhuǎn)子轉(zhuǎn)過(guò)的角度

【E2251】基于STM32F103精確控制42步進(jìn)電機(jī)源碼

N:一個(gè)周期的運(yùn)行拍數(shù)

Zr:轉(zhuǎn)子齒數(shù)

拍數(shù):N=km

m:相數(shù)

k=1單拍制

k=2雙拍制

(5)轉(zhuǎn)速

【E2251】基于STM32F103精確控制42步進(jìn)電機(jī)源碼

6)角度細(xì)分的原理


電磁力的大小與繞組通電電流的大小有關(guān)。

當(dāng)通電相的電流并不馬上升到位,而斷電相的電流也非立即降為0時(shí),它們所產(chǎn)生的磁場(chǎng)合力,會(huì)使轉(zhuǎn)子有一個(gè)新的平衡位置,這個(gè)新的平衡位置是在原來(lái)的步距角范圍內(nèi)。

2. 42步進(jìn)電機(jī)參數(shù)

無(wú)法查找到42SHDC4040-17B型號(hào)的詳細(xì)資料,以通用42步進(jìn)電機(jī)為例:

步距角 1.8°

步距角精度 ±5%

相數(shù) 2相

勵(lì)磁方式 混合式

轉(zhuǎn)子齒數(shù) 50

拍制 雙拍制

其他參數(shù):無(wú)

由步距角=1.8°推算出轉(zhuǎn)子齒數(shù)為50,拍制為雙拍制


3. 42步進(jìn)電機(jī)速度與角度控制

電機(jī)的轉(zhuǎn)速與脈沖頻率成正比,電機(jī)轉(zhuǎn)過(guò)的角度與脈沖數(shù)成正比。所以控制脈沖數(shù)和脈沖頻率就可以精確調(diào)速。

理論上步進(jìn)電機(jī)轉(zhuǎn)速 = 頻率 * 60 /((360/T)*x)

【E2251】基于STM32F103精確控制42步進(jìn)電機(jī)源碼

  • 轉(zhuǎn)速單位: 轉(zhuǎn)/ 分

  • 頻率單位:赫茲

  • x 細(xì)分倍數(shù)

  • T 步距角
    例如,在本實(shí)驗(yàn)中,32細(xì)分;頻率72000 赫茲;步距角1.8°;

【E2251】基于STM32F103精確控制42步進(jìn)電機(jī)源碼

三、TB6600電機(jī)驅(qū)動(dòng)器升級(jí)版參數(shù)

TB6600步進(jìn)電機(jī)驅(qū)動(dòng)器升級(jí)版是一款專業(yè)的兩相步進(jìn)電機(jī)驅(qū)動(dòng),可實(shí)現(xiàn)正反轉(zhuǎn)控制。通過(guò)S1,S2,S3 3位撥碼開(kāi)關(guān)選擇7檔細(xì)分控制(1,2/A,2/B,4,8,16,32,),通過(guò)S4,S5,S6 3位撥碼開(kāi)關(guān)選擇8 檔電流控制(0.5A,1A,1.5A,2A,2.5A,2.8A,3.0A,3.5A)。適合驅(qū)動(dòng)57,42 型兩相、四相混合式步進(jìn)電機(jī)。


1.信號(hào)輸入端

PUL+:脈沖信號(hào)輸入正。( CP+ )

PUL-:脈沖信號(hào)輸入負(fù)。( CP- )

DIR+:電機(jī)正、反轉(zhuǎn)控制正。

DIR-:電機(jī)正、反轉(zhuǎn)控制負(fù)。

EN+:電機(jī)脫機(jī)控制正。

EN-:電機(jī)脫機(jī)控制負(fù)。


共陽(yáng)極接法:分別將PUL+,DIR+,EN+連接到控制系統(tǒng)的電源上, 如果此電源是+5V則可直接接入,如果此電源大于+5V,則須外部另加限流電阻R,保證給驅(qū)動(dòng)器內(nèi)部光藕提供8—15mA 的驅(qū)動(dòng)電流。

共陰極接法:分別將 PUL-,DIR-,EN-連接到控制系統(tǒng)的地端;脈沖輸入信號(hào)通過(guò)PUL+接入,方向信號(hào)通過(guò)DIR+接入,使能信號(hào)通過(guò)EN+接入。若需限流電阻,限流電阻R的接法取值與共陽(yáng)極接法相同。

注:EN端可不接,EN有效時(shí)電機(jī)轉(zhuǎn)子處于自由狀態(tài)(脫機(jī)狀態(tài)),這時(shí)可以手動(dòng)轉(zhuǎn)動(dòng)電機(jī)轉(zhuǎn)軸。

2.電機(jī)繞組連接

A+:連接電機(jī)繞組A+相。

A-:連接電機(jī)繞組A-相。

B+:連接電機(jī)繞組B+相。

B-:連接電機(jī)繞組B-相。


3.電源電壓連接

VCC:電源正端“+”

GND:電源負(fù)端“-”

注意:DC直流范圍:9-32V。不可以超過(guò)此范圍,否則會(huì)無(wú)法正常工作甚至損壞驅(qū)動(dòng)器.


4.撥碼開(kāi)關(guān)

【E2251】基于STM32F103精確控制42步進(jìn)電機(jī)源碼

電流大小設(shè)定

【E2251】基于STM32F103精確控制42步進(jìn)電機(jī)源碼

三、STM32F103

------說(shuō)明:引腳部分在文章末尾有解釋--------


1.引腳連接

A 0——PUL+

A 3——KEY1——V3

A12——DIR+

A11——EAN+

GND——EAN- ——KEY0


2.引腳功能

A0控制電機(jī)轉(zhuǎn)速

A3控制按鍵

A9

A11

A11控制電機(jī)是否為鎖死狀態(tài)

A12控制電機(jī)正反轉(zhuǎn)


3.定時(shí)器

1.本實(shí)驗(yàn)利用定時(shí)器TIM2和定時(shí)器TIM3構(gòu)造一個(gè)主從定時(shí)器,TIM2作為主定時(shí)器控制電機(jī)的轉(zhuǎn)速,TIM3作為從定時(shí)器控制電機(jī)的轉(zhuǎn)動(dòng)角度。

2.電機(jī)的轉(zhuǎn)速和轉(zhuǎn)角還與驅(qū)動(dòng)器自身的細(xì)分?jǐn)?shù)有關(guān),但是驅(qū)動(dòng)器細(xì)分?jǐn)?shù)是通過(guò)影響電機(jī)的步距角來(lái)影響轉(zhuǎn)速和轉(zhuǎn)角,而TIM2和TIM3是控制步進(jìn)電機(jī)的頻率和脈沖數(shù)來(lái)控制轉(zhuǎn)速轉(zhuǎn)角

3.電機(jī)的轉(zhuǎn)速和角度與定時(shí)器的關(guān)系(在不考慮電機(jī)自身的細(xì)分?jǐn)?shù)下)


設(shè)TIM2的定時(shí)周期(即重裝值)為nPDTemp2,預(yù)分頻值為OCPolarity2

?TIM3的定時(shí)周期(即重裝值)為nPDTemp3,預(yù)分頻值為OCPolarity3,

則單片機(jī)產(chǎn)生一個(gè)脈沖所需要的時(shí)間為:

【E2251】基于STM32F103精確控制42步進(jìn)電機(jī)源碼

4.在32細(xì)分的情況下電機(jī)1rad/s和轉(zhuǎn)1°需要的重裝值為nPDTemp2=11.25,nPDTemp3=17.7778。

目錄│文件列表:

 └ 步進(jìn)電機(jī)程序—串口控制速度角度

    │ reade me.txt

    ├ CMSIS

    │  │ core_cm3.c

    │  │ core_cm3.h

    │  │ stm32f10x.h

    │  │ system_stm32f10x.c

    │  │ system_stm32f10x.h

    │  └ startup

    │     │ startup_stm32f10x_cl.s

    │     │ startup_stm32f10x_hd.s

    │     │ startup_stm32f10x_hd_vl.s

    │     │ startup_stm32f10x_ld.s

    │     │ startup_stm32f10x_ld_vl.s

    │     │ startup_stm32f10x_md.s

    │     │ startup_stm32f10x_md_vl.s

    │     └ startup_stm32f10x_xl.s

    ├ FWlib

    │  ├ inc

    │  │  │ misc.h

    │  │  │ stm32f10x_adc.h

    │  │  │ stm32f10x_bkp.h

    │  │  │ stm32f10x_can.h

    │  │  │ stm32f10x_cec.h

    │  │  │ stm32f10x_crc.h

    │  │  │ stm32f10x_dac.h

    │  │  │ stm32f10x_dbgmcu.h

    │  │  │ stm32f10x_dma.h

    │  │  │ stm32f10x_exti.h

    │  │  │ stm32f10x_flash.h

    │  │  │ stm32f10x_fsmc.h

    │  │  │ stm32f10x_gpio.h

    │  │  │ stm32f10x_i2c.h

    │  │  │ stm32f10x_iwdg.h

    │  │  │ stm32f10x_pwr.h

    │  │  │ stm32f10x_rcc.h

    │  │  │ stm32f10x_rtc.h

    │  │  │ stm32f10x_sdio.h

    │  │  │ stm32f10x_spi.h

    │  │  │ stm32f10x_tim.h

    │  │  │ stm32f10x_usart.h

    │  │  └ stm32f10x_wwdg.h

    │  └ src

    │     │ misc.c

    │     │ stm32f10x_adc.c

    │     │ stm32f10x_bkp.c

    │     │ stm32f10x_can.c

    │     │ stm32f10x_cec.c

    │     │ stm32f10x_crc.c

    │     │ stm32f10x_dac.c

    │     │ stm32f10x_dbgmcu.c

    │     │ stm32f10x_dma.c

    │     │ stm32f10x_exti.c

    │     │ stm32f10x_flash.c

    │     │ stm32f10x_fsmc.c

    │     │ stm32f10x_gpio.c

    │     │ stm32f10x_i2c.c

    │     │ stm32f10x_iwdg.c

    │     │ stm32f10x_pwr.c

    │     │ stm32f10x_rcc.c

    │     │ stm32f10x_rtc.c

    │     │ stm32f10x_sdio.c

    │     │ stm32f10x_spi.c

    │     │ stm32f10x_tim.c

    │     │ stm32f10x_usart.c

    │     └ stm32f10x_wwdg.c

    ├ Listing

    │  │ startup_stm32f10x_hd.lst

    │  └ STM32-DEMO.map

    ├ Output

    │  │ core_cm3.crf

    │  │ core_cm3.d

    │  │ core_cm3.o

    │  │ delay.crf

    │  │ delay.d

    │  │ delay.o

    │  │ ExtDll.iex

    │  │ led.crf

    │  │ led.d

    │  │ led.__i

    │  │ lowercomputer_v2.d

    │  │ main.crf

    │  │ main.d

    │  │ main.o

    │  │ misc.crf

    │  │ misc.d

    │  │ misc.o

    │  │ nvic.crf

    │  │ nvic.d

    │  │ nvic.o

    │  │ shangweiji.d

    │  │ startup_stm32f10x_hd.d

    │  │ startup_stm32f10x_hd.o

    │  │ STM32-DEMO.axf

    │  │ STM32-DEMO.build_log.htm

    │  │ STM32-DEMO.hex

    │  │ STM32-DEMO.htm

    │  │ STM32-DEMO.lnp

    │  │ STM32-DEMO.plg

    │  │ STM32-DEMO.sct

    │  │ STM32-DEMO.tra

    │  │ STM32-DEMO_sct.Bak

    │  │ STM32-DEMO_USART1-DEMO.dep

    │  │ stm32f10x_adc.crf

    │  │ stm32f10x_adc.d

    │  │ stm32f10x_adc.o

    │  │ stm32f10x_bkp.crf

    │  │ stm32f10x_bkp.d

    │  │ stm32f10x_bkp.o

    │  │ stm32f10x_can.crf

    │  │ stm32f10x_can.d

    │  │ stm32f10x_can.o

    │  │ stm32f10x_cec.crf

    │  │ stm32f10x_cec.d

    │  │ stm32f10x_cec.o

    │  │ stm32f10x_crc.crf

    │  │ stm32f10x_crc.d

    │  │ stm32f10x_crc.o

    │  │ stm32f10x_dac.crf

    │  │ stm32f10x_dac.d

    │  │ stm32f10x_dac.o

    │  │ stm32f10x_dbgmcu.crf

    │  │ stm32f10x_dbgmcu.d

    │  │ stm32f10x_dbgmcu.o

    │  │ stm32f10x_dma.crf

    │  │ stm32f10x_dma.d

    │  │ stm32f10x_dma.o

    │  │ stm32f10x_exti.crf

    │  │ stm32f10x_exti.d

    │  │ stm32f10x_exti.o

    │  │ stm32f10x_flash.crf

    │  │ stm32f10x_flash.d

    │  │ stm32f10x_flash.o

    │  │ stm32f10x_fsmc.crf

    │  │ stm32f10x_fsmc.d

    │  │ stm32f10x_fsmc.o

    │  │ stm32f10x_gpio.crf

    │  │ stm32f10x_gpio.d

    │  │ stm32f10x_gpio.o

    │  │ stm32f10x_i2c.crf

    │  │ stm32f10x_i2c.d

    │  │ stm32f10x_i2c.o

    │  │ stm32f10x_it.crf

    │  │ stm32f10x_it.d

    │  │ stm32f10x_it.o

    │  │ stm32f10x_iwdg.crf

    │  │ stm32f10x_iwdg.d

    │  │ stm32f10x_iwdg.o

    │  │ stm32f10x_pwr.crf

    │  │ stm32f10x_pwr.d

    │  │ stm32f10x_pwr.o

    │  │ stm32f10x_rcc.crf

    │  │ stm32f10x_rcc.d

    │  │ stm32f10x_rcc.o

    │  │ stm32f10x_rtc.crf

    │  │ stm32f10x_rtc.d

    │  │ stm32f10x_rtc.o

    │  │ stm32f10x_sdio.crf

    │  │ stm32f10x_sdio.d

    │  │ stm32f10x_sdio.o

    │  │ stm32f10x_spi.crf

    │  │ stm32f10x_spi.d

    │  │ stm32f10x_spi.o

    │  │ stm32f10x_tim.crf

    │  │ stm32f10x_tim.d

    │  │ stm32f10x_tim.o

    │  │ stm32f10x_usart.crf

    │  │ stm32f10x_usart.d

    │  │ stm32f10x_usart.o

    │  │ stm32f10x_wwdg.crf

    │  │ stm32f10x_wwdg.d

    │  │ stm32f10x_wwdg.o

    │  │ sys.crf

    │  │ sys.d

    │  │ sys.o

    │  │ system_stm32f10x.crf

    │  │ system_stm32f10x.d

    │  │ system_stm32f10x.o

    │  │ timer.crf

    │  │ timer.d

    │  │ timer.o

    │  │ usart1.crf

    │  │ usart1.d

    │  └ usart1.o

    └ USER

       │ delay.c

       │ delay.h

       │ EventRecorderStub.scvd

       │ JLink Regs CM3.txt

       │ JLinkLog.txt

       │ JLinkSettings.ini

       │ main.c

       │ main.h

       │ nvic.c

       │ nvic.h

       │ STM32-DEMO.plg

       │ STM32-DEMO.uvgui.Administrator

       │ STM32-DEMO.uvgui.CGH

       │ STM32-DEMO.uvgui.flyleaf

       │ STM32-DEMO.uvguix.Administrator

       │ STM32-DEMO.uvguix.jl_mlh

       │ STM32-DEMO.uvgui_Administrator.bak

       │ STM32-DEMO.uvgui_CGH.bak

       │ STM32-DEMO.uvgui_flyleaf.bak

       │ STM32-DEMO.uvopt

       │ STM32-DEMO.uvoptx

       │ STM32-DEMO.uvproj.saved_uv4

       │ STM32-DEMO.uvprojx

       │ STM32-DEMO_LED-DEMO.dep

       │ STM32-DEMO_Target 1.dep

       │ STM32-DEMO_USART1-DEMO.dep

       │ STM32-DEMO_uvopt.bak

       │ STM32-DEMO_uvproj.bak

       │ stm32f10x_conf.h

       │ stm32f10x_it.c

       │ stm32f10x_it.h

       │ sys.c

       │ sys.cpp

       │ sys.h

       │ timer.c

       │ timer.h

       │ usart1.c

       │ usart1.h

       └ DebugConfig

          │ USART1-DEMO_STM32F103C8_1.0.0.dbgconf

          └ USART1-DEMO_STM32F103VE_1.0.0.dbgconf

TAG42步進(jìn)電機(jī)
  • 10 次
  • 10 分