|
0.png (8.03 KB, 下載次數(shù): 79)
下載附件
2018-9-25 16:14 上傳
mini 512編碼器系列使用說明書
一、特點(diǎn)
電子部分采用先進(jìn)的檢測技術(shù) , 機(jī)械外殼全鋁合金構(gòu)造 ( 轉(zhuǎn)子除外 ) 。
具有以下特點(diǎn):
● 分辨率有: AB 相正交輸出 256 線、 AB 相正交輸出 1024 線、步進(jìn) + 方向輸出 512 線;
● 旋轉(zhuǎn)速度高,最高轉(zhuǎn)速可達(dá) 10000rpm ;
● 寬廣的工作溫度范圍: -40 ℃ ~ +125 ℃ 。
● 抗擾性好 。 本產(chǎn)品采用霍爾檢測技術(shù) , 屬于無接觸檢測 , 傳感器運(yùn)行不受灰塵或其它雜物影響,很好克服了基于光學(xué)檢測原理的缺點(diǎn);
● 體積小巧。直徑 D : 14mm 高 H : 18mm 軸徑: 3mm ;
● 重量輕。除轉(zhuǎn)軸外,全鋁合金構(gòu)造,凈重 11.5 克。
二、應(yīng)用
● 機(jī)器人
● 機(jī)械手
● 運(yùn)動控制系統(tǒng)
● 伺服系統(tǒng)
● 自動化設(shè)備
● 辦公室設(shè)備
● 取代光學(xué)編碼器
● 智能車
0.png (34.3 KB, 下載次數(shù): 79)
下載附件
2018-9-25 16:15 上傳
512 線增量式編碼器使用教程
0.png (323.24 KB, 下載次數(shù): 63)
下載附件
2018-9-25 16:16 上傳
模塊說明:本編碼器體積超小,編碼器外徑 1.5cm,質(zhì)量超輕,方便靈活的安裝在 A,B,C,D,E 等車模上,是智能車和機(jī)器人的不二人選。編碼器為 512 線 3 相Mini 增量式旋轉(zhuǎn)編碼器,編碼器自身直接輸出旋轉(zhuǎn)方向和脈沖,程序簡單,可運(yùn)用于 8 位,16 位,32 位等系列單片機(jī)。3.3V到5V寬電壓供電,以滿足不同 IO 口電平的單片機(jī)。無需正交解碼或其他
繁瑣程序即可穩(wěn)定獲得編碼器齒選裝方向。編碼器配套各種車模的齒輪可使用任意組別車模。
模塊使用方法:按下圖方式連接編碼器至電源和單片機(jī)打開測試程序,連接單片機(jī)和電腦或OLED即可在虛擬示波器或OLED上觀看編碼器旋轉(zhuǎn)波沖值,也可利用示波器觀看編碼器輸出波形。
如果采用示波器觀看編碼器輸出脈沖,只需要給編碼器連接電源,將示波器探頭底線與電源地線連接,示波器探頭信號輸入端連接 2(LSB)即可觀看編碼器輸出脈沖的波形,連接示波器信號輸出端到 5(Dir)即可觀看旋轉(zhuǎn)方向輸出信號。若采用單片機(jī)查看編碼器脈沖和旋轉(zhuǎn)方向輸出,即可連接 1(GND)到單片機(jī)電源地線,2(LSB)到單片機(jī)脈沖撲捉端口具體單片機(jī)下面將會介紹,4(VCC)到單片機(jī)電源正極,5(Dir)到單片機(jī)普通可做輸入的 IO 口,下載相應(yīng)的測試程序,連接好 OLED 或者串口工具到電腦即可在上位機(jī)和OLED 上查看編碼器輸出脈沖和旋轉(zhuǎn)方向, 具體方法程序介紹中有介紹。
使用注意事項:編碼器供電電壓不得超過允許的電壓,不得對編碼器轉(zhuǎn)軸施加過大的力從而導(dǎo)致轉(zhuǎn)軸變形,編碼器信號線最好使用膠帶固定在編碼器外殼上避免長期使用過程中的拉扯導(dǎo)致信號線脫落。
(二)編碼器采集程序介紹
XS128 程序介紹: 給編碼器和單片機(jī)供電, 要求單片機(jī)和編碼器公地,連接編碼器2(LSB)到單片機(jī) T7 口,連接編碼器 5(Dir)到單片機(jī) A0 口,連接單片機(jī)和藍(lán)牙串口模塊,RX 到 S0,TX 到單片機(jī) S1,打開上位機(jī)
0.jpg (55.31 KB, 下載次數(shù): 63)
下載附件
2018-9-25 16:17 上傳
0.jpg (63.57 KB, 下載次數(shù): 80)
下載附件
2018-9-25 16:17 上傳
運(yùn)行上位機(jī)后,帶串口連接好后調(diào)節(jié)上位機(jī)刻度就會看到編碼器的脈沖信息。
K60 程序介紹:給編碼器和單片機(jī)供電(編碼器可選擇3.3V 或5V供電) ,要求單片機(jī)和編碼器公地, 連接編碼器 2 (LSB) 到單片機(jī) C5 口, 連接編碼器 5(Dir)到單片機(jī)C0 口,連接單片機(jī)和藍(lán)牙串口模塊,RX 到D6,TX 到單片機(jī) D7,上位機(jī)如上操作。運(yùn)行上位機(jī)后,帶串口連接好后調(diào)節(jié)上位機(jī)刻度就會看到編碼器的脈沖信息。
0.jpg (39.83 KB, 下載次數(shù): 68)
下載附件
2018-9-25 16:21 上傳
單片機(jī)源程序如下:
- /********************************************************
- 【平 臺】龍丘MC9S12XS128系統(tǒng)板V4.1
- 【編 寫】龍丘
- ------------------------------------------------
- 【dev.env.】Code Warrior 5.1
- 【Target 】MC9S12XS128
- 【pllclock】64.000MHz
- 接線方式
- 編碼器------->單片機(jī)
- GND -------> GND
- VCC -------> VCC
- LSB -------> T7
- DIR -------> A0
- 藍(lán)牙串口模塊------->單片機(jī)
- RX -------> S0
- TX -------> S1
- 版權(quán)龍邱智能科技所有,轉(zhuǎn)載需注明出處!
- ********************************************************/
- #include <hidef.h> /* common defines and macros */
- #include "derivative.h" /* derivative-specific definitions */
- void SetBus_64M(void);
- void PIT_Init(void);
- void TimInit (void);
- void UART_Init (void);
- void uart_putchar ( unsigned char c);
- unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT);
- void OutPut_Data(void);
- void Speed_Read(void);
- float OutData[4] = { 0 };
- uint num=0;
- int Motor_Polse=0;
- /****************************************************
- 函數(shù)名稱:void SetBus_64M(void)
- 函數(shù)簡介:設(shè)置總線頻率為64M,晶振頻率16M
- 入口參數(shù):
- 出口參數(shù):
- *****************************************************/
- void SetBus_64M(void)
- {
- CLKSEL_PLLSEL=0; //禁止使能鎖相環(huán)時鐘
- PLLCTL_PLLON=1; //鎖相環(huán)電路允許
- SYNR=0xc0|0x07; //VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
- //VCOFRQ[1:0]=1:1,代表VCO_clock在80~120MHz
- REFDV=0x80|0x01; //VCO_clock=2*osc_clock*(SYNR+1)/(REFDV+1)=128MHz
- //REF_clock=osc_clock/(REFDV+1)
- //REFFEQ[1:0]=1:0,代表參考時鐘在6~12MHz之間
- POSTDIV=0x00; //PLL_clock=VCO_clock
- _asm(nop);
- _asm(nop); //短暫延時,等待時鐘頻率穩(wěn)定
- while(!(CRGFLG_LOCK==1))
- {
- ;
- }
- CLKSEL_PLLSEL=1;
- }
- //==============================================================
- //函數(shù):void PIT_Init(void)
- //描述:初始化定時器為1ms中斷
- //參數(shù):無
- //返回:無
- //==============================================================
- void PIT_Init(void)
- {
- PITCFLMT=0x00; //禁止使能PIT模塊
- PITCE_PCE0=1; //使能定時器通道0
- PITMUX=0x00; //定時器通道0使用微定時基準(zhǔn)0
- PITMTLD0=8-1; //設(shè)置8位微定時裝載寄存器0初值
- PITLD0=8000-1; //定時周期=(&PITMTLD0+1)*(&PITLD0+1)
- PITINTE=0x01; //使能PIT定時器通道0中斷
- PITCFLMT=0x80; //使能PIT模塊
- }
- //==============================================================
- //函數(shù):void TimInit (void)
- //描述:脈沖累加器初始化
- //參數(shù):無
- //返回:無
- //==============================================================
- void TimInit (void)
- {
-
- PACTL=0X00;
- PACNT=0X0000;//設(shè)置脈沖累加器初值
- PACTL_PAEN=1;
- }
- //==============================================================
- //函數(shù):void UART_Init (void)
- //描述:串口初始化,配置串口1,波特率為9600
- //參數(shù):無
- //返回:無
- //==============================================================
- void UART_Init (void)
- {
-
- SCI0CR2=0x2c; //enable Receive Full Interrupt,RX enable,Tx enable
- SCI0BDH=0x01; //busclk 8MHz,19200bps,SCI0BDL=0x1a
- SCI0BDL=0xa0; //SCI0BDL=busclk/(16*SCI0BDL)
- //busclk 32MHz, 9600bps,SCI0BDL=0xD0
- //115200 bps SCI0BDL=0x11
- } // 64M 9600 SCI0BDH=0x01; SCI0BDL=0xA0;
- //==============================================================
- //函數(shù):unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
- //描述:虛擬示波器上位機(jī)接口程序
- //參數(shù):
- //返回?
- //==============================================================
- unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
- {
- unsigned short CRC_Temp;
- unsigned char i,j;
- CRC_Temp = 0xffff;
- for (i=0;i<CRC_CNT; i++){
- CRC_Temp ^= Buf[i];
- for (j=0;j<8;j++) {
- if (CRC_Temp & 0x01)
- CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001;
- else
- CRC_Temp = CRC_Temp >> 1;
- }
- }
- return(CRC_Temp);
- }
- //==============================================================
- //函數(shù):void OutPut_Data(void)
- //描述:向虛擬示波器發(fā)送數(shù)據(jù)
- //參數(shù):無
- //返回:無
- //==============================================================
- void OutPut_Data(void)
- {
- int temp[4] = {0};
- unsigned int temp1[4] = {0};
- unsigned char databuf[10] = {0};
- unsigned char i;
- unsigned short CRC16 = 0;
- for(i=0;i<4;i++)
- {
-
- temp[i] = (int)OutData[i];
- temp1[i] = (unsigned int)temp[i];
-
- }
-
- for(i=0;i<4;i++)
- {
- databuf[i*2] = (unsigned char)(temp1[i]%256);
- databuf[i*2+1] = (unsigned char)(temp1[i]/256);
- }
-
- CRC16 = CRC_CHECK(databuf,8);
- databuf[8] = CRC16%256;
- databuf[9] = CRC16/256;
-
- for(i=0;i<10;i++)
- uart_putchar(databuf[i]);
- }
- //==============================================================
- //函數(shù):void uart_putchar ( unsigned char c)
- //描述:發(fā)送一個字節(jié)
- //參數(shù):無
- //返回:無
- //==============================================================
- void uart_putchar ( unsigned char c)
- {
- while(!(SCI0SR1&0x80)) ; //keep waiting when not empty
- SCI0DRL=c;
- }
- //==============================================================
- //函數(shù):void main(void)
- //描述:工程得主函數(shù)
- //參數(shù):無
- //返回:無
- //==============================================================
- void main(void)
- {
-
-
- SetBus_64M(); //初始化總線始終64M
- PIT_Init(); //設(shè)置定時器中斷1ms
- TimInit (); //初始化脈沖累加器用于編碼器計數(shù)
- UART_Init(); //串口初始化,配置波特率9600
- DDRA_DDRA0=0; //配置A0口位輸入端口,用于測量編碼器選裝方向
- EnableInterrupts; //打開所有中斷
- while(1)
- {
- OutPut_Data(); //向上位機(jī)發(fā)送數(shù)據(jù)
- }
- EnableInterrupts;
-
- }
- //==============================================================
- //函數(shù)Speed_Read(void)
- //描述:讀取編碼器脈沖
- //參數(shù):無
- //返回:無
- //==============================================================
- void Speed_Read(void)
- {
- //uint Motor_Polse=0;
- Motor_Polse=PACNT; //讀取寄存器得脈沖值
- if(PORTA_PA0==1) //判斷編碼器方向
- {
- Motor_Polse=-Motor_Polse; //反向取反
- }
- OutData[0]=Motor_Polse;
- _asm(nop) ;
- _asm(nop) ;
- PACNT=0X0000; //清楚寄存器得脈沖值
- // Motor_Polse=0;
- }
- #pragma CODE_SEG __NEAR_SEG NON_BANKED
- //==============================================================
- //函數(shù)interrupt VectorNumber_Vpit0 void PIT_ISR (void)
- //描述:定時器中斷函數(shù)
- //參數(shù):無
- //返回:無
- //==============================================================
- interrupt VectorNumber_Vpit0 void PIT_ISR (void)
- {
-
- num++;
- if(num>10)
- {
- num=0;
- Speed_Read();
- }
-
- PITTF_PTF0=1; //清除中斷ADtransform();
-
-
- }
復(fù)制代碼
0.png (45.1 KB, 下載次數(shù): 81)
下載附件
2018-9-25 16:14 上傳
全部資料51hei下載地址:
http://www.zg4o1577.cn/bbs/dpj-109842-1.html
|
|