單片機霍爾測速_單片機霍爾測速程序 - CSDN

2020-11-23 CSDN技術社區

1.本設計採用STC89C51/52(與AT89S51/52、AT89C51/52通用,可任選)單片機作為主控制器
· 2.採用霍爾傳感器非接觸式測電機轉速
· 3.LCD1602液晶顯示當前的轉速,轉速單位為轉/分(RPM)。和顯示當前的pwm佔空比0~100%。
· 4.電機的速度可以通過按鍵調整,也可以開始暫停,正轉和反轉。
注意:磁鐵和霍爾元件最近距離在2mm左右,太近可能會在電機轉動時碰到霍爾元件,太遠霍爾元件可能會檢測不到磁鐵。
使用說明:
液晶屏第一行顯示電機轉速,第二行顯示佔空比,佔空比數值越大,電機轉速越快。
系統一共有6個按鍵,單片機附近的獨立按鍵是系統的復位按鍵,按下單片機會復位。
下面一排是控制按鍵:
1鍵:加速鍵,可以短按,佔空比加1,也可長按,佔空比連續加;
2鍵:減速鍵,可以短按,佔空比減1,也可長按,佔空比連續減;
3鍵:正轉切換鍵,按下後電機正轉;
4鍵:反轉切換鍵,按下後電機反轉;
5鍵:開始暫停鍵,按一下開始,再按一下暫停。

1.本選題的理由及意義
現在電氣傳動的主要方向之一是電機調速系統採用微處理器實現數位化控制,近年來,隨著科技的進步,直流電機得到了越來越廣泛的應用,直流具有優良的調速特性,調速平滑,方便,調速範圍廣,過載能力強,能承受頻繁的衝擊負載,可實現頻繁的無極快速起動、制動和反轉,需要滿足生產過程自動化系統各種不同的特殊要求,從而對直流電機提出了較高的要求,改變電樞迴路電阻調速、改變電壓調速等技術已遠遠不能滿足現代科技的要求,並且隨著現代化生產規模的不斷擴大,各個行業對直流電機的需求愈益增大,並對其性能提出了更高的要求。為此,研究並製造高性能、高可靠性的直流電機控制系統有著十分重要的現實意義。
本題正是以此為出發點, 利用單片機來實現對電機轉速的監測和控制。
2.需要重點研究的關鍵問題及解決問題的思路
關鍵問題一:如何選擇合適的單片機
如何選擇合適的單片機是本課題待解決的第一個問題。綜合各方面因素考慮,本課題將採用AT89S52,利用AT89S52晶片進行低成本直流電動機控制系統的設計,能夠簡化系統構成、降低系統成本、增強系統性能、滿足更多應用場合的需要。系統實現對電機的正轉、反轉、急停、加速、減速的控制。
關鍵問題二:如何選擇合適的電機驅動
如何選擇合適的電機驅動是本課題待解決的第二個問題。綜合各方面因素考慮,本課題將採用三極體驅動電機
關鍵問題三:採用何種方法來改變佔空比
如何選改變佔空比是本課題待解決的第三個問題。改變佔空比的方法通常有定寬調頻法,調頻調寬法,定頻調寬法,由於前兩種方法在調速時改變了控制脈衝的周期(或頻率),當控制脈衝的頻率與系統的固有頻率接近時,將會引起震蕩,因此採用定頻調寬法來改變佔空比。
關鍵問題四:軟體編程及調試
軟體編程及調試是本題待解決的第四個問題,也是最為重要關鍵的問題,關係著該系統能否實現其功能。
3.創新點及實踐價值
PWM-脈衝寬度調製技術,通過對微處理器輸出的一系列數字脈衝寬度進行調製,等效地獲得模擬電路所需的波形,從而實現對模擬電路控制的一種有效技術。採用PWM技術可以避免傳統調速系統模擬電路容易隨時間飄移、產生一些不必要的熱損耗、以及對噪聲敏感等缺點,並且PWM調速系統低速特性好,動態抗幹擾能力強的特點.由此來實現直流電機的啟動、停止、加速、減速、正轉、反轉以及速度的動態顯示,並且大幅度提高了轉速顯示的精確性。
4.完成本選題所需的工作條件(如資料、工具書、計算機設計繪圖、實驗、調研)及解決辦法
工具:
(1)直流電機原理簡述的相關資料
(2) PWM控制轉速等的一些資料
(3) 模電、數電書籍
(4) 焊接工具一套

