0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F0單片機(jī) PWM + ADC 控制有刷電機(jī)介紹

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-24 13:39 ? 次閱讀

1.有刷電機(jī)驅(qū)動(dòng)電路

有刷電機(jī)是電機(jī)里面最簡(jiǎn)單,也是歷史最悠久的一種,到現(xiàn)在仍然廣泛應(yīng)用于各個(gè)領(lǐng)域。他的控制很簡(jiǎn)單,在電機(jī)的兩個(gè)電極加正向電壓,則正向旋轉(zhuǎn),如果加反向電壓,則旋轉(zhuǎn)方向也反過來。電機(jī)的轉(zhuǎn)速可以通過控制加在電極上的電壓來調(diào)節(jié)。在電機(jī)控制電路中最常用的器件就是 MOS 管了??梢苑譃閮蓚€(gè)大的類型:P 溝道 MOS 和 N 溝道 MOS。MOS 管可以簡(jiǎn)單的理解為一個(gè)自來水閥門,Gate 是控制端,調(diào)節(jié) Drain 和 Source 端之間流過的電流大小。

下面是兩種 MOS 的典型用法。P 溝道的 MOS 一般 S 接電源正極,然后 Vgs 需要一個(gè)負(fù)電壓來打開電流通道,而 N 溝道的 S 極一般接電源的負(fù)極,Vgs 需要一個(gè)正電壓來打開電流通道。

資料來源于 IOR 公司數(shù)據(jù)手冊(cè)我們先從一個(gè)最簡(jiǎn)單的驅(qū)動(dòng)電路開始。單片機(jī)控制 MOS 管柵極為高時(shí),電流從電源經(jīng)過電機(jī)和 MOS 管到地。當(dāng)柵極為低時(shí),MOS 管斷開,此時(shí)電機(jī)線圈內(nèi)的電流繼續(xù)通過續(xù)流二極管回流電機(jī)的正極。我們通過調(diào)節(jié)柵極控制端的PWM占空比,就可以控制電機(jī)的轉(zhuǎn)速。

2.TIM模塊

TIM 模塊最重要的三個(gè)寄存器是:Counter Register (TIMx_CNT) 計(jì)數(shù)寄存器Auto-Reload Register (TIMx_ARR) 重置寄存器Capture/compare mode register 1 (TIMx_CCMRx) 輸入捕獲/輸出比較寄存器

Counter 在時(shí)鐘的驅(qū)動(dòng)下計(jì)數(shù)Auto-Reload 設(shè)定計(jì)數(shù)的最大限制值Capture/Compare 鎖存一個(gè)事件發(fā)生時(shí)的計(jì)數(shù)值到Capture/計(jì)數(shù)達(dá)到 Compare 值后觸發(fā)一個(gè)事件在 PWM 模式下,Auto-Reload 寄存器設(shè)定PWM的周期,Compare 設(shè)定占空比。有一點(diǎn)需要注意的是一個(gè) TIM 模塊只有一個(gè)計(jì)數(shù)器和一個(gè)重置寄存器,而有多個(gè)輸入捕獲/輸出比較寄存器。所以一個(gè) TIM 模塊的多個(gè)通道可以設(shè)置不同的占空比,但周期都是相同的。所以我們?cè)谶x用 MCU 的時(shí)候,如果需要產(chǎn)生多種周期的 PWM,不僅要看它的定時(shí)器模塊一共有多少通道數(shù),還要看是否有足夠的獨(dú)立 TIM 模塊。

3.代碼

我們?cè)谙旅孢@個(gè)工程的基礎(chǔ)上修改來實(shí)現(xiàn)用一個(gè)可調(diào)電阻控制PWM占空比,來控制電機(jī)的轉(zhuǎn)速。STM32Cube_FW_F0_V1.11.0ProjectsSTM32F030R8-NucleoExamplesTIMTIM_PWMOutputMDK-ARMProject.uvprojx這個(gè)工程默認(rèn)使用TIM3模塊輸出4路PWM,我們可以只保留其中一路。然后把ADC采樣的代碼添加進(jìn)來:

Step 1:

stm32f0xx_h(yuǎn)al_conf.h

#define HAL_ADC_M(jìn)ODULE_ENABLED

Step 2:

main.h

添加ADC相關(guān)宏定義

Step 3:

stm32f0xx_h(yuǎn)al_msp.c

添加ADC使用的引腳的初始化代碼

Step 4:

把ADC的驅(qū)動(dòng)文件添加進(jìn)工程,在主程序初始化ADC。

Step 5:

讀取 ADC 的值,寫入 TIM 的 CCR 寄存器,觀察 PWM 占空比的變化。根據(jù)電機(jī)的特性,還可能需要改變 PWM 的周期。

