久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2840|回復: 2
收起左側

基于STM32單片機的PWM直流調速系統仿真與程序設計

[復制鏈接]
ID:421625 發表于 2021-4-20 18:22 | 顯示全部樓層 |閱讀模式
本帖包含仿真與例程,是基于STM32單片機的PWM直流電機調速,通過定時器3的三通道即B0口輸出PWM波,繼而通過L298N驅動芯片驅動電機轉動,并通過LCD液晶顯示電機的狀態與擋位。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

單片機源程序如下:
  1. #include "sys.h"
  2. #include "timer.h"
  3. #include "gpio.h"
  4. #include "key.h"
  5. #include "math.h"
  6. #include "lcd12864.h"

  7. int main(void)
  8. {
  9.      u16 arr=60000;
  10.            u16 psc=2;
  11.      u16 led_dt = 550;
  12.            unsigned char KEY=0;
  13.            int start=0;//電機啟停變量
  14.            int D=100;//電機轉速調節參數
  15.            int d=1;//電機擋位變量,擋位1-6

  16.                  RCC_Configuration();        //系統時鐘初始化
  17.      GPIO_Configuration();//端口初始化
  18.                  TIM3_Configuration(arr,psc);//定時器和pwm配置
  19.      Key_Init();
  20.            Init_12864();                                               //初始化12864液晶
  21.      LCD_DispACat(8,8);
  22.            LCD_P6x8Str(5,45,"PWM-->Motor");
  23.      GPIO_ResetBits(GPIOC,GPIO_Pin_5);
  24.                  GPIO_ResetBits(GPIOC,GPIO_Pin_6);

  25.                  while(1)
  26.                  {                                
  27.                                 TIM_SetCompare3(TIM3,led_dt*D); //用的是TIM3的通道2,輸出PWM         送到相應的寄存器中
  28.                           KEY=Key_Scan();
  29. //***********************電機啟停***************************//
  30.         if(KEY==67)//C啟動
  31.                                 {
  32.                                          delay_ms(1);//延時消抖
  33.                                          start=1;
  34.                        GPIO_SetBits(GPIOC,GPIO_Pin_5);
  35.            GPIO_ResetBits(GPIOC,GPIO_Pin_6);
  36.                                           LCDClearScreen(AllScreen);
  37.                                          LCD_P6x8Str(4,25,"    start    ");
  38.                                 }                 
  39.                           if(KEY==68)//D停止
  40.                                 {
  41.                                          start=0;
  42.                        GPIO_ResetBits(GPIOC,GPIO_Pin_5);
  43.            GPIO_ResetBits(GPIOC,GPIO_Pin_6);
  44.                                           LCDClearScreen(AllScreen);
  45.                                    LCD_P6x8Str(4,25,"    stop     ");
  46.                                 }               
  47. //*********************電機正反轉***************************//
  48.                          if((KEY==42)&&(start==1))//“*”的ascll碼是42,控制電機反轉
  49.                                 {
  50.                                         GPIO_SetBits(GPIOC,GPIO_Pin_6);
  51.           GPIO_ResetBits(GPIOC,GPIO_Pin_5);
  52.                                         LCDClearScreen(AllScreen);
  53.                                         LCD_P6x8Str(4,11,"Negative Direction");
  54.                                 }
  55.                           if((KEY==35)&&(start==1))//“#”的ascll碼是35,控制電機正轉
  56.                                 {
  57.                                         GPIO_SetBits(GPIOC,GPIO_Pin_5);
  58.           GPIO_ResetBits(GPIOC,GPIO_Pin_6);
  59.                                         LCDClearScreen(AllScreen);
  60.                                         LCD_P6x8Str(4,11,"Positive Direction");
  61.                                 }
  62. //**********************電機加減速**************************//
  63.                                 if((KEY==65)&&(start==1))//A加速
  64.         {
  65.                                         D=D-20;
  66.                                         d++;
  67.                                         if(D<10)
  68.                                         {
  69.                                                 D=0;
  70.                                                 d=6;
  71.                                         }
  72.                                         LCDClearScreen(AllScreen);
  73.                                         LCD_P6x8Str(4,27,"  Speed up   ");
  74.                                 }
  75.                                 if((KEY==66)&&(start==1))//B減速
  76.         {
  77.                                         D=D+20;
  78.                                         d--;
  79.                                         if(D>100)
  80.                                         {
  81.                                                 D=100;
  82.                                                 d=1;
  83.                                         }
  84.                                         LCDClearScreen(AllScreen);
  85.                                         LCD_P6x8Str(4,27,"  Slow down  ");
  86.                                 }
  87.                                 if(start!=0)
  88.                                 {
  89.                                         Key_Gear(d);
  90.                                 }
  91. //                                        if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7)== Bit_RESET)
  92.                  }        
  93. }
復制代碼

屏幕可以顯示,但是電機不轉,求幫助:
Desktop.7z (283.04 KB, 下載次數: 42)
回復

使用道具 舉報

ID:421625 發表于 2021-4-21 12:41 | 顯示全部樓層
我是作者,俺也不知道咋回事,就是在加LCD之前都還是好好的,加了之后就感覺仿真帶不動了一樣,其實我感覺整個程序和仿真應該沒有問題,但是屏蔽關于LCD的代碼也不管用了。電機是轉的,要先點啟動鍵,才能執行其他操作,但是一點啟動鍵就會變很卡,建議打開示波器會看的明顯一些,再然后你點加速會在卡一會后觀察到PWM波形占空比發生變化。
回復

使用道具 舉報

ID:328014 發表于 2021-4-20 19:23 | 顯示全部樓層
不管按哪個鍵,電機都不轉,問題大概在哪里?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲在线一区 | 一区二区三区欧美 | 一区二区av | 国产美女视频黄a视频免费 国产精品福利视频 | 国产午夜精品一区二区三区嫩草 | 神马影院一区二区三区 | 亚洲国产二区 | 日韩在线高清 | 色在线免费 | 国产中文在线 | 91婷婷韩国欧美一区二区 | 91极品尤物在线播放国产 | 久久九九99 | 二区三区在线观看 | 亚洲精品无 | 午夜精品久久久久久久久久久久久 | 日韩色在线 | 美女福利视频一区 | 精品国产乱码久久久久久蜜柚 | 国产精品一区二区电影 | a在线观看免费 | 亚洲啊v在线 | 欧美一区二区三区四区视频 | 亚洲综合一区二区三区 | 久久不卡| 欧区一欧区二欧区三免费 | 一区二区三区免费观看 | 亚洲精品久久嫩草网站秘色 | 精品国产一区二区三区日日嗨 | 一区二区三区国产精品 | 天天操网 | re久久 | 亚洲国产成人av好男人在线观看 | 欧美区日韩区 | 91色视频在线观看 | 免费观看色 | 久久综合狠狠综合久久综合88 | 日韩在线视频一区 | 亚洲精品久久久久久一区二区 | 91精品国产91久久久 | 久久99国产精品 |