0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過51單片機實現(xiàn)直流電機調(diào)速

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-06-29 09:14 ? 次閱讀

一、項目背景及目的

隨著各種工業(yè)生產(chǎn)設(shè)備和機械設(shè)備的廣泛使用,直流電機調(diào)速技術(shù)的研究和應(yīng)用越來越受到人們的重視,具有廣泛的應(yīng)用前景。本項目通過51單片機實現(xiàn)直流電機調(diào)速功能,為實際工程應(yīng)用提供一個可靠和有效的調(diào)速方案。

image-20230618190643215

image-20230618190706115

二、設(shè)計思路

(1)系統(tǒng)原理

本系統(tǒng)采用PWM(脈沖寬度調(diào)制)技術(shù)對直流電機進(jìn)行調(diào)速控制。通過改變輸出信號的占空比,實現(xiàn)對直流電機的轉(zhuǎn)速控制。系統(tǒng)中包括51單片機、直流電機、電路板以及控制程序。

(2)硬件設(shè)計

  1. 電機:使用24V直流電機實現(xiàn)實際轉(zhuǎn)速控制。
  2. 驅(qū)動電路:使用四個寄生二極管三相全橋驅(qū)動電路控制電機,使電機可以正反轉(zhuǎn),并控制電機的速度。
  3. 51單片機:使用STC89C52單片機,作為控制核心。單片機通過捕捉外部信號和計算控制電壓來實現(xiàn)對電機的轉(zhuǎn)速控制。同時還需通過編寫程序來控制電機的啟動、停止等操作。
  4. 顯示器:使用1602LCD顯示屏,顯示轉(zhuǎn)速和其他操作信息。
  5. 電源:使用24V直流電源作為系統(tǒng)的電源。

(3)軟件設(shè)計

  1. 采用C語言編寫單片機程序進(jìn)行控制。
  2. 實現(xiàn)PWM技術(shù)控制直流電機的轉(zhuǎn)速。通過調(diào)整占空比來改變輸出電壓,從而達(dá)到控制直流電機轉(zhuǎn)速的目的。
  3. 使用定時器模塊實現(xiàn)計數(shù)來測量電機的轉(zhuǎn)速,并通過顯示器實時顯示。
  4. 設(shè)定按鍵和旋鈕控制,如啟動、停止電機等。

三、設(shè)計代碼

#include < reg52.h >
 ?
 sbit MotorP = P1^0;      //定義電機正極口
 sbit MotorN = P1^1;      //定義電機負(fù)極口
 float V_motor = 0;       //定義電機控制電壓
 unsigned int speed = 0;  //定義電機轉(zhuǎn)速
 ?
 //初始化函數(shù)
 void Init()
 {
     //定時器計數(shù)器及工作模式設(shè)置
     TMOD |= 0x01;         //T0定時器模式1
     TH0 = 0xfc;           //定時計數(shù)最大值,控制PWM頻率
     TL0 = 0x00;           //初值為0
     TR0 = 1;              //啟動T0定時器
 ?
     //ADC設(shè)置
     ADC_CONTR = 0x84;     //啟動AD轉(zhuǎn)換器
 }
 ?
 //ADC采樣函數(shù)
 float ADConvert()
 {
     ADC_CONTR &= 0xEF;    //清除AD轉(zhuǎn)換結(jié)束標(biāo)志位
     ADC_CONTR |= 0x40;    //啟動AD轉(zhuǎn)換
     while(!(ADC_CONTR & 0x10));  //等待轉(zhuǎn)換完成
     return ADC_RES;       //返回轉(zhuǎn)換結(jié)果
 }
 ?
 //計算電機控制電壓函數(shù)
 void ControlMotor()
 {
     unsigned int value = ADConvert();  //采集電位器輸出
     V_motor = (value / 1023.0) * 5;    //根據(jù)電壓分壓公式計算電機控制電壓
 }
 ?
 //控制電機函數(shù)
 void DriveMotor()
 {
     if(V_motor >= 2.5)       //當(dāng)電位器輸出電壓大于2.5V時電機正轉(zhuǎn),當(dāng)小于2.5V時電機反轉(zhuǎn)
     {
         MotorP = 1;
         MotorN = 0;
     }
     else if(V_motor < 2.5)
     {
         MotorP = 0;
         MotorN = 1;
     }
 ?
     speed = 60 * 1000 / (3 * TH0 * 12);   //根據(jù)定時器計數(shù)值計算電機轉(zhuǎn)速
 }
 ?
 //顯示函數(shù)
 void Display()
 {
     //將電機轉(zhuǎn)速和狀態(tài)信息顯示在LCD顯示屏上
 }
 ?
 //主函數(shù)
 void main()
 {
     Init();       //初始化函數(shù)
 ?
     while(1)
     {
         ControlMotor();     //計算電機控制電壓
         DriveMotor();       //控制電機運行
         Display();          //顯示電機狀態(tài)
     }
 }
 ?

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635306
  • 直流電機
    +關(guān)注

    關(guān)注

    36

    文章

    1710

    瀏覽量

    70184
  • 調(diào)速
    +關(guān)注

    關(guān)注

    1

    文章

    139

    瀏覽量

    21963
