球桿電氣是一類透過(guò)掌控電氣旋轉(zhuǎn),同時(shí)實(shí)現(xiàn)球桿伸縮式的電子元件。
以LA31為例,有2個(gè)USBM+
和M-
,當(dāng)兩者間的冷卻系統(tǒng)為+24V、0V、-24V時(shí),依次同時(shí)實(shí)現(xiàn)正轉(zhuǎn)、暫停、探底回升。也可能將是-24V正轉(zhuǎn),+24V探底回升,以前述為依據(jù)。除VCC
和GND
以外,除了2個(gè)USB克爾意見(jiàn)反饋USBHALL A
和HALL B
,這是借助克爾負(fù)面效應(yīng)檢驗(yàn)電氣運(yùn)行路徑和邊線的方式。電氣正轉(zhuǎn)探底回升時(shí),三個(gè)克爾電子元件的觸摸次序相同,因而能用以推論電氣的旋轉(zhuǎn)路徑。 假如2個(gè)克爾電子元件間接裝到電氣上,根本無(wú)法確認(rèn)電氣在旋轉(zhuǎn)中的粗略地邊線,即4個(gè)參宿中的三個(gè),最小數(shù)值在90°,較為不新穎。但假如透過(guò)電氣與球桿間透過(guò)曲軸控制了傳動(dòng)裝置比率,則能把球桿的邊線精確度提升N倍。
LA31電氣旋轉(zhuǎn)1圈,克爾太空船旋轉(zhuǎn)3圈,輸入12個(gè)satate,伸縮式3或4mm,則每三個(gè)state伸縮式0.25mm或0.3333mm。 透過(guò)歷史記錄state的變動(dòng)單次,比如說(shuō)正轉(zhuǎn)+1,探底回升-1,則能即時(shí)掌控球桿電氣的球桿頂部邊線。
透過(guò)上面的如是說(shuō),能看出,三個(gè)克爾觸摸器的輸入信號(hào)AB組成了三個(gè)位寬2bit的數(shù)據(jù)state,要?dú)v史記錄state的變動(dòng)單次,一要檢驗(yàn)出state變動(dòng),二要推論出正轉(zhuǎn)還是探底回升。
state | state_pre | |
---|---|---|
正轉(zhuǎn) | 00,01,11,10 | 10,00,11,01 |
探底回升1 | 00,10,11,01 | 01,11,00,10 |
探底回升2 | 10,11,01,00 | 01,11,00,10 |
透過(guò)上表能看出,不管探底回升的初始state怎樣,以state為索引,對(duì)應(yīng)的state_pre都是一樣的,正轉(zhuǎn)也是如此。 這樣,我們就得到了三個(gè)state_pre_xxx數(shù)組,程序也就很容易寫出了:
include uint8_tstate_pre=4;//初始化為三個(gè)大于3的數(shù)即可uint8_tstate=0;uint8_tstate_pre_fwd[4]={2,0,3,1};uint8_tstate_pre_rev[4]={1,3,0,2};intcnt=0;voidmain(){while(1){state=pin_A;state=state<<1+pin_B;if(state!=state_pre){print("
電氣發(fā)生了旋轉(zhuǎn)
");if(state_pre==state_pre_fwd[state]){cnt++;print("正轉(zhuǎn)
");}if(state_pre==state_pre_rev[state]){cnt--;print("探底回升
");}state_pre=state;}}}
本文使用Zhihu On VSCode創(chuàng)作并發(fā)布
聯(lián)系電話
微信掃一掃