国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于STM32F103的PWM電機驅(qū)動A4950

這篇具有很好參考價值的文章主要介紹了基于STM32F103的PWM電機驅(qū)動A4950。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.基本介紹

基于STM32F103的PWM電機驅(qū)動A4950

A4950的峰值輸出電流可達±3.5 A,工作電壓為7.6~40v。

優(yōu)點:相對于L298N模塊控制2個電機正反轉(zhuǎn)僅需要4個I/O口,體積小,發(fā)熱低。

缺點:需要2個PWM引腳才能控制正反轉(zhuǎn),所以控制2個電機需要4PWM引腳,會使用STM32F103芯片一個定時器的全部PWM通道。

A4950模塊是靠輸入2路的PWM占空比的差值,來設(shè)定輸出電壓的大小,當(dāng)差值為0時輸出為0,反之當(dāng)占空比差值為100時輸出最大。

2.引腳功能和接線

基于STM32F103的PWM電機驅(qū)動A4950

引腳名稱 輸入\輸出 接線 功能
AOUT1 ? ? 輸出 ????????接A電機正 輸出電壓控制電機
AOUT2 ????輸出 ????????接A電機負 輸出電壓控制電機
BOUT1 ? ? 輸出 ????????接B電機正 輸出電壓控制電機
BOUT2 ? ? 輸出 ????????接B電機負 輸出電壓控制電機
AIN1 ? ? 輸入?? ? ? ? ? 接STM32 A7 控制電機輸出電壓
AIN2 ? ? 輸入?? ????????接STM32 B1 控制電機輸出電壓
BIN1 ? ? 輸入?? ????????接STM32 A6 控制電機輸出電壓
BIN2 ? ? 輸入?? ????????接STM32 B0 控制電機輸出電壓
VM ? ? 輸入?? ? ? ? ? 接12V電源 總電源

VCC

? ? 輸入?? ????????接5V電源 給內(nèi)部邏輯電路供電
GND ? ? 輸出? ????????接電源地 接地

3程序設(shè)計

接下來我使用STM32F103C8T6的標(biāo)準(zhǔn)庫代碼為例

定時器3初始化代碼

#include "stm32f10x.h"                  // Device header

void PWM_Init3(void)
{
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

	GPIO_InitTypeDef GPIO_InitStructure1;
	GPIO_InitStructure1.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure1.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
	GPIO_InitStructure1.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure1);

	GPIO_InitTypeDef GPIO_InitStructure2;
	GPIO_InitStructure2.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure2.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
	GPIO_InitStructure2.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure2);

	TIM_InternalClockConfig(TIM3);
	
	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
	TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
	
	TIM_TimeBaseInitStructure.TIM_Period  = 100-1;  //ARR
	TIM_TimeBaseInitStructure.TIM_Prescaler  = 3600-1; //PSC
	TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
	TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);
	
	TIM_OCInitTypeDef TIM_OCInitStructure;
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;  //輸出比較模式
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
	TIM_OCInitStructure.TIM_Pulse = 0;//CCR
	
    TIM_OC1Init(TIM3,&TIM_OCInitStructure);
	TIM_OC2Init(TIM3,&TIM_OCInitStructure);
	TIM_OC4Init(TIM3,&TIM_OCInitStructure);
    TIM_OC3Init(TIM3,&TIM_OCInitStructure);
    
    TIM_ClearFlag(TIM3, TIM_FLAG_Update);
	
    TIM_Cmd(TIM3,ENABLE);
 }

 
 
void PWM_SetCompare1(uint16_t Compare)
 {
	 TIM_SetCompare1 (TIM3,Compare);
 }
  
void PWM_SetCompare2(uint16_t Compare)
 {
	 TIM_SetCompare2 (TIM3,Compare);
 }
 
void PWM_SetCompare3(uint16_t Compare)
 {
	 TIM_SetCompare3 (TIM3,Compare);
 }

void PWM_SetCompare4(uint16_t Compare)
 {
	 TIM_SetCompare4 (TIM3,Compare);
 }