67-元件清單

  1. 9*15萬用板
  2. STC89C51單片機
  3. 40腳IC座
  4. 1602液晶
  5. 16p母座
  6. 16p排針
  7. 10k電阻*3
  8. 1k電阻*5
  9. 3v直流電機
  10. 3*1萬用板
  11. 磁鐵*2
  12. 塑料管
  13. 3144霍爾傳感器
  14. 4148二極體*4
  15. 8050三極體*4
  16. 8550三極體*2
  17. 103排阻
  18. 104獨石電容
  19. 10uf電解電容
  20. 30pf瓷片電容*2
  21. 12M晶振
  22. 按鍵*6
  23. 自鎖開關
  24. DC電源插口
  25. 導線若干
  26. 焊錫若干
  27. USB電源線或電池盒

製作出來的實物:

單片機直流電機控制轉速仿真原理圖如下


電路原理圖如下:

PCB圖如下:

部分原始碼:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void displaym();
sbit en=P2^5; //1602 6管腳
sbit rs=P2^7; //1602埠 4管腳
sbit rw=P2^6;//lcd1602控制埠 5管腳
sbit num1=P1^0; //佔空比加1
sbit num2=P1^1; //佔空比減一
sbit num3=P1^2; //正傳
sbit num4=P1^3; //反轉
sbit num5=P1^4; //開始停止切換

sbit out=P3^4; //PWM輸出用於正傳
sbit out1=P3^7; //PWM輸出用於反轉

uint zhuansu,flag,z1,z2,m,flag_1,zheng,fan,kai;

void delay(uint z)//延時1ms函數
{

uint x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}

