單片機(jī)與增量式旋轉(zhuǎn)編碼器的連接
A,B兩點(diǎn)對應(yīng)兩個(gè)光敏接受管,A,B兩點(diǎn)間距為 S2 ,角度碼盤的光柵間距分別為S0和S1。
本文引用地址:http://butianyuan.cn/article/201611/316215.htm當(dāng)角度碼盤以某個(gè)速度勻速轉(zhuǎn)動(dòng)時(shí),那么可知輸出波形圖中的S0:S1:S2比值與實(shí)際圖的S0:S1:S2比值相同,同理角度碼盤以其他的速度勻速 轉(zhuǎn)動(dòng)時(shí),輸出波形圖中的S0:S1:S2比值與實(shí)際圖的S0:S1:S2比值仍相同。如果角度碼盤做變速運(yùn)動(dòng),把它看成為多個(gè)運(yùn)動(dòng)周期(在下面定義)的組 合,那么每個(gè)運(yùn)動(dòng)周期中輸出波形圖中的S0:S1:S2比值與實(shí)際圖的S0:S1:S2比值仍相同。
通過輸出波形圖可知每個(gè)運(yùn)動(dòng)周期的時(shí)序?yàn)?/p>
順時(shí)針運(yùn)動(dòng) 逆時(shí)針運(yùn)動(dòng)
A B AB
1 1 11
0 110
0 0 00
1 0 01
我們把當(dāng)前的A,B輸出值保存起來,與下一個(gè)A,B輸出值做比較,就可以輕易的得出角度碼盤的運(yùn)動(dòng)方向,
如果光柵格S0等于S1時(shí),也就是S0和S1弧度夾角相同,且S2等于S0的1/2,那么可得到此次角度碼盤運(yùn)動(dòng)位移角度為S0弧度夾角的1/2,除以所消毫的時(shí)間,就得到此次角度碼盤運(yùn)動(dòng)位移角速度。
S0等于S1時(shí),且S2等于S0的1/2時(shí),1/4個(gè)運(yùn)動(dòng)周期就可以得到運(yùn)動(dòng)方向位和位移角度,如果S0不等于S1,S2不等于S0的1/2,那么要1個(gè)運(yùn)動(dòng)周期才可以得到運(yùn)動(dòng)方向位和位移角度了。發(fā)一個(gè)機(jī)械式旋轉(zhuǎn)編碼器檢測程序用51寫的
#defineWA=PX.X
#defineWB=Py.y
voidencoder(void)
{
unsignedchari,j;
staticunsignedcharta,tb;
TR1=0;
i=WA;
j=WB;
if((i^j)&&(ta&tb))
{
if((i==1)&&(j==0))
{
count++;
}
elseif((i==0)&&(j==1))
{
count--;
}
}
評論