|
此貼包括程序加仿真,是基于32單片機(jī)的PWM直流電機(jī)調(diào)速系統(tǒng),應(yīng)用了KEIL5和PROTEUS8.9兩款軟件,所用驅(qū)動芯片為L298N.
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (25.36 KB, 下載次數(shù): 49)
下載附件
2021-4-19 19:24 上傳
單片機(jī)源程序如下:
- #include "sys.h"
- #include "timer.h"
- #include "gpio.h"
- #include "key.h"
- int main(void)
- {
- u16 arr=999;
- u16 psc=71;
- u16 led_dt = 5000;
- unsigned char KEY=0;
- int D=1;//電機(jī)擋位變量,初始擋位為一檔
- RCC_Configuration(); //系統(tǒng)時鐘初始化
- GPIO_Configuration();//端口初始化
- TIM3_Configuration(arr,psc);//定時器和pwm配置
- Key_Init();
- GPIO_SetBits(GPIOA,GPIO_Pin_8);
- GPIO_ResetBits(GPIOA,GPIO_Pin_9);
- while(1)
- {
- TIM_SetCompare2(TIM3,led_dt*D); //用的是TIM3的通道2,輸出PWM 送到相應(yīng)的寄存器中
- KEY=Key_Scan();
- if(KEY==42)//“*”的ascll碼是42,控制電機(jī)反轉(zhuǎn)
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_9);
- GPIO_ResetBits(GPIOA,GPIO_Pin_8);
- KEY=0;
- }
- if(KEY==35)//“#”的ascll碼是35,控制電機(jī)正轉(zhuǎn)
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_8);
- GPIO_ResetBits(GPIOA,GPIO_Pin_9);
- KEY=0;
- }
- // if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7)== Bit_RESET)
- }
- }
復(fù)制代碼
Proteus仿真不轉(zhuǎn) 求幫助:
基于stm32的PWM直流電機(jī)調(diào)速.7z
(246.71 KB, 下載次數(shù): 17)
2021-4-19 19:27 上傳
點擊文件名下載附件
|
|