色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

基于STM32F103C8T6+L298N通過(guò)PWM控制直流電機(jī)

CHANBAEK ? 來(lái)源:月月望歸鳥(niǎo) ? 作者:K.Fire ? 2023-06-15 16:51 ? 次閱讀

01 前言

原來(lái)做的差速小車是基于Arduino控制的,感覺(jué)有些簡(jiǎn)單,也有些基礎(chǔ),Arduino方便簡(jiǎn)單的同時(shí),可操作性感覺(jué)也少了很多,所以想將控制器換成STM32,然后將樹(shù)莓派作為上位機(jī),STM32作為下位機(jī),通過(guò)樹(shù)莓派和STM32進(jìn)行通訊,實(shí)現(xiàn)對(duì)差速移動(dòng)小車的控制,本人也是寒假期間初學(xué)STM32,也是奔著應(yīng)用去的,所以對(duì)于STM32編程原理方面可能不太精通,這里偏重于記錄應(yīng)用層面的知識(shí)。

02 PWM調(diào)速原理

直流電機(jī)驅(qū)動(dòng)是最簡(jiǎn)單的,給電機(jī)通上電就能轉(zhuǎn),根據(jù)電機(jī)的公式:

圖片

可知:當(dāng)提高電壓時(shí),反電勢(shì)升高,進(jìn)而轉(zhuǎn)速升高,電壓與轉(zhuǎn)速大致有如圖所示的關(guān)系。

圖片編輯

所以我們只要控制給電機(jī)通電的電壓即可控制電機(jī)的轉(zhuǎn)速,但是在實(shí)際的控制中,控制直流電機(jī)需要通過(guò)H橋控制電機(jī)的正反轉(zhuǎn),如圖,當(dāng)T1和T4二極管導(dǎo)通時(shí),有粉色通路;當(dāng)T2和T3二極管導(dǎo)通時(shí),有藍(lán)色通路,這樣我們就可以實(shí)現(xiàn)弱電控制強(qiáng)電,通過(guò)二極管的通斷來(lái)控制電機(jī)的轉(zhuǎn)向。

但是這樣電機(jī)通電時(shí)電壓就是Us,我們?nèi)绻胱杂傻目刂芔s的電壓值基本是不能實(shí)現(xiàn)的,因?yàn)殡姍C(jī)是接到單片機(jī)的引腳上的,引腳的供電電壓值是確定的,我們就要使用控制二極管的通斷時(shí)間對(duì)電機(jī)的轉(zhuǎn)速進(jìn)行控制,即PWM控制。

圖中的D1~D4二極管為續(xù)流的作用,因?yàn)殡姍C(jī)中有繞組,在斷電后,電感的電流不能瞬時(shí)變?yōu)?,所以在斷電后電流沿棕色和綠色的通路放點(diǎn)電。

image.png

image.png

在一個(gè)周期內(nèi),我們通過(guò)控制通電的時(shí)間就可以調(diào)控平均電壓,而平均電壓的高低直接控制電機(jī)的轉(zhuǎn)速,通電時(shí)間/周期,就可以得到占空比,我們也就是通過(guò)控制電機(jī)的占空比來(lái)控制電機(jī)的轉(zhuǎn)速的。

image.png

在實(shí)際應(yīng)用過(guò)程中,我們不用自己搭建H橋,而是使用電機(jī)驅(qū)動(dòng)板(如:L298N)對(duì)直流電機(jī)進(jìn)行驅(qū)動(dòng),L298N內(nèi)搭載兩個(gè)H橋電路,可以實(shí)現(xiàn)對(duì)兩個(gè)電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速進(jìn)行控制。

圖片

這是淘寶商家提供的電機(jī)驅(qū)動(dòng)板控制表,將IN1~4接到單片機(jī)的引腳,我們就可以通過(guò)引腳輸出PWM控制信號(hào),對(duì)直流電機(jī)進(jìn)行控制。

03 STM32編程實(shí)現(xiàn)

在STM32中如果想輸出PWM信號(hào),需要借助定時(shí)器,通過(guò)定時(shí)器的捕獲/比較通道的PWM輸出

圖片

