設計一個直流伺服電機電機控制系統,控制功能要求實現電機的啟動、停止控制、正轉、反轉、加速、減速共六種功能,為了能實現人機互動,需要用到按鍵和數碼管。
具體要求如下:K0為啟動/停止控制、K1正轉、K2反轉;K3加速,K4減速,用3個發光二極體顯示狀態:正轉時紅燈亮,反轉時黃燈亮,不轉時綠燈亮。並利用4位LED數碼管顯示電機轉速。
要求分析:
按鍵K1用來控制電機反轉,若電機正在停止或正轉狀態,當按下k1時,電機開始反轉;若電機處於反轉狀態,電機不響應按鍵命令。
按鍵K2用來控制電機正轉,若電機正在停止或反轉狀態,當按下k2時,電機開始正轉;若電機處於正轉狀態,電機不響應按鍵命令。
按鍵K3用來控制電機加速,當電機處於運行狀態時,如果電機尚未達到最大轉速,當按下按鍵K3時,電機會加速,每按一次,電機加速一個節拍,若需要一直加速,則需要多次按下按鍵K3,當電機到達最大速度時,電機將保持在最大速度運行,不再響應按鍵命令。
按鍵K4用來控制電機減速,當電機處於運行狀態時,如果電機尚未達到最小轉速,即停止狀態,當按下按鍵K4時,電機會減速,每按一次,電機減速一個節拍,若需要一直減速,則需要多次按下按鍵K4,當電機到達最小速度時,即電機處於停止狀態,電機將保持停止,不再響應按鍵命令。
為了知道電機是否按控制要求工作,需要知道電機的轉速,這裡用到了4位數碼管來顯示,最高位顯示轉動方向,正轉顯示「0」,反轉顯示「-」。後3位用來顯示轉速的數值大小。
此外,設置三個發光二極體,來顯示電機的運行狀態。當電機停止時,綠燈亮,當電機正轉時,紅燈亮,當電機反轉時,黃燈亮。
2. 控制方案設計
因為直流電機的工作電壓和電流與控制電路的電壓和電流不匹配,所以需要設計接口電路,用來把控制電路的指令轉化為電機的工作信號,這種接口電路稱為直流電機的驅動電路。直流電機的驅動電路有多種不同的設計方案,這裡著重介紹了用分立元件構成的驅動電路和用集成晶片構成的驅動電路。
2.1用分立元件構成直流電機的驅動電路
利用電晶體,電阻等分立元件,來組成直流電機的全橋驅動電路。因為電機的工作電流較大,而一個三極體的電流放大能力有限,所以採用達林頓組成全橋(H橋)驅動電路控制電機,以滿足電機工作的需要。如圖1所示。圖中的Q1~Q4是功率三極體,其中Q1和Q2組成一個橋臂,其中Q3和Q4組成一個橋臂。每個功率三極體旁邊有一個續流二極體。當Q1和Q4打開時,直流電機的控制電流從A流向B,此時直流電機正轉;當Q2和Q3打開時,直流電機的控制電流從B流向A,此時直流電機反轉。這樣,通過Q1~Q4的控制就可以控制直流電機的轉向了。
圖1 直流電機全橋控制原理圖
2.2用電機驅動晶片來構成直流電機的驅動電路
這裡所用的驅動晶片是L298,L298起到方大電流的作用。L298有4路輸入,4路輸出,2個使能端。用L298構成的驅動電路如圖2所示。
其工作原理為:L298晶片中,IN1對應OU1,IN2對應OUT2,IN3對應OU3,IN4對應OUT4,使能端ENA對應IN1和IN2,使能端ENB對應IN3和IN4。在使能端為高電平的狀態下,當IN1輸入高電平IN2輸入低電平時,電機正轉,當IN1輸入低電平IN2輸入高電平時,電機反轉,當IN1和IN2輸入電平相等時,電機不轉。如果使能端為低電平,那麼電機不受控制,而處於停止狀態。
圖2直流電機驅動電路圖
L298的工作電壓範圍在7V~50V之間,輸出電流可達2A,能夠滿足直流電機的控制需要。
2.3.方案選擇
以上所給的兩種直流電機的驅動方案都能滿足要求,現在來對它們進行分析比較,選出合適的方案。
用分立元件構成的直流電機驅動電路,其優點是:電路由分立元件組成,通過分析電路,能直觀的了解驅動電路的工作原理,對於理論學習是非常有幫助的。其缺點是:電路過於複雜,在製作實物時容易出錯,另一方面,分立元件過多,其可靠性很難保證。
用集成晶片構成的直流電機驅動電路,其優點是,電路簡單,元件減少,電路的可靠性高,製作實物時相對較容易。其缺點是,對於初學者很難知道期內的工作原理,只能簡單的用。
通過上面的分析,我決定選用集成晶片L298來構成直流電機的驅動電路,這樣實現起來較為容易。
2.4.總體方案設計
控制系統的核心控制晶片是AT89C51單片機,單片機作為整個系統的大腦,協調各個部件的工作。首先,當按鍵發出的控制指令時,單片機利用外部中斷採集控制指令,並對控制指令進行處理,之後輸出信號控制直流電機的驅動電路。與此同時,單片機要計算直流電機的轉速,並且要把電機的轉速在數碼管上顯示出來。直流電機的調速是通過單片機控制輸出PWM的佔空比實現的,為了提高單片機的工作效率,對按鍵的掃描採用中斷方式。其原理框圖如圖3:
圖3控制系統原理框圖
3.硬體電路設計
3.1單片機最小工作系統
單片機最小工作系統指單片機能正常工作的最少配置,包括電源、時鐘電路、復位電路和一塊51單片機。
(1)89C51
AT89C51是一種帶4K字節FLASH字節存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。如圖4所示。
圖4 AT89C51
(2)時鐘電路
MCS-51單片機的時鐘有兩種工作方式:一種是內部振蕩方式,它是利用單片機內部的振蕩電路,產生時鐘信號,這種方式單片機的時鐘引腳上接石英晶體和振蕩電容;另外一種是外部振蕩方式,它是把外部已有的時鐘引入單片機。下面來介紹較為常用的內部振蕩方式:
如圖5,單片機內部有一個用於構成振蕩器的高增益反相放大器,它的輸入端為XTAL1引腳,輸出端為XTAL2引腳,分別是8051單片機的19腳和18腳,其頻率範圍為fOSC=0~12MHZ。
圖5 內部振蕩方式時鐘電路圖
(3)復位電路
往單片機的復位引腳上輸入24個時鐘周期以上的高電平,即執行復位操作。在此次課設中我用的是按鍵復位,電路如圖6所示,系統在運行時,按下復位按鍵,就能在RST引腳產生一段時間的高電平,使系統復位。此處,取12MHZ的晶振,電容取30pF。
圖6 按鍵復位電路
3.2數碼管顯示電路
LED數碼管是由a、b、c、d、e、f、g、h這8段發光二極體組成的「8」字形顯示器件。LED數碼管分為共陽極和共陰極兩種,如圖7所示,如果每段的陽極接在一起則為共陽極LED,如果每段的陰極接在一起則為共陰極LED。此次課設中,我所用的數碼管為共陰極的。
圖7 LED數碼管
這裡用到了4位數碼管,如圖8所示,段選端接單片機的P0口,因為P0口內部沒有上拉電阻,為高阻態,不能正常的輸出高/低電平,所以這裡需要上拉電阻。為了電路的簡化,這裡使用了排阻。數碼管的位選端接單片機的P1.0~P1.3,當輸出低電平時,表示該位數碼管被選中。
圖8數碼管電路
3.3直流電機驅動電路
L298是一款高電壓、高電流型的全橋驅動電路,輸入為TTL電平,用來驅動如繼電器、直流電機或步進電機等感性負載。兩個獨立的使能端,可以獨立的控制兩組四個輸入。
直流電機的驅動電路由L298構成,51單片機通過P1.5~P1.7口控制L298的使能埠和輸入埠,而驅動晶片則輸出被放大的控制信號,用以控制電機運行。驅動電路如圖9所示,圖中所加4個二極體是起到保護作用。
圖9直流電機驅動電路
3.4按鍵控制電路
單片機檢測按鍵的原理是:單片機的I/O口既可作為輸出也可以作為輸入使用,當檢測按鍵時用的是它的輸入功能,我們把按鍵的一端接地,另一端與單片機的某個I/O口相連,開始時先給該I/O口賦一個高電平,然後讓單片機不斷的檢測該I/O口是否變為低電平,當按鍵閉合時,即相當於該I/O口通過按鍵與地相連,變成低電平,程序一旦檢測到I/O變為低電平則說明按鍵被按下,然後執行相應的指令。
這種按鍵在按下和鬆開時都會有抖動現象,可以採用硬體或者軟體的方式來消除抖動,為了節約成本,採用軟體延時的方式來消除抖動的影響。
為了提高單片機的工作效率,本次設計將5個按鍵通過一個與門連至單片機的外部中斷輸入口。當有按鍵按下時,單片機停下正在做的工作,轉而執行按鍵掃描程序,然後執行相應指令。按鍵控制電路如圖10所示:
圖10按鍵控制電路
4.軟體設計
4.1 主程序設計
當程序開始運行時,不斷採集直流電機的轉速並顯示。其流程圖如圖11所示:
圖11主程序流程圖
4.2定時器0控制產生PWM波形
直流電機調速一般運用PWM原理來進行。對於直流電機來說,如果加在電樞兩端的電壓為脈動電壓,可以看出,在T不變的情況下,改變t1和t2的寬度,電壓將發生變化。
則
式中,是常數。
利用PWM調速的原理,也就是通過改變佔空比來改變加在電機兩端的電壓,從而改變電機的轉速,其流程圖如圖12所示。
圖12 PWM波形控制流程圖
直流電機在進行調速時,通過
[
1] [
2] [
3] [
4]
推薦閱讀
STC15單片機實驗名稱:使用NTC電阻測量溫度實驗內容: 使用NTC電阻測量溫度並顯示在數碼管上 讀取DS18B20模塊測量溫度作為參考實驗器材: STC15W408AS_DIP16 x1 DS18B20 x1 TM1637數碼管 x1
發表於 2020-12-17
/*一款電子鐘程序,此電子鐘是四位電子鐘數碼管組成的,功能分別有走時、響鬧、走時間調整、鬧鐘時間調整等功能!調整部分分別由三個按鍵實現,一個功能鍵,一個+(加)鍵,另一個為-(減)鍵,其它功能鍵是復用功能!*/硬鍵介紹:數碼管個位.十位.百位.千位.小數點分別接P0.0 P0.1 P0.2 P0.3 P0.4。蜂鳴器接P3.5腳,功能按鍵接P3.2 加按鍵接P3.3 減按鍵接P3.4以下是兩張圖片!!!#include <reg52.h>//頭文件#define uchar unsigned char//宏定義#define uint unsigned int//宏定義uchar shi,fen,nshi,nfen,ma
發表於 2020-12-17
51單片機做的溫度顯示,溫度顯示在LCD1602液晶屏上。然後按鍵可以調整溫度閾值,溫度高於或低於所設溫度,蜂鳴器就會響……單片機源程序如下:/*************************************************************************************** 基於單片機的實時溫度報警系統設計  
發表於 2020-12-17
當電機較大時,啟動是個必須注意的問題。比較簡單且用的很多的是星三角啟動,這裡寫出了星三角啟動的核心部分。每一個IO口接上繼電器,再控制交流接觸器,就OK了。但,要注意,星、角交流接觸器一定要互鎖,否則一旦某個交流接觸器粘連,就造成短路了。#include <reg51.h>sbit K1=P3^1; //按鍵1,控制第1個繼電器啟動sbit K2=P3^2; //按鍵2,控制第2個繼電器啟動sbit J1=P1^5; //星接繼電器sbit J2=P1^6; //星點繼電器sbit J3=P1^7; //角繼電器void Delay_1ms(unsigned i
發表於 2020-12-16
、技術性能穩定等特點而受到廣大用戶和專業人士的歡迎。而本設計的電路包括硬體和軟體兩個部分。硬體部分包括紅外感應部分與單片機控制部分。整個系統電路可劃分為:電源部分、傳感器模塊部分、單片機控制電路,而單片機控制由最小系統和指示燈電路、報警電路等子模塊組成。主要工作由熱釋電紅外感應器完成信息採集、處理、數據傳送經過單片機功能設定到達報警模塊這一過程。就此設計的核心模塊來說,單片機就是設計的中心單元。單片機應用系統也是由硬體和軟體組成。硬體包括單片機、輸入/輸出設備、以及外圍應用電路等組成的系統,軟體是主要是工作的程序通過編寫程序來控制輸入的信號。二、設計任務分析1.該設計包括硬體和軟體設計兩個部分。模塊劃分為數據採集、按鍵設定、報警
發表於 2020-12-16
用一個按鍵控制四個繼電器循環導通,程序由51單片機的程序改到STC15F104W上,第一次按鍵,第一個繼電器吸合,第二次按鍵,第二個繼電器吸合,第一個繼電器釋放,以此類推。最初的想法就是實現電風扇,三檔開關,程序裡面可以修改埠。#include<reg52.h>sbit key = P3^4; //定義按鍵void delayms(void); //延時void led_refresh(unsigned char
發表於 2020-12-16