void write_com(uchar com)//向1602寫一字節(控制指令)
{
rs=0;
P0=com;
delay(5);
en=0;
delay(10);
en=1;
}
void write_data(uchar date)//向1602寫一字節(數據)
{
rs=1;
P0=date;
delay(5);
en=0;
delay(5);
en=1;
}
void init()//初始化函數
{
en=0;
rw=0;
write_com(0x01); //lcd初始化
write_com(0x38); //5X7顯示
write_com(0x0c); //關閉光標
TMOD=0x01; //定時器方式1
TH0=0xdc;
TL0=0x00; //定時器裝入初值
EA=1; //開總中斷
ET0=1; //定時器0開中斷
TR0=1;
EX1=1;
IT1=1; //定時器啟動
TH1=0xfc;
TL1=0x66;//定時100us
ET1=1; //定時器1開中斷
TR1=1;
write_com(0x80);
write_data(『V』);
write_data(』:』);
write_com(0x87); //第一行顯示轉速
write_data(『r』);
write_data(『p』);
write_data(『m』);
write_com(0xc0);
write_data(『z』);
write_data(『h』);
write_data(『a』);
write_data(『n』);
write_data(『k』);
write_data(『o』);
write_data(『n』);
write_data(『g』);
write_data(『b』);
write_data(『i』); //在第二行顯示zhankongbi:
write_data(』:』);
displaym();
}
void keyscan() //鍵盤掃描函數
{
if(num10)
{
delay(5); //消除抖動
if(num1
0)
{
if(m<=199)
m++;
displaym(); //設定佔空比加一
}
}
if(num20)
{
delay(5);
if(num2
0)
{
if(m>=1)
m–;
displaym(); //設定佔空比減一

}

}
if(num30)
{
delay(5);
if(num3
0)
{
zheng=1; //正傳標誌置1
fan=0; // 反轉標誌置0

}

}
if(num40)
{
delay(5);
if(num4
0)
{
zheng=0; //正傳標誌置0
fan=1; // 反轉標誌置1

}

}
if(num50)
{
delay(5);
if(num5
0)
{
while(num5==0) ;
kai=1-kai;
}
}
}
void display()
{
write_com(0x82);
zhuansu=zhuansu*30; //將兩秒內的計數乘以30得到轉每分

if(zhuansu/10000!=0)
write_data(zhuansu/10000+0x30); //如果轉速的萬位不為0 正常顯示否則顯示空格
else
write_data(』 ');

if(zhuansu/1000==0)
write_data(』 ');
else
write_data(zhuansu%10000%1000+0x30); //如果轉速小於1000 千位為空格 否則正常顯示

if(zhuansu/100==0)
write_data(』 ');
else
write_data(zhuansu%10000%1000/100+0x30); //如果轉速小於100 百位為空格 否則正常顯示

if(zhuansu/10==0)

write_data(』 ');
else
write_data(zhuansu%10000%1000%100/10+0x30); //如果轉速小於10 十位為空格 否則正常顯示

write_data(zhuansu%10000%1000%100%10+0x30);
write_com(0xd0); //如果沒有這句,當中斷內的顯示函數執行完,就會在轉速的位置顯示佔空比數據,導致亂碼
}
void displaym()
{
write_com(0xcb);
if(m/200%10!=0)
write_data(m/200%10+0x30); //如果佔空比百位不為0則顯示百位否則顯示空格
else
write_data(』 ');

if(m/200%100&&m/20%100)
write_data(』 ');
else
write_data(m/20%10+0x30); //如果佔空比小於10 十位正常顯示 否則顯示空格

write_data(m/2%10+0x30); //顯示個位
}
void main()
{
flag_1=0;
m=100; //佔空比為100
zhuansu=0; //轉速初值0
flag=0;
zheng=1; //初始化電機正轉動
fan=0;

init(); //初始化 while(1) { keyscan(); //鍵盤掃描程序 }

}
void int1()interrupt 2 //外部中斷1脈衝技術記錄電機的轉速 電機轉一圈zhuansu加一
{
zhuansu++;
}
void int2()interrupt 3 //定時器0顯示轉速
{

TH0=0xdc;
TL0=0x00;//定時10ms
flag++;

if(flag==200) //計時到達2s
{

display(); //顯示轉速 zhuansu=0; //轉速置0 flag=0; }

}
void int3()interrupt 1 //產生PWM
{

TH1=0xff;
。。。。。。。。。。

…………限於本文篇幅有限 完整代碼請從文章中下載附件…………

最後,如果有什麼意見或者建議歡迎您留言給我,讓我們共同學習一起進步,
如果需要 完整代碼或設計文件,請在下方留言或者私信我,看到後會第一時間回復。

謝謝!

相關焦點

  • 利用微處理器設計的電機數字測速系統,抗幹擾能力強、測量精確
    為了滿足工業電氣控制中對發動機、電動機、工具機主軸等旋轉設備的轉速測量和控制,設計一款基於微控制器控制的霍爾傳感器測速系統,此系統具有抗幹擾能力強、測量精確等優點,在電氣工程實踐中,經常會遇到各種需要測量轉速的場合,在對設備轉速和控制中,常需要分時或連續測量、顯示其轉速及瞬時速度。
  • 霍爾傳感器在電動機車測速中的應用
    測速裝置在機車控制系統中佔有非常重要的地位,對側速裝置的要求是分辨能力強、高精度和儘可能短的檢測時間。介紹了應用霍爾傳感器通過測量磁場強度,來得到穩定的脈衝方波信號,實現機車轉速的測量。  霍爾傳感器是利用霍爾效應實現磁電轉換的一種傳感器,它具有靈敏度高,線性度好,穩定性高、體積小和耐高溫等特點,在機車控制系統中佔有非常重要的地位。對測速裝置的要求是分辨能力強、高精度和儘可能短的檢測時間。發電機轉速的檢測方案可分成兩類:用測速發電機檢測或用脈衝發生器檢測。
  • 基於MCS-51單片機的直流電機轉速測控系統設計
    關鍵詞:PWM;實時監控;單片機;霍爾傳感器;轉速0 引言 目前使用的電機模擬控制電路都比較複雜,測量範圍與精度不能兼顧,且採樣時間較長,難以測得瞬時轉速。本文介紹的電機控制系統利用PWM控制原理,同時結合霍爾傳感器來採集電機轉速,並經單片機檢測後在顯示器上顯示出轉速值,而單片機則根據傳感器輸出的脈衝信號來分析轉速的過程量,並超限自動報警。本系統同時設置有按鍵操作儀表,可用於調節電機的轉速。
  • 基於光纖傳輸的電磁線圈炮炮口測速裝置
    2 光纖單片機測速系統的組成本文所研究的光纖單片機測速系統由光信號發生電路、光信號的導出、光電信號轉換電路、單片機計算系統、LED顯示電路等組成。其主要原理圖如圖1所示。光纖單片機測速系統相對來說結構比較簡單,使用方便,更重要的是他能夠避免電磁線圈炮強電磁環境的幹擾,靈敏度高、測速精確,能夠滿足電磁線圈炮的測速要求。
  • 一款基於AT89C51的超聲波測速系統設計
    現有的超聲波測速系統中,要麼是單一的時差法測速,要麼是單一的頻差法測速,當被測速度變化範圍較大時,採取這種單一的地測速方法導致的測量精度下降,本系統以單片機AT89C51為核心,將時差法測速和頻差法測速集成在同一套系統中,實現了兩種方法的同時測量。
  • 工業生產中直流電機調速與測速系統設計詳解
    本方案採用單片機控制系統,使得許多控制功能及算法可以採用軟體技術來完成,為直流電機的控制提供了更大的靈活性,並使系統能達到更高的性能。2.調速和測速系統的主體電路設計整個系統由輸入電路、PWM調製、測速電路、驅動電路、控制部分及顯示等部分組成,PWM調製選用AT89S51單片機通過軟體實現頻率和佔空比的調節。
  • 霍爾傳感器的分類、霍爾效應與霍爾傳感器的應用
    霍爾傳感器是一種磁傳感器。用它可以檢測磁場及其變化,可在各種與磁場有關的場合中使用。霍爾傳感器以霍爾效應為其工作基礎,是由霍爾元件和它的附屬電路組成的集成傳感器。霍爾傳感器是根據霍爾效應製作的一種磁場傳感器。
  • 如何區分全極霍爾開關和雙極霍爾開關
    什麼是單極霍爾開關:單極性霍爾元件只感應磁鐵某一個磁極,對於TO-92S封裝,絕大多數單極霍爾IC對S極敏感,即當S極靠近有標記面時,霍爾IC導通(輸出低);當S極撤離後,霍爾關閉(輸出高)。什麼是雙極霍爾開關:雙極霍爾和全極霍爾目前是常用的霍爾元件,廣泛應用於開關,測速,計量等應用的產品上,但是實際應用中很多人誤將雙極當成全極,或者全極當成雙極,造成在搭建霍爾電路或者設計電路時的困擾。今天我們就來詳細講下如何正確區分雙極霍爾元件和全極霍爾元件。
  • 霍爾傳感器信號採集與顯示系統設計
    0 引 言 近年來,隨著傳感器技術的不斷發展,特別是單片機技術的廣泛應用,採用單片機與PC機構成的小型傳感器測控系統越來越多。因為它們很好地結合了單片機的價格低,功能強,抗幹擾能力好,溫限寬和面向控制等優點及Pc機作業系統中Windows的高級用戶界面、多任務、自動內存管理等特點。在這種測控系統中,單片機主要進行實時數據採集及預處理,然後通過串行口將數據送給PC機,PC機再對這些數據進一步處理,例如求均值、方差、畫動態曲線與計算給定、列印輸出的各種參數等任務。
  • 基於VB的霍爾傳感器性能測試系統設計
    引言 霍爾傳感器是利用霍爾效應工作的半導體元件。由於霍爾元件轉換效率高、響應速度快、動態範圍寬、頻率特性好、低噪音等特點,使霍爾傳感器在電機檢測、磁場強計、轉速控制器、位置檢測與自動控制等方面得到廣泛的應用。
  • 基於直流電機調速與測速系統設計方案
    本文以AT89S51單片機為核心,提出了基於直流電機調速與測速系統的設計方案,然後給出了系統的主電路結構,以及驅動電路設計和系統軟體設計。
  • 一種新型霍爾傳感器信號檢測分析儀的設計與實現
    摘要:針對無刷直流電機中霍爾傳感器採用AT89S52單片機作為信號採集器,通過RS232串口實現單片機與PC通信,應用VB 設計圖形化的界面對採集的數據進行分析。本文引用地址:http://www.eepw.com.cn/article/162401.htm  無刷直流電機(BLDC) 應用中,常採用霍爾傳感器
  • 基於Proteus和AVR單片機的無刷直流電機控制系統仿真
    單片機儘管在性能上不如DSP晶片,但卻有更低的價格,外部電路設計簡單,在通常狀況下單片機的控制功能和處理速度也可以達到的需求,所以這裡選擇單片機作為直流無刷電機驅動控制系統的主控晶片。Proteus軟體目前在單片機仿真及其他相關的外圍器件的仿真方面,Proteus是一個非常實用的工具軟體。
  • 霍爾元件測低速原理
    接觸式轉速表測低速可以,但要產生接觸力矩,對小力矩電動機;測速欠準,且對一些機殼旋轉的力矩電動機無法測速。下面,介紹一種用霍爾元件測低轉速的方法,它簡單、方便,能克服上述一些測速儀的缺點。測速原理霍爾元件敏感於磁場,在低轉速電動機的旋轉軸上或定子旋轉的機殼上貼上磁鋼,霍爾元件固定在某一位.置,當旋轉體上的磁鋼靠近霍爾元件的瞬間,霍爾元件便會在輸出端給出.一個脈衝信號。用頻率計測出脈衝的周期或頻率,便可計算出它的轉速。
  • 測速發電機的工作原理
    打開APP 測速發電機的工作原理 發表於 2019-08-06 14:49:33   測速發電機的工作原理   測速發電機的工作原理是將轉速轉變為電壓信號,它運行可靠,但體積大,精度低,且由於測量值是模擬量,必須經過A/D轉換後讀入計算機。
  • 基於單片機及傳感器的機器人設計與實現
    反射式紅外光電傳感器檢測引導線,使機器人沿軌道自主行走;使用霍爾集成片,通過計車輪轉過的圈數完成機器人行走路程測量;接近開關可探測到軌道下埋藏的金屬片,發出聲光信息進行指示,並能實時顯示金屬片距起點的位置。
  • 基於霍爾電流傳感器的太陽能電池的輸出電流測量
    系統利用AT89S52單片機控制,採用霍爾電流傳感器對太陽能電池的輸出電流測量,其突出優點是可以在幾乎不消耗能量情況下,將電流轉換為電壓進行測量。1 系統硬體設計系統硬體電路如圖1所示,主要由太陽能電池組、霍爾電流傳感器組成的,I/U轉換電路、液晶1602組成的顯示裝置、AT89S52單片機構成的控制系統,以及鉛酸蓄電池構成的儲能系統5部分組成。
  • 雙極霍爾元件詳解
    雙極霍爾元件是指霍爾可以感應磁鐵的南極和北極,和全極霍爾的區別是全極只要感應到磁場靠近,不分南北極,都是輸出低電平,雙極在感應到南極和北極的時候分別隨機輸出低電平和高電平。雙極霍爾元件01工作原理雙極霍爾需要兩個磁極分別控制高低電平,利用磁場NS極交替來輸出信號。
  • 單片機在直流變頻洗衣機中的應用
    單片機在直流變頻洗衣機中的應用1 引言   洗衣機是一種在家庭中不可缺少的家用電器,發展非常快,全自動式洗衣機因使用方便得到大家的青睞,全自動即進水、洗滌、漂洗、摔乾等一系列過程自動完成,控制器通常設有幾種洗滌程序,對不同的衣物可供用戶選擇。