收藏 人收藏

    評論

    相關(guān)推薦

    基于單片機的AT89C51直流電機PWM調(diào)速系統(tǒng)

    基于單片機的AT89C51直流電機PWM調(diào)速系統(tǒng)文章設(shè)計了以單片機AT89C51和L298控制
    發(fā)表于 12-07 16:34

    51單片機控制直流電機調(diào)速電路的方法

    51單片機控制直流電機調(diào)速電路(含C語言源程序)51單片機控制
    發(fā)表于 07-14 06:44

    如何去實現(xiàn)直流電機調(diào)速

    控制電動機電樞電壓,實現(xiàn)調(diào)速。目前已有許多文獻(xiàn)介紹直流電機調(diào)速,宋衛(wèi)國等用89C51單片機
    發(fā)表于 07-14 06:12

    怎樣去設(shè)計基于51單片機的霍爾直流電機PWM調(diào)速系統(tǒng)

    基于51單片機的霍爾直流電機PWM調(diào)速系統(tǒng)有哪些具體功能?怎樣去設(shè)計基于51單片機的霍爾
    發(fā)表于 10-19 08:53

    MCS-51單片機直流電機閉環(huán)調(diào)速系統(tǒng)中的應(yīng)用

    摘要:針對目前直流電機閉環(huán)調(diào)速系統(tǒng)的成本和控制精度問題,通過探討MCS-51系列單片機的通用性和易用性,提出了一種采用該系列
    發(fā)表于 09-19 22:42 ?210次下載

    直流電機調(diào)速

    51單片機直流電機進(jìn)行調(diào)速,可以調(diào)頻率和調(diào)占空比,可以測直流電機的速度
    發(fā)表于 05-23 17:03 ?22次下載

    基于AVR單片機實現(xiàn)直流電機PWM調(diào)速控制器

    基于AVR單片機實現(xiàn)直流電機PWM調(diào)速控制器
    發(fā)表于 10-15 10:19 ?28次下載
    基于AVR<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b>的<b class='flag-5'>直流電機</b>PWM<b class='flag-5'>調(diào)速</b>控制器

    基于AT89C51單片機直流電機PWM調(diào)速程序分享

    這是一款A(yù)T89C51單片機直流電機PWM調(diào)速程序,程序可以直接用于AT89C52、AT89S51、AT89S
    發(fā)表于 10-19 16:03 ?1.7w次閱讀

    基于51單片機直流電機PWM調(diào)速程序

    這是一款A(yù)T89C51單片機直流電機PWM調(diào)速程序,程序可以直接用于AT89C52、AT89S51、AT89S
    的頭像 發(fā)表于 10-24 15:56 ?4.9w次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>直流電機</b>PWM<b class='flag-5'>調(diào)速</b>程序

    使用51單片機實現(xiàn)PWM直流電機調(diào)速的程序和注釋詳細(xì)資料免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機實現(xiàn)PWM直流電機調(diào)速的程序和注釋詳細(xì)資料免費下載.
    發(fā)表于 11-05 18:05 ?83次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b>PWM<b class='flag-5'>直流電機</b><b class='flag-5'>調(diào)速</b>的程序和注釋詳細(xì)資料免費下載

    使用51單片機控制直流電機調(diào)速的程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機控制直流電機調(diào)速的程序免費下載,通過P1.0口來控制直流電機
    發(fā)表于 06-13 17:45 ?48次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>控制<b class='flag-5'>直流電機</b><b class='flag-5'>調(diào)速</b>的程序免費下載

    使用51單片機控制直流電機的代碼免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機控制直流電機的代碼免費下載包括了:點動控制兩個直流電機正反轉(zhuǎn)電位器調(diào)速,分別控制兩個
    發(fā)表于 06-24 08:00 ?25次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>控制<b class='flag-5'>直流電機</b>的代碼免費下載

    51單片機實現(xiàn)PWM直流電機調(diào)速(注釋詳細(xì))

    51單片機實現(xiàn)PWM直流電機調(diào)速(注釋詳細(xì))(電源技術(shù)投稿)-51
    發(fā)表于 09-24 14:58 ?251次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b>PWM<b class='flag-5'>直流電機</b><b class='flag-5'>調(diào)速</b>(注釋詳細(xì))

    51單片機步進(jìn)電機測試程序&直流電機測試程序

    51單片機步進(jìn)電機測試程序&直流電機測試程序(通信電源技術(shù) 期刊查稿)-51單片機步進(jìn)
    發(fā)表于 09-24 15:53 ?110次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>步進(jìn)<b class='flag-5'>電機</b>測試程序&<b class='flag-5'>直流電機</b>測試程序

    使用單片機實現(xiàn)直流電機的PWM調(diào)速控制原理圖

    使用單片機實現(xiàn)直流電機的PWM調(diào)速控制
    發(fā)表于 12-10 15:29 ?0次下載