A. 光電碼盤是如何測量電機轉速的有何特點
轉速測量的方法分為兩大類:直接法和間接法。直接法即直接觀測機械或電機的機械運動,測量特定時間內機械運轉規律從而測出機械運動的轉速。間接法是因為機械或電機機械運動而產生變化的其他物理量與轉速之間的關系來間接確定轉速。因機械或電機的機械運動而產生的變化並與轉速有關的物理量有很多,所以間接測量轉速的方法也有很多。
一、光電碼盤轉速測量法
光電碼盤測速法是在電機轉子端軸上固定一個光電碼盤,光電碼盤上設置有一個或多個能透光的光柵,每個光柵背後都有一個光敏元件對應。隨著電機轉動,光電碼盤也隨著轉動,當固定光源照射在光電碼盤上時,透過光柵的光被光敏元件接收並產生脈沖電信號。假如光電碼盤的編碼數為1,在時間t內測量得到的脈沖數為N,則轉速n=60N/(t*1)。碼盤上的編碼數量越多,測量精度也隨著越高。
光電碼盤測速法示意圖
二、霍爾元件轉速測量法
顧名思義,此方法是利用霍爾開關元件測轉速的。跟光電碼盤測速一樣,霍爾元件測速法也是在電機轉軸上安裝一個圓盤,圓盤上若干對小磁鋼,小磁鋼越多,解析度越高,霍爾開關則固定在小磁鋼附近,當電機轉動時,圓盤上的小磁鋼會一次經過霍爾開關,每一個小磁鋼經過,霍爾開關便會輸出一個脈沖,計算單位的脈沖數就可以確定旋轉體的轉速了。
霍爾元件測速法示意圖
三、離心式轉速測量法
離心式轉速表是利用物體旋轉時產生的離心力來測量轉速的。
我們都知道離心力與轉速的換算公式:g=r×11.18×10-6×n2
其中g為離心力、r為軌跡曲率半徑、n為轉速(r/min)。
當離心式轉速表的轉軸隨被測物體轉動時,離心器上的重物在慣性離心力作用下離開軸心,並通過傳動系統帶動指針回轉。當指針上的彈簧反作用力矩和慣性離心力矩相平衡時,指針停止在偏轉後所指示的刻度值處,即為被測轉速值。這就是離心式轉速表的原理。測轉速時,轉速表的端頭要插入電機轉軸的中心孔內,轉速表的軸要與電機的軸保持同心,否則易響准確讀數。
四、測速發電機轉速測量法
測速發電機即為輸出電動勢與轉速成比例的微特電機。利用直流發電機的電樞電動勢E與發電機的轉速成正比的這一關系測量轉速。測轉速時,測速發電機連接到被測電機的軸端,將被測電機的機械轉速變換為電壓信號輸出,
B. 光電測速碼盤原理
該裝置可利用雙路輸出的旋轉編碼器輸出兩組相位差90度的脈沖,通過這兩組脈沖版測量轉速和旋權轉的方向。
1.具體工作原理:
由一個中心有軸的光電碼盤,其上有環形通、暗的刻線,有光電發射和接收器件讀取,獲得四組正弦波信號組合成A、B、C、D,每個正弦波相差90°相位差(相對於一個周波為360°),將C、D信號反向,疊加在A、B兩相上,可增強穩定信號。由於A、B兩相相差90°,可通過比較A相在前還是B相在前,以判別編碼器的正轉與反轉。編碼器以每旋轉360°提供多少的暗刻線稱為解析度,也稱解析分度、或直接稱多少線,也就是一轉所發出的脈沖數。
C. 求一個基於STM32的速度測速程序
硬體:用紅外對管制和光碼盤進行測速。軟體用STM32的編碼模式進行測量,編碼模式的程序固件庫有挺好用的,很准確。
D. 89c52 單片機測速程序 光電碼盤
這個說白了就是測量脈沖的個數,也就是理想方波的頻率。
給你一個測頻率的程序,僅供參考
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
float f=0;
uchar LED0_data,LED1_data,LED2_data,LED3_data;
uchar i=0;
uchar code Segcode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void display();
void delay(uint v);
void initime();
/*定時器初始化*/
void initime()
{
TMOD=0x51; //T1計數器,T0定時器,方式1
TL0=(65536-10000)%256;
TH0=(65536-10000)/256;
TL1=0;
TH1=0;
ET0=1;
EA=1;
}
/*延時子函數*/
void delay(unsigned int c)
{
unsigned int i,j;
for(i=0;i<c;i++)
for(j=0;j<100;j++);
}
/*將十進制數拆成送數碼管的顯示碼*/
void dectobit(int dec)
{
LED3_data=dec/1000;
dec=dec % 1000;
LED2_data=dec/100;
dec=dec % 100;
LED1_data=dec/10;
dec=dec % 10;
LED0_data=dec;
}
/*顯示程序*/
void display()
{
P0=Segcode[LED3_data]; //個位
P2&=~0x01;
delay(10);
P2|=0x01;
P0=Segcode[LED2_data]; //十位
P2&=~0x02;
delay(10);
P2|=0x02;
P0=Segcode[LED1_data];
P2&=~0x04;
delay(10);
P2|=0x04; //百位
P0=Segcode[LED0_data]; //千位
P2&=~0x08;
delay(10);
P2|=0x08;
}
void main(void)
{
initime();
TR0=1;
TR1=1;
while(1)
{
dectobit(f);
display();
}
}
timer()interrupt 1 using 2
{
i=i+1;
if(i==100)
{ i=0;
f=TH1*256+TL1;
TL1=0;
TH1=0;
}
TL0=(65536-10000)%256;
TH0=(65536-10000)/256;
}
E. 光電碼盤感測器用於語音智能小車測速和測距
1、光電碼盤很不錯,精度跟線數有關系(你自己看一下碼盤,上面有很細的輪輻,回輪輻數答就是線數,常用的是100線,還有更多的,線數越多,精度越高,價格也越高)。
2、直接測量小車行進速度很困難,距離遠一些,精度低一些還可以用GPS什麼的,但在室內那麼點距離,你拿什麼測?總不會說上視頻圖像處理吧,這個運算量單片機可吃不消。
你要測車輪轉速是可以的,比如用霍爾感測器,不過這個測量的精度遠不如碼盤測量。一個輪子一般來說最多也就放在3-6個感測器,車子越小,放得越少,這個精度遠不如100線碼盤。
3、行進距離就是測量到的線數(脈沖個數),除以100後得到圈數,然後乘以輪子的周長即可。
教程沒有,你拿到小車後試驗一下就可以了。如果你有單片機的編程基礎,很簡單,也就兩三天的工作量而已。