『壹』 用霍爾元件設計一測量轉速的裝置
一,24vDC Power supply,Hall IC(eg.A3144EU),Hall IC has three wires,gruond,supply and output.The wire of supply is connected to 24VDC.The wire of output is connected to a PLC output point.We can get pulse count.The number is multiplied by diameter.
『貳』 基於51單片機的轉速測量設計,程序編寫!電路模擬圖
測量轉速,使用光電感測器,被測電機帶動紙片旋轉,我們在紙片上開了10小孔,電機每旋轉一周就會產生10個脈沖,產生12個脈沖,要求將轉速值(轉/分)顯示在數碼管上。
實驗程序如下:
#include<REG52.H>
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
#defineLED_DATP1
sbitLED_SEG0=P0^3;
sbitLED_SEG1=P0^2;
sbitLED_SEG2=P0^1;
sbitLED_SEG3=P0^0;
//sbitpin_SpeedSenser=P3^5;//光電感測器信號接在T1上
#defineTIME_CYLC100//12M晶振,定時器10ms中斷一次我們1秒計算一次轉速//1000ms/10ms=100
#definePLUS_PER10//碼盤的齒數,這里假定碼盤上有10個齒,即感測器檢測到10個脈沖,認為1圈
#defineK100.0//校準系數
unsignedcharcodetable[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchardataDisbuf[4];//顯示緩沖區
uintTcounter=0;//時間計數器
bitFlag_Fresh=0;//刷新標志
bitFlag_clac=0;//計算轉速標志
bitFlag_Err=0;//超量程標志
//在數碼管上顯示一個四位數
voidDisplayFresh();
//計算轉速,並把結果放入數碼管緩沖區
voidClacSpeed();
//初始化定時器T0
voidinit_timer0();
//初始化定時器T1
voidinit_timer1();
//延時函數
voidDelay(uintms);
voidit_timer0()interrupt1/*interruptaddressis0x000b*/
{
TF0=0;//d定時器T0用於數碼管的動態刷新
//
TH0=0xC0;/*initvalues*/
TL0=0x00;
Flag_Fresh=1;
Tcounter++;
if(Tcounter>TIME_CYLC)
{Flag_clac=1;//周期到,該重新計算轉速了
}
}
voidit_timer1()interrupt3/*interruptaddressis0x001b*/
{
TF1=0;//定時器T1用於單位時間內收到的脈沖數
//要速度不是很快,T1永遠不會益處
Flag_Err=1;//如果速度很高,我們應考慮另外一種測速方法,:脈沖寬度算轉速
}
voidmain(void)
{
Disbuf[0]=0;//開機時,初始化為0000
Disbuf[1]=0;
Disbuf[2]=0;
Disbuf[3]=0;
init_timer0();
init_timer1();
while(1)
{
if(Flag_Fresh)
{Flag_Fresh=0;
DisplayFresh();//定時刷新數碼管顯示
}
if(Flag_clac)
{Flag_clac=0;
ClacSpeed();//計算轉速,並把結果放入數碼管緩沖區
Tcounter=0;//周期定時清零
TH1=TL1=0x00;//脈沖計數清零
}
if(Flag_Err)//超量程處理
{
//數碼管顯示字母'EEEE'
Disbuf[0]=0x9e;//開機時,初始化為0000
Disbuf[1]=0x9e;
Disbuf[2]=0x9e;
Disbuf[3]=0x9e;
while(1)
{DisplayFresh();//不再測速等待復位i
}
}
}
}
//在數碼管上顯示一個四位數
voidDisplayFresh()
{
P2|=0xF0;
LED_SEG0=0;
LED_DAT=table[Disbuf[0]];
Delay(1);
P2|=0xF0;
LED_SEG1=0;
LED_DAT=table[Disbuf[1]];
Delay(1);
P2|=0xF0;
LED_SEG2=0;
LED_DAT=table[Disbuf[2]];
Delay(1);
P2|=0xF0;
LED_SEG3=0;
LED_DAT=table[Disbuf[3]];
Delay(1);
P2|=0xF0;
}
//計算轉速,並把結果放入數碼管緩沖區
voidClacSpeed()
{
uintspeed;
uintPlusCounter;
PlusCounter=TH1*256+TL1;
speed=K*(PlusCounter/PLUS_PER)/60;//K是校準系數,如速度不準,調節K的大小
Disbuf[0]=(speed/1000)%10;
Disbuf[1]=(speed/100)%10;
Disbuf[2]=(speed/10)%10;
Disbuf[3]=speed%10;
}
//初始化定時器T0
voidinit_timer0()
{
TMOD&=0xf0;//定時10毫秒/*Timer0mode1withsoftwaregate*/
TMOD|=0x01;/*GATE0=0;C/T0#=0;M10=0;M00=1;*/
TH0=0xC0;/*initvalues*/
TL0=0x00;
ET0=1;/*enabletimer0interrupt*/
EA=1;/*enableinterrupts*/
TR0=1;/*timer0run*/
}
//延時函數
voidDelay(uintms)
{
uchari;
while(ms--)
for(i=0;i<100;i++);
}
//初始化定時器T1
voidinit_timer1()
{
TMOD&=0x0F;/*Counter1mode1withsoftwaregate*/
TMOD|=0x50;/*GATE0=0;C/T0#=1;M10=0;M00=1;*/
TH1=0x00;/*initvalues*/
TL1=0x00;
ET1=1;/*enabletimer1interrupt*/
EA=1;/*enableinterrupts*/
TR1=1;/*timer1run*/
}
『叄』 轉速測量及顯示邏輯電路設計
請直接聯系我。留言或者Q:氣死而八九要五六另。
我上班有時候Q不上線,可以將相關資料發至我郵箱[email protected]
『肆』 急需《智能轉速測量裝置的設計與製作》畢業設計一份
你好
專業代做畢業論文
多年經驗
團隊合作`
質量保證
誠信可靠
需要的話加團隊名字溝通
『伍』 分別用光電元件和霍爾元件設計測量轉速裝置,並說明其原理,高分跪求
這是我之前寫的一篇文章供您參考
談談霍爾元件在里程錶、速度表中專的應用
霍爾元件與磁場封屬裝在一起可以感應轉動的齒輪個數,輸出相應的電壓脈沖信號,根據處理這些電壓脈沖信號,可以得到電機的速度和總里程,製成霍爾式里程錶和速度表。霍爾式里程錶或速度表有非接觸式測量、工作頻率高、可靠性高等優點,被廣泛的應用在電動車、摩托車和其他儀器設備上。
霍爾式里程錶通常有兩種實現方案,下面來介紹此兩種方案的優缺點
方案1:採用單極型開關霍爾。單極型霍爾只需要感應一個磁極即輸出一個方波。此種方案理論上只需要一個磁鋼,可以使感測器的體積作到很小,同時節約成本;但由於單極型霍爾在一些特殊情況下(比如不在預料中的抖動或者位移)會出現誤動作,導致檢測結果有些偏差。所以單極型霍爾式里程錶或速度表常被應用於一些對精度要求不高的測距和測速,例如電動自行車或者電摩、跑步機等。
方案2:採用雙極型開關霍爾。雙極型霍爾需要感應兩個磁極完成一個周期的方波輸出,避免了方案一中的誤動作幾率,可以實現比較高的可靠性;但由於至少需要兩個磁極,所以成本較高,體積相應也較大,所以此方案在精度與可靠性要求較高的場合比如汽車中使用。
QQ是我id
『陸』 單片機課程設計轉速測量儀設計
這個你使用單片機P3.5腳的T1計數器功能就可以實現了,
不過注意一點,你所採集的信號要通過施密特反相器,否則有可能誤判;
『柒』 直流電機轉速測量的課程設計怎麼做
我可以給你一套詳細的資料 把郵箱給我 並採納我的答案!
『捌』 採用單片機設計一個控制直流電機並測量轉速的裝置
關於單片機的問題你可以咨詢河北石家莊久華正德科技有限公司的 王工,他是C語言和C++的高手,VB或者JAVA都很擅長,你可以免費咨詢的。希望可以幫到你!