加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于STM32控制直流電機加減速正反轉設計

07/29 10:06
1769
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內容為數字版權作品,購買后不支持退換且無法轉移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關方案
  • 方案介紹
  • 相關文件
  • 推薦器件
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

本設計基于STM32控制直流電機加減速正反轉設計(程序+仿真+論文)
仿真:proteus8.9
程序編譯器:keil 5
編程語言:C語言
編號C0011
資料下載鏈接

功能說明:
本設計由STM32F103L298N電機驅動電路、按鍵電路組成。
1.通過按鍵可以控制電機,正轉、反轉、加速、減速、停止。
2.檔位分4檔,并且可以通過按鍵順序正轉、反轉、加速、減速、停止。
3.檔位可以自定義。
附贈相關論文,根據實物寫的,與仿真功能基本一致。

仿真圖(提供源文件):

在這里插入圖片描述
在這里插入圖片描述

源程序(提供源文件):

char dis0[6] = "Dir:+";   //暫存
char dis1[6] = "Dir:-";   //暫存
char dis2[16] = "";   //暫?
char dis3[] = "RUN ";   //暫存?
char dis4[] = "STOP";   //暫存
unsigned  char rekey = 0; //按鍵防止抖動
unsigned char contNum = 0; //循環(huán)計數
int main(void)
{
  
    delay_init();            //延時函數初始化
  
//    uart_init(9600);        //串口初始化為115200
    //  uart2_init(9600)    ;
    TIM3_Int_Init(10, 7199); //定時器
    LED_Init();             //初始化與LED連接的硬件接口
    KEY_Init();
    Lcd_GPIO_init();
    Lcd_Init();
    IN1 = 1;        //方向控制
    IN2 = 0;
    pwmRigh = 0;    //pwm調整,電機轉速調整

    Lcd_Puts(0, 0, (unsigned char *)dis0);
    sprintf(dis2,"SPEED:%d",pwmRigh);
    Lcd_Puts(0, 1, (unsigned char *)dis2);
     Lcd_Puts(8, 0, (unsigned char *)dis3);

    while(1)
    {
        if((key1 == 0) || (key2 == 0) || (key3 == 0) || (key4 == 0) || (key5 == 0))      //檢測到按鍵按下
        {
//            delay_ms(1);   //小抖動仿真不需要加
            if(rekey == 0)
            {
                if(key1 == 0)  //檢測是否按下
                {

                    rekey = 1;
                    IN1 = 1;        //方向控制
                    IN2 = 0;                   
                    Lcd_Puts(0, 0, (unsigned char *)dis0);
                     Lcd_Puts(8, 0, (unsigned char *)dis3);
                }
                else if(key2 == 0) //設置值鍵
                {
                    rekey = 1;
                    IN1 = 0;        //方向控制
                    IN2 = 1;
                    Lcd_Puts(0, 0, (unsigned char *)dis1);
                     Lcd_Puts(8, 0, (unsigned char *)dis3);
                }
                else if(key3 == 0) //設置值鍵
                {
                    rekey = 1;
                    if(pwmRigh < 8)pwmRigh = pwmRigh + 2; //pwm 調速
                    sprintf(dis2,"SPEED:%d",pwmRigh/2);
                    Lcd_Puts(0, 1, (unsigned char *)dis2);
                }
                else if(key4 == 0) //設置值鍵
                {
                    rekey = 1;
                    if(pwmRigh >= 2)pwmRigh = pwmRigh - 1; //pwm 調速
                    sprintf(dis2,"SPEED:%d",pwmRigh/2);
                    Lcd_Puts(0, 1, (unsigned char *)dis2);
                }
                else if(key5 == 0) //設置值鍵
                {
                    rekey = 1;
                    IN1 = 0;        //方向控制
                    IN2 = 0;
                    Lcd_Puts(8, 0, (unsigned char *)dis4);
                }
            }
        }
        else
        {
            rekey = 0;  //防止重復檢測到按鍵
        }
        delay_ms(10);
    }
}

在這里插入圖片描述

以下為部分程序,完整程序可在下載鏈接獲取:

論文報告:
在這里插入圖片描述

  • 設計資料獲取聯系方式.doc

推薦器件

更多器件
器件型號 數量 器件廠商 器件描述 數據手冊 ECAD模型 風險等級 參考價格 更多信息
ATXMEGA192D3-MH 1 Atmel Corporation RISC Microcontroller, 16-Bit, FLASH, AVR RISC CPU, 32MHz, CMOS, 9 X 9 MM, 1 MM HEIGHT, 0.50 MM PITCH, GREEN, MO-220VMMD, MLF-64
$5.62 查看
LPC4357FET256,551 1 NXP Semiconductors LPC4357FET256 - Dual-core Cortex-M4/M0, 1 MB Flash, 136 kB SRAM, 2 HS USB with on-chip PHY, Ethernet, LCD, CAN, AES, SPIFI, SGPIO, SCT BGA 256-Pin

ECAD模型

下載ECAD模型
$15.87 查看
MK70FN1M0VMJ12R 1 Freescale Semiconductor 32-BIT, FLASH, 120MHz, RISC MICROCONTROLLER, PBGA256, 17 X 17 MM, MAPBGA-256
暫無數據 查看

相關推薦

電子產業(yè)圖譜