電機控制函數(shù)

#include "stm32f10x.h"                  // Device header
#include "PWM.h"
void Motor_Init(void)
{
	PWM_Init3();
}
// you
void Motor_SetSpeed2(int16_t Speed)
{
	
		PWM_SetCompare3(50-Speed/2);
		PWM_SetCompare1(50+Speed/2);

	
}
//zuo
void Motor_SetSpeed1(int16_t Speed)
{
	
		PWM_SetCompare2(50-Speed/2);
		PWM_SetCompare4(50+Speed/2);

}

?mian函數(shù)代碼

#include "stm32f10x.h"                  // Device header
#include "Motor.h"
int main (void)
{
	Motor_Init(); //電機驅(qū)動初始化
	while(1)
	{
		
		Motor_SetSpeed1(20);//給電機1 向前20速度
		Motor_SetSpeed2(20);//給電機2 向前20速度
		
	}

}

全部源碼鏈接:主控/C8T6/A4950 · 亟待/electronic-game-code - 碼云 - 開源中國 (gitee.com)https://gitee.com/AD123zsg/electronic-game-code/tree/master/%E4%B8%BB%E6%8E%A7/C8T6/A4950文章來源地址http://www.zghlxwxcb.cn/news/detail-440629.html

到了這里,關(guān)于基于STM32F103的PWM電機驅(qū)動A4950的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 基于STM32F103C8T6的端口重映射及定時器輸出PWM控制

    基于STM32F103C8T6的端口重映射及定時器輸出PWM控制

    #一、端口重映射原理及部分/完全重映射 #二、端口重映射的配置 #三、PWM控制 ##1、通用定時器輸出PWM ##2、PWM的工作原理 ##3、PWM的內(nèi)部運作機制 ##4、PWM的模式 ##5、自動加載的預(yù)載寄存器 #四、定時器輸出PWM結(jié)構(gòu)體及庫函數(shù)的配置 #五、項目硬件 #六、項目代碼 一、端口重映射

    2024年02月13日
    瀏覽(22)
  • 基于STM32F103ZET6使用STM32CubeMX配置FSMC模塊驅(qū)動LCD屏(基于正點原子歷程)

    基于STM32F103ZET6使用STM32CubeMX配置FSMC模塊驅(qū)動LCD屏(基于正點原子歷程)

    在學(xué)習(xí)STM32的過程中,剛好學(xué)到了LCD屏,我使用的是STM32F103ZET6,屏幕是正點原子的。但是在我自己新建工程點亮顯示LCD屏?xí)r遇到了很多問題。解決之后分享在此,希望能幫助到遇到此困惑的朋友。 想要快速驅(qū)動LCD屏請直接跳轉(zhuǎn)到CubeMX配置 FSMC全名叫可變靜態(tài)存儲控制器(Fle

    2024年02月15日
    瀏覽(50)
  • ESP8266 模塊簡易驅(qū)動程序 -- 基于 STM32F103 及原子云固件實現(xiàn)云功能

    ESP8266 模塊簡易驅(qū)動程序 -- 基于 STM32F103 及原子云固件實現(xiàn)云功能

    本簡易驅(qū)動程序是基于 正點原子 的ESP8266模塊,主要用于實現(xiàn)連接 原子云 的功能。MCU選用的是 STM32F103ZET6 注:原子云固件添加了 AT+ATKCLDSTA 和 AT+ATKCLDCLS 兩條指令 用于連接正點原子自家的原子云平臺,原廠的AT指令不受任何影響 本程序主要實現(xiàn)了如下功能: 設(shè)定工作模式 連

    2023年04月23日
    瀏覽(30)
  • Proteus仿真stm32f103r6輸出PWM/正弦波

    Proteus仿真stm32f103r6輸出PWM/正弦波

    Proteus仿真stm32f103r6輸出PWM/正弦波 ?

    2024年01月23日
    瀏覽(22)
  • STM32F103C6T6之PWM+DMA篇

    STM32F103C6T6之PWM+DMA篇

    最近在學(xué)習(xí)PWM+DMA配合生成可改變占空比的PWM波形。找了很多很多資料但是感覺對初學(xué)者不是很友善,只是提供了很多原理。這邊使用的代碼是固件庫版的,也是學(xué)習(xí)STM32最基礎(chǔ)的固件庫代碼了吧! 預(yù)分頻器(TIMx_PSC) 自動重裝載寄存器(TIMx_ARR) 捕獲/比較寄存器x(TIMx_CCRx) 當(dāng)P

    2023年04月18日
    瀏覽(25)
  • 基于STM32F103C8T6使用Arduino IDE編程閉環(huán)控制4個帶編碼器的有刷直流電機

    基于STM32F103C8T6使用Arduino IDE編程閉環(huán)控制4個帶編碼器的有刷直流電機

    題記:標(biāo)題有點長了,純粹為了方便被檢索到~~~本貼主要用于支持南方科技大學(xué)SDIM學(xué)院工業(yè)設(shè)計專業(yè)大三綜合項目移動底盤學(xué)習(xí),也是我自己按照費曼學(xué)習(xí)方法的一次嘗試,用從底層搭建一個機器人底盤來復(fù)習(xí)自動控制原理。 ? ? ? ? 由于工業(yè)設(shè)計專業(yè)沒有開設(shè)嵌入式課程

    2024年02月05日
    瀏覽(27)
  • STM32F103驅(qū)動oled顯示屏

    STM32F103驅(qū)動oled顯示屏

    oled顯示屏和其他顯示屏類似,不過他只有0.96英寸,屏幕較小,但是使用起來比較方便。有二種驅(qū)動方式,分別為IIC,和SPI驅(qū)動。驅(qū)動方式比較簡單。IIC驅(qū)動的話只需要4根線,電源,地線,數(shù)據(jù)線,和時鐘線。 我這里使用的是IIC協(xié)議驅(qū)動oled顯示屏,如果想了解IIC協(xié)議的可以看

    2024年02月11日
    瀏覽(39)
  • STM32F103ZET6 驅(qū)動 OLED

    STM32F103ZET6 驅(qū)動 OLED

    目錄 前言 OLED模塊的基本了解 OLED驅(qū)動程序的開發(fā) 前言 ? 大家好,這是我第一次發(fā)帖,由于,我的技術(shù)并不成熟,程序難免有編寫不規(guī)范的地方,希望讀者能夠指正,也希望這篇帖子能夠讓讀者對OLED模塊有個大致的了解。很高興能與大家交流。 OLED模塊的基本了解 OLED模塊的

    2024年02月14日
    瀏覽(27)
  • 野火STM32F103驅(qū)動GT911觸摸芯片

    野火STM32F103驅(qū)動GT911觸摸芯片

    芯片介紹 GT911 是專為 7”~8”設(shè)計的新一代 5 點電容觸控 方案,擁有 26 個驅(qū)動通道和 14 個感 應(yīng)通道,以滿足更高的 touch 精度要求。 GT911 可同時識別 5 個觸摸點位的 實時準(zhǔn)確位置 , 移動軌跡 及 觸摸面積。 并可根據(jù)主控需要,讀取相應(yīng)點數(shù)的觸摸信息。 芯片原理圖 管腳定

    2024年02月06日
    瀏覽(22)
  • STM32F103硬件SPI驅(qū)動ADS1256

    STM32F103硬件SPI驅(qū)動ADS1256

    最近實驗室有幾個項目都需要用到高分辨率AD轉(zhuǎn)換,于是就開始了ADS1256的開發(fā)。 新手,焊得丑,見諒(能用就行) 二: 本以為很容易就能做完,結(jié)果被采樣速率的問題困擾了很久。 代碼如下,使用2.5V基準(zhǔn)源進行測試,結(jié)果在讀ADS時經(jīng)常出現(xiàn)讀出0xFFFFFF的情況,只能忍住悲傷

    2024年02月12日
    瀏覽(112)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包