當(dāng)我們對(duì)定時(shí)器設(shè)置了預(yù)裝載值arr和比較值ccr后,可以通過(guò)配置PWM模式,使定時(shí)器CNT計(jì)數(shù)值超過(guò)ccr后產(chǎn)生有效信號(hào),并通過(guò)配置相應(yīng)寄存器設(shè)置有效信號(hào)是1還是0,而配置PWM的輸出方式,具體原理信息可以參考原子哥的視頻,也可以參考中文參考手冊(cè)的14.4.7內(nèi)容。

圖片

在程序中,我們使用庫(kù)函數(shù)進(jìn)行配置,配置步驟如下:

  1. 使能定時(shí)器和相關(guān)外設(shè)引腳時(shí)鐘 :RCC_APBxPeriphClockCmd()
  2. 配置IO口為復(fù)用輸出模式(查手冊(cè)8.1.11)配置成相應(yīng)的模式(復(fù)用推挽輸出)
  3. 初始化定時(shí)器:TIM_TimeBaseInit()
  4. 初始化TIM2 Channe1234 PWM模式:TIM_OCxInit()
  5. 使能OCx通道的預(yù)裝載寄存器:TIM_OC1PreloadConfig()
  6. 使能時(shí)鐘:TIM_Cmd()
  7. 在主函數(shù)中配置占空比進(jìn)行調(diào)速:TIM_SetCompare1()
#include "sys.h"


/********************
功能:通用時(shí)鐘2用來(lái)產(chǎn)生通道1234四路PWM信號(hào)
函數(shù):TIM2_PWM_Init(u16 arr,u16 psc)
作者:K.Fire
日期:2022.01.30
引腳:PA0 PA1 PA2 PA3
參數(shù):arr:自動(dòng)重裝值 psc:時(shí)鐘預(yù)分頻數(shù)
*****************/


void TIM2_PWM_Init(u16 arr,u16 psc)
{  
  GPIO_InitTypeDef GPIO_InitStructure;
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_OCInitTypeDef  TIM_OCInitStructure;

  //使能GPIOA外設(shè)模塊時(shí)鐘  
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);   

  //設(shè)置引腳為復(fù)用輸出功能,輸出TIM2 CH1的PWM脈沖波形  GPIOA.0
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //TIM2_CH1
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //復(fù)用推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO

  //設(shè)置引腳為復(fù)用輸出功能,輸出TIM2 CH2的PWM脈沖波形  GPIOA.1
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //TIM2_CH2
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO

    //設(shè)置引腳為復(fù)用輸出功能,輸出TIM2 CH3的PWM脈沖波形  GPIOA.2
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //TIM2_CH3
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO

  //設(shè)置引腳為復(fù)用輸出功能,輸出TIM2 CH4的PWM脈沖波形  GPIOA.3
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; //TIM2_CH4
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO

  //使能定時(shí)器2時(shí)鐘
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);  
    //初始化TIM2
  TIM_TimeBaseStructure.TIM_Period = arr; //設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值
  TIM_TimeBaseStructure.TIM_Prescaler =psc; //設(shè)置用來(lái)作為T(mén)IMx時(shí)鐘頻率除數(shù)的預(yù)分頻值 
  TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設(shè)置時(shí)鐘分割:TDTS = Tck_tim
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上計(jì)數(shù)模式
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位

  //初始化TIM2 Channe1234 PWM模式   
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式2
   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高

  TIM_OC1Init(TIM2, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM2 OC1
  TIM_OC2Init(TIM2, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM2 OC2
  TIM_OC3Init(TIM2, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM2 OC3
  TIM_OC4Init(TIM2, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM2 OC4


  TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);  //使能TIM2在CCR1上的預(yù)裝載寄存器
  TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);  //使能TIM2在CCR2上的預(yù)裝載寄存器
  TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);  //使能TIM2在CCR3上的預(yù)裝載寄存器
  TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);  //使能TIM2在CCR4上的預(yù)裝載寄存器

  TIM_Cmd(TIM2, ENABLE);  //使能TIM2

}

04 總結(jié)

