• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: encoder問題請教
#8
初級會員
初級會員


查看用戶資訊
是不是也可以看看這個上麵的內容啊,不過好像HCTL-2020這種IC好貴啊,不知道對妳有沒有幫助。http://www.atnet1000.com/modules.php?name=News&file=article&sid=17

發表於: 2005/1/11 19:49
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: encoder問題請教
#7
資深會員
資深會員


查看用戶資訊
松暉ED1612S
http://0rz.net/de070
使用他的反向輸出範例線路(PH3.)
他的波形圖(PH1.)畫錯了
用示波器實際看的波形不是那樣
曾經因為這樣害我程式寫出來都判斷錯誤
拿示波器看過之後改程式才能正確控制...

沒有寫反彈跳
自己加上反彈跳的電阻電容跟程式


;測試旋轉式編碼器,松暉ED1612S,反相輸出

          
LIST  P=18F4320 R=DEC     
          
#INCLUDE <P18F4320.INC>

;定義接腳
#DEFINE   ENCO_A       PORTB,0                       ;編碼器輸出A
#DEFINE   IO_ENA       TRISB,0    
#DEFINE   ENCO_B       PORTB,1                       ;編碼器輸出B
#DEFINE   IO_ENB       TRISB,1


;設定變數位址

WAIT_ENC  EQU    20H                   
;訊號A上升等待逾時計數器
OUTLED    EQU    21H                   
;輸出數值到LED


;使用者重置向量
          ORG   00H
          
GOTO START

START
;規劃內建震盪器
        
;  MOVLW   B'01101110'           ;使用4MHz內建震盪器
         
MOVWF   OSCCON                ;
;
規劃I/O
          BSF     IO_ENA                
;編碼器訊號A
          BSF     IO_ENB                
;編碼器訊號B
          CLRF    TRISD                 
;
          
CLRF    OUTLED

AAAA
          BTFSS   ENCO_A                
;
          
CALL    TEST_RISE_A           ;測試訊號A上緣
          MOVFF   OUTLED
,LATD           ;數值輸出
          BRA     AAAA

;測試訊號A上緣
TEST_RISE_A
          MOVLW  10                     
;
          
MOVWF  WAIT_ENC               ;
WAIT_A_UP
          DCFSNZ WAIT_ENC               
;
          RETURN                        ;
超過預定等待次數就離開
          BTFSS  ENCO_A                 
;
          
BRA    WAIT_A_UP              ;若A沒上升就繼續等
;測試訊號B
TEST_B
          BTFSC  ENCO_B                 
;
          
DECF   OUTLED                 ;逆時鐘,輸出數值減一
          BTFSS  ENCO_B                 
;
          
INCF   OUTLED                 ;順時鐘,輸出數值加一
          
RETURN

          
END

發表於: 2005/1/8 8:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: encoder問題請教
#6
新會員
新會員


查看用戶資訊
很感謝大大熱心提供程式,但本人為初學者,是否有組合語言的程式呢??thanks

發表於: 2005/1/7 18:29
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: encoder問題請教
#5
高級會員
高級會員


查看用戶資訊
if ( ( INTCON3bits.INT1IE == 1 ) && ( INTCON3bits.INT1IF == 1 ) )
{
INT1_CHATTER = 100; // INT1_CHAT = 100 = 抑制雜訊出現的次數 = JOG chatter 的處理
while ( ( P_JOG1 == 1 ) && ( INT1_CHATTER != 0 ) ) // 對策雜訊的千擾
{
INT1_CHATTER--;
DLY10US();
}
while ( ( P_JOG1 ==0 ) && ( INT1_CHATTER != 0 ) ) /* Low_Level */
{
if ( P_JOG2 == 0 )
{
JOG_CW();
}
else if ( P_JOG2 == 1 )
{
JOG_CCW();
}
break;
}
F_CUESET = 1; //CUE SET
F_POWER_ON = 0; //CUE SET
INTCON3bits.INT1IF = 0; // Clear INT1 interrupt flag
}
void JOG_CW()
{
F_JOGCW=1;
F_JOGCCW=0;
JOG_BUF++; // BUFF + 1
if ( JOG_SPD.bit7 == 1 )
JOG_SPD.all = 0x01; // 反轉 -> 正轉 -> (ENCSPD)=01H ;<<JOG>>
else
JOG_SPD.all++; // speed counter + 1 ;<<JOG>>
}

void JOG_CCW()
{
F_JOGCW=0;
F_JOGCCW=1;
JOG_BUF--; // BUFF - 1
if ( JOG_SPD.bit7 == 0 )
JOG_SPD.all = 0x81; // 正轉 -> 反轉 -> (ENCSPD)=81H ;<<JOG>>
else
JOG_SPD.all++; // speed counter + 1 ;<<JOG>>
}
嘿嘿

發表於: 2005/1/7 17:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: encoder問題請教
#4
初級會員
初級會員


查看用戶資訊
《PIC單晶片進階控製應用(上)---PIC16C5X繫列》這本教材上麵提到過encoder的問題,在第26章裏麵
林容益編著,全華科技圖書股份有限公司印行齣版的

發表於: 2005/1/7 16:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: encoder問題請教
#3
新會員
新會員


查看用戶資訊
謝謝大大的告知,但只種方法encoder需轉兩次才可做判斷正反向.我曾試過用上升緣及下降緣來做判斷,但下降緣時常誤判,讓我很頭痛,是否還有更好的方法呢?謝謝

發表於: 2005/1/6 23:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: encoder問題請教
#2
管理員
管理員


查看用戶資訊
此種 Encoder 有 AB 相, Duty 為 50% , 相差 90 度的信號. 所謂的 C.W. 則是正轉的狀況, 此時 A 比 B 超前 90 度.

反轉(C.C.W.)的情況則剛好相反, A 比 B 落後 90 度. 若要正確的判斷. 則要判段兩者的上升緣及先後順序.

又再看 Timing 圖, 你應該可發現一個週期中 , AB 有四種組合. 分別是 10 , 11 , 01 , 00 . 所以從這四個狀態的先後順序也可以判斷出正反轉. 而且有四倍的解析度. 這就是所謂 4X mode.
當然也有 2X Mode.

若 MCU 支援 Pin-Change Interrupt or Capture . 則計算上就方便許多. 甚至連加速率都可以很輕易的由 Timer 的差值換算出來.

如果使用像 PIC18FXX31 或 dsPIC30FXXXX Motor-Control 係列的 IC. 則硬體就有 QEI 介面專門來對這類的 Encoder 做解碼的動作. 當然 , 正反轉的資訊也一併由硬體穫得 !

Best REegards,



發表於: 2005/1/6 21:54
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


encoder問題請教
#1
新會員
新會員


查看用戶資訊
請教各位大大,如何寫出精確判斷encoder機械型的正反轉呢?? 謝謝.

目前使用的encoder為艾華電子的RE100-23-0-12P
http://www.taiwanalpha.com/chinese/p_c_132.htm

發表於: 2005/1/6 20:51
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------