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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2880|回復: 2
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
本帖包含仿真與例程,是基于STM32單片機的PWM直流電機調速,通過定時器3的三通道即B0口輸出PWM波,繼而通過L298N驅動芯片驅動電機轉動,并通過LCD液晶顯示電機的狀態與擋位。

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


單片機源程序如下:
  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)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

來自 3#
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产传媒毛片精品视频第一次 | 99reav| 久久亚洲精品国产精品紫薇 | 中文在线观看视频 | 天天人人精品 | 国产精品a一区二区三区网址 | 国产精品久久久久久久久久久久 | 国内精品在线视频 | 欧美一区二区大片 | 欧美成人一区二区 | 久久久久电影 | 一级片在线免费看 | 一区日韩 | 国产一区二区三区色淫影院 | 午夜免费福利影院 | 日本成人中文字幕 | 看av片网站 | 国产激情91久久精品导航 | 久久精品免费观看 | 午夜一区 | 超碰在线播 | 91免费看片神器 | 日韩成人 | 久草热线 | 日本久久综合 | 亚洲国产一区二区三区四区 | 欧美精品在线一区 | 高清黄色毛片 | 成人永久免费视频 | 久久久tv| 精品国产91 | 999久久久久久久久6666 | 国产精品视频在线免费观看 | 国产在线一区二区三区 | 欧美成人免费在线 | 亚洲中午字幕 | avav在线看| 欧美日韩一区在线 | 久久综合伊人一区二区三 | 亚洲理论在线观看电影 | 欧美色欧美亚洲另类七区 |