原理部分我講的很簡(jiǎn)略,我也是看原子哥的視頻學(xué),如果大家對(duì)單片機(jī)控制原理有學(xué)習(xí)需要,可以去B站看原子哥的視頻,博主主要是做控制和上位機(jī)的,所以這部分只需要會(huì)用即可。

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

    關(guān)注

    36

    文章

    1710

    瀏覽量

    70240
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5193

    瀏覽量

    214222
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10910

    瀏覽量

    356582
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6472

    瀏覽量

    187330
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    117

    文章

    1710

    瀏覽量

    105721
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F103C8T6實(shí)現(xiàn)直流電機(jī)速度PID控制

    前面完成了基于STM32F103C8T6+L298N+MG513P30直流電機(jī)PWM控制和兩種方法的編碼器實(shí)時(shí)速度反饋,拿到這個(gè)反饋值后我們就可以使用經(jīng)典的PID算法,對(duì)
    的頭像 發(fā)表于 06-15 16:52 ?5089次閱讀
    <b class='flag-5'>STM32F103C8T6</b>實(shí)現(xiàn)<b class='flag-5'>直流電機(jī)</b>速度PID<b class='flag-5'>控制</b>

    L298N驅(qū)動(dòng)直流電機(jī)問(wèn)題

    經(jīng)pwm調(diào)制 l298n驅(qū)動(dòng)一個(gè)直流電機(jī)c程序怎么編寫(xiě)還有該怎么接線
    發(fā)表于 05-04 17:14

    STM32L298N相關(guān)資料推薦

    文章目錄用STM32L298N(正反轉(zhuǎn)、調(diào)速)控制直流電機(jī)正反轉(zhuǎn)使用PWM調(diào)速用STM32
    發(fā)表于 06-29 06:02

    空心杯直流電機(jī)控制

    統(tǒng)的控制對(duì)象是4個(gè)空心杯直流電機(jī)電機(jī)帶光電編碼器,可以反饋轉(zhuǎn)速大小的波形。電機(jī)驅(qū)動(dòng)模塊是普通的L298N模塊。芯片型號(hào),
    發(fā)表于 09-13 08:47

    使用L298n控制兩路直流電機(jī)PWM調(diào)速

    新手來(lái)記錄自己從0開(kāi)始自學(xué)STM32,也不曉得自己能堅(jiān)持多久。使用L298n控制兩路直流電機(jī)PWM調(diào)速還沒(méi)學(xué)直接上程序.
    發(fā)表于 01-06 07:11

    L298N電機(jī)驅(qū)動(dòng)直流電機(jī)程序匯總

    關(guān)于L298N驅(qū)動(dòng)直流電機(jī)的各種寫(xiě)法程序匯總
    發(fā)表于 05-04 16:04 ?31次下載

    基于80C196KC和L298N直流電機(jī)PWM控制技術(shù)

    介紹了基于80C196KC和L298N直流電機(jī)PWM控制技術(shù),pwm調(diào)速系統(tǒng)的工作原理、
    發(fā)表于 12-12 09:41 ?6264次閱讀
    基于80<b class='flag-5'>C</b>196KC和<b class='flag-5'>L298N</b>的<b class='flag-5'>直流電機(jī)</b><b class='flag-5'>PWM</b><b class='flag-5'>控制</b>技術(shù)

    使用STM32F103C8T6控制L298N電機(jī)驅(qū)動(dòng)麥克納姆輪小車(HAL庫(kù))

    使用STM32F103C8T6控制L298N電機(jī)驅(qū)動(dòng)麥克納姆輪小車(HAL庫(kù))
    發(fā)表于 11-23 17:36 ?56次下載
    使用<b class='flag-5'>STM32F103C8T6</b><b class='flag-5'>控制</b><b class='flag-5'>L298N</b><b class='flag-5'>電機(jī)</b>驅(qū)動(dòng)麥克納姆輪小車(HAL庫(kù))

    如何使用L298N和Arduino板控制直流電機(jī)

    在這個(gè)Arduino教程中,我們將學(xué)習(xí)如何使用Arduino控制直流電機(jī)。我們來(lái)看看控制直流電機(jī)的一些基本技術(shù),并通過(guò)兩個(gè)例子,學(xué)習(xí)如何使用
    的頭像 發(fā)表于 04-08 15:06 ?1.1w次閱讀
    如何使用<b class='flag-5'>L298N</b>和Arduino板<b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>

    L298n直流電機(jī)的原理說(shuō)明

    該文件包含了L298n直流電機(jī)的工作原理圖和PCB制圖
    發(fā)表于 05-28 10:06 ?3次下載

    ros與arduino通信控制直流電機(jī)

    前言:在成功通過(guò)arduino開(kāi)發(fā)板控制直流電機(jī)后,開(kāi)始嘗試用ros與arduino通信來(lái)控制直流電機(jī),為無(wú)人小車作準(zhǔn)備 硬件 ardui
    發(fā)表于 03-31 11:45 ?4次下載
    ros與arduino通信<b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>

    STM32F103C8T6+L298N通過(guò)PWM控制直流電機(jī)轉(zhuǎn)速

    下位機(jī),通過(guò)樹(shù)莓派和STM32進(jìn)行通訊,實(shí)現(xiàn)對(duì)差速移動(dòng)小車的控制,本人也是寒假期間初學(xué)STM32, 也是奔著應(yīng)用去的,所以對(duì)于STM32
    發(fā)表于 03-31 11:16 ?4次下載
    <b class='flag-5'>STM32F103C8T6+L298N</b><b class='flag-5'>通過(guò)</b><b class='flag-5'>PWM</b><b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>轉(zhuǎn)速

    STM32F103C8T6實(shí)現(xiàn)直流電機(jī)速度PID控制

    前面完成了基于STM32F103C8T6+L298N+MG513P30直流電機(jī)PWM控制和兩種方法的編碼器實(shí)時(shí)速度反饋,拿到這個(gè)反饋值后我們就可以使用經(jīng)典的PID算法,對(duì)
    發(fā)表于 03-31 11:26 ?3次下載
    <b class='flag-5'>STM32F103C8T6</b>實(shí)現(xiàn)<b class='flag-5'>直流電機(jī)</b>速度PID<b class='flag-5'>控制</b>

    基于STM32PWM控制直流電機(jī)轉(zhuǎn)速(CubeMX+HAL庫(kù))

    使用到的各元件: 1、12V電源一個(gè) 2、單片機(jī):STM32F103C8T6 3、直流電機(jī)4個(gè) 4、電機(jī)驅(qū)動(dòng)模塊:L298N 5、降壓模塊兩個(gè) 6
    發(fā)表于 03-31 09:36 ?12次下載
    基于<b class='flag-5'>STM32</b>的<b class='flag-5'>PWM</b><b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>轉(zhuǎn)速(CubeMX+HAL庫(kù))

    L298N直流電機(jī)總結(jié)

    采用L298N雙橋直流電機(jī)驅(qū)動(dòng)芯片 工作電壓范圍5V35V,如果需要從模塊內(nèi)取電,則供電范圍為7V35V 峰值輸出電流2A 每個(gè)通道有一個(gè)使能輸入端 可以驅(qū)動(dòng)兩個(gè)直流電機(jī)或者一個(gè)四線步進(jìn)
    發(fā)表于 04-03 11:05 ?3次下載
    <b class='flag-5'>L298N</b><b class='flag-5'>直流電機(jī)</b>總結(jié)
    主站蜘蛛池模板: 免费A级毛片无码无遮挡| 成人小视频免费在线观看| 99热.com| 国内精品久久久久久久999下| 女人吃男人的鸡鸡| 亚洲国产中文字幕在线视频综合| JAVAPARSER丰满白老师| 解开美女胸衣2破解版| 涩涩视频www在线观看入口| 2020国产欧洲精品视频| 韩国精品无码少妇在线观看网站| 人和拘一级毛片| 2017日日干| 精品国产品国语在线不卡丶| 天美传媒色情原创精品| av亚洲2017色天堂| 久久秋霞理伦片| 亚洲VA天堂VA欧美VA在线| 成人网络电视破解版| 男生jj插入女生jj| 尹人久久大香找蕉综合影院| 国产麻豆剧果冻传媒免费网站| 欧美高清一区二区三| 中文无码在线观| 精品国产在线手机在线| 亚洲 日韩 自拍 视频一区 | 亚洲最大日夜无码中文字幕| 国产精品成人免费观看| 日本美女阴道| GOGOGO高清在线播放韩国| 擼擼擼麻豆密臀AV| 一级做a爰片久久毛片免费| 国产亚洲精品久久综合阿香| 双性精跪趴灌满h室友4p| 成人免费看片又大又黄| 欧美日韩精品不卡在线观看| 8x华人免费视频| 久久视频这里只精品99re8久| 亚洲中文日韩日本在线视频| 国语精彩对白2021| 亚洲成人国产|