審核編輯:符乾江


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6040

    文章

    44594

    瀏覽量

    636933
  • 電機(jī)
    +關(guān)注

    關(guān)注

    142

    文章

    9053

    瀏覽量

    145924
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用單片機(jī)實(shí)現(xiàn)直流電機(jī)PWM調(diào)速控制原理圖

    使用單片機(jī)實(shí)現(xiàn)直流電機(jī)PWM調(diào)速控制
    發(fā)表于 12-10 15:29 ?0次下載

    如何使用PWM控制電機(jī)

    : 一、準(zhǔn)備工作 確定電機(jī)類型 : 根據(jù)應(yīng)用場(chǎng)景選擇合適的電機(jī)類型,如直流電機(jī)、步進(jìn)電機(jī)、無直流電機(jī)
    的頭像 發(fā)表于 11-28 16:30 ?1230次閱讀

    直流電機(jī)如何控制角度

    直流電機(jī)(DC Brushed Motor)是一種常見的電機(jī)類型,它通過改變電流的方向來控制電機(jī)
    的頭像 發(fā)表于 09-03 10:34 ?685次閱讀

    stm32單片機(jī)用什么軟件編程

    是STMicroelectronics公司推出的一款基于ARM Cortex-M內(nèi)核的32位微控制器。它具有高性能、低功耗、豐富的外設(shè)接口等特點(diǎn),廣泛應(yīng)用于工業(yè)控制、消費(fèi)電子、醫(yī)療設(shè)備等領(lǐng)域。要對(duì)STM32
    的頭像 發(fā)表于 09-02 10:16 ?1755次閱讀

    stm32單片機(jī)引腳介紹及功能

    特點(diǎn),廣泛應(yīng)用于工業(yè)控制、消費(fèi)電子、醫(yī)療設(shè)備、智能家居等領(lǐng)域。本文將介紹STM32單片機(jī)的引腳及其功能。 1. 引腳概述 STM32
    的頭像 發(fā)表于 09-02 09:38 ?6494次閱讀

    stm32和51單片機(jī)的區(qū)別是什么

    。 性能差異: STM32更高的主頻和更大的內(nèi)存空間,可以處理更復(fù)雜的任務(wù)和算法。 51單片機(jī)的主頻和內(nèi)存空間相對(duì)較小,適用于簡(jiǎn)單的控制和數(shù)據(jù)處理任務(wù)。 外設(shè)差異:
    的頭像 發(fā)表于 09-02 09:33 ?838次閱讀

    基于STM32單片機(jī)的智能窗簾控制系統(tǒng)設(shè)計(jì)

    系統(tǒng)以STM32單片機(jī)進(jìn)行主控,系統(tǒng)內(nèi)使用血氧傳感器進(jìn)行血氧檢測(cè),通過電機(jī)控制采集血。按鍵控制采血和檢測(cè)。
    的頭像 發(fā)表于 06-28 14:24 ?3007次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)</b>的智能窗簾<b class='flag-5'>控制</b>系統(tǒng)設(shè)計(jì)

    基于STM32單片機(jī)的智能雨器設(shè)計(jì)

    智能雨器系統(tǒng)使用STM32單片機(jī)進(jìn)行主控,通過顯示屏顯示雨量,系統(tǒng)自動(dòng)和手動(dòng)兩種模式,根據(jù)設(shè)定的閾值可以在自動(dòng)模式下進(jìn)行雨
    的頭像 發(fā)表于 06-27 10:26 ?2137次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)</b>的智能雨<b class='flag-5'>刷</b>器設(shè)計(jì)

    基于STM32單片機(jī)的智能冰箱控制系統(tǒng)設(shè)計(jì)

    基于單片機(jī)設(shè)計(jì)的一款智能冰箱控制系統(tǒng),可以控制冰箱的制冷裝置,可以采集冰箱的異味濃度,超過閩值之后控制紫外燈進(jìn)行消毒工作單片機(jī)采用
    的頭像 發(fā)表于 06-25 09:21 ?1324次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)</b>的智能冰箱<b class='flag-5'>控制</b>系統(tǒng)設(shè)計(jì)

    STM32F0系列單片機(jī),指針取整型值錯(cuò)誤的原因?

    STM32F0系列單片機(jī),指針取整型值錯(cuò)誤,用F0的進(jìn)來看下,代碼如下,附件里也有個(gè)工程可以下來單步運(yùn)行下,這是什么問題如何解決. uint8_t a
    發(fā)表于 05-15 07:46

    stm32f0系列的芯片怎么樣?

    大家用沒有 stm32f0系列的芯片呢,用的怎么樣?
    發(fā)表于 05-10 06:59

    使用STM32F0控制BLDC電機(jī),需要在停機(jī)時(shí)對(duì)電機(jī)進(jìn)行自鎖,怎么實(shí)現(xiàn)?

    如題,使用STM32F0控制BLDC電機(jī),需要在停機(jī)時(shí)對(duì)電機(jī)進(jìn)行自鎖,不外加機(jī)械部件。施加其中一相一定電壓時(shí)要保持電機(jī)卡住不動(dòng)的狀態(tài),但手動(dòng)
    發(fā)表于 04-16 08:12

    STM32F0的SPL庫能在STM32G0上用嗎?

    原來用的STM32F0系列,使用的V3.5.0的標(biāo)準(zhǔn)外設(shè)庫?,F(xiàn)在改用STM32G0系列,發(fā)現(xiàn)官網(wǎng)提供的固件庫是STM32CubeG0,里面是HAL和LL庫。為了節(jié)省開發(fā)時(shí)間,想還是用SPL庫,
    發(fā)表于 04-08 08:29

    Holtek新推出Arm? Cortex?-M0+直流無刷電機(jī)控制專用全整合單片機(jī)

    Holtek推出新一代Arm? Cortex?-M0+直流無刷電機(jī)控制專用全整合單片機(jī)HT32F65C32F與HT32
    的頭像 發(fā)表于 04-02 17:19 ?922次閱讀

    【原創(chuàng)】51單片機(jī)PWM控制直流電機(jī)轉(zhuǎn)速,仿真、原理圖和代碼

    單片機(jī)產(chǎn)生脈寬可調(diào)的脈沖信號(hào)并輸入到L298驅(qū)動(dòng)芯片來控制直流電機(jī)工作的。 該直流電機(jī)PWM控制
    發(fā)表于 03-13 00:33