旋转编码器编程原理实例.docx

上传人:b****7 文档编号:16543289 上传时间:2023-07-14 格式:DOCX 页数:25 大小:28.07KB
下载 相关 举报
旋转编码器编程原理实例.docx_第1页
第1页 / 共25页
旋转编码器编程原理实例.docx_第2页
第2页 / 共25页
旋转编码器编程原理实例.docx_第3页
第3页 / 共25页
旋转编码器编程原理实例.docx_第4页
第4页 / 共25页
旋转编码器编程原理实例.docx_第5页
第5页 / 共25页
旋转编码器编程原理实例.docx_第6页
第6页 / 共25页
旋转编码器编程原理实例.docx_第7页
第7页 / 共25页
旋转编码器编程原理实例.docx_第8页
第8页 / 共25页
旋转编码器编程原理实例.docx_第9页
第9页 / 共25页
旋转编码器编程原理实例.docx_第10页
第10页 / 共25页
旋转编码器编程原理实例.docx_第11页
第11页 / 共25页
旋转编码器编程原理实例.docx_第12页
第12页 / 共25页
旋转编码器编程原理实例.docx_第13页
第13页 / 共25页
旋转编码器编程原理实例.docx_第14页
第14页 / 共25页
旋转编码器编程原理实例.docx_第15页
第15页 / 共25页
旋转编码器编程原理实例.docx_第16页
第16页 / 共25页
旋转编码器编程原理实例.docx_第17页
第17页 / 共25页
旋转编码器编程原理实例.docx_第18页
第18页 / 共25页
旋转编码器编程原理实例.docx_第19页
第19页 / 共25页
旋转编码器编程原理实例.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

旋转编码器编程原理实例.docx

《旋转编码器编程原理实例.docx》由会员分享,可在线阅读,更多相关《旋转编码器编程原理实例.docx(25页珍藏版)》请在冰点文库上搜索。

旋转编码器编程原理实例.docx

旋转编码器编程原理实例

如何使用旋转编码器、编码开关,旋转编码开关、编码器的原理

在电子产品设计中,经常会用到旋转编码开关,也就是所说的旋转编码器、数码电位器、RotaryEncoder。

它具有左转,右转功能,有的旋转编码开关还有按下功能。

为了使刚接触这种开关的朋友了解旋转开关的编程,我来介绍下它的原理和使用方法:

以我厂生产的EC11型编码开关为例:

如图1:

三只脚:

123脚一般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋转时,在1、3脚就有脉冲信号输出了。

两只脚:

为按压开关,按下时导通,回复时断开。

在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关左转和右转时两个输出脚的信号有个相位差,如图2。

由此可见,如果输出1为高电平时,输出2出现一个高电平,这时开关就是向顺时针旋转;当输出1为高电平,输出2出现一个低电平,这时就一定是逆时针方向旋转。

所以,在单片机编程时只需要判断当输出1为高电平时,输出2当时的状态就可以判断出是左旋转或是右旋转了。

 旋转编码开关(RotaryEncoderswitch)

我前面介绍的2篇文章:

“自己动手做收音机(LC72131)”和“电脑USB接口LCD液晶显示板(LCDSmartie)”都使用了这种旋转编码开关(RotaryEncoderswitch),一个使用3脚的,后面一个使用5脚的,大家可能对这种玩意都不是很了解,但涉及到有调整的地方,这个玩意使用真是很爽,我弄了2个,研究了一下,供大家参考~

5脚的ALPS:

  <--ALPSIncrementalEncoder(EC11series)

具有左转,右转,按下三个功能。

4、5脚是中间按下去的开关接线  123脚一般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋纽时,在1、3脚就有脉冲信号输出了。

这是标准资料:

在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关左转和右转时两个输出脚的信号有个相位差,见下图:

由此可见,如果输出1为高电平时,输出2出现一个高电平,这时开关就是向顺时针旋转;当输出1为高电平,输出2出现一个低电平,这时就一定是逆时针方向旋转.

所以,在单片机编程时只需要判断当输出1为高电平时,输出2当时的状态就可以判断出是左旋转或是右旋转了。

还有另外一种3脚的,除了不带按钮开关外,和上面是一样的使用。

----------------------我是分隔线----------------------

编码器总结(类似音响上的音量调节旋钮)

1.要求旋转速度快,调节就快,速度慢,,调节就慢

2.机械的编码器要24脉冲/每转,勉强可以分辨3到4种速度(每隔100ms计算一次速度),,机械的缺点是有毛刺,,寿命短,,通常在1万转左右,,不过bounce的号称20万转

3.希望编码器每转的脉冲愈多愈好,霍尔的编码器和光电的编码器脉冲都很多,,但是价格都很高,,唉

4.cui的编码器最好了,啥都有,按钮功能也有,,配套的旋钮也有,,完美,,可是国内没有卖的

----------------------我是分隔线----------------------

旋转编码器检测转动方向的电路

----------------------我是分隔线----------------------

旋转编码器的抗抖动计数电路

   摘要:

旋转编码器应用于角度定位或测量时,由于旋转轴的晃动可能引起编码器输出波形的,从而引发误计数现象。

介绍了一个抗抖动计数电路,滤除了旋转编码器因抖动而造成的误计数。

   关键词:

旋转编码器抗抖动电路数字电路

旋转编码器应用于角度定位或测量时,通常有A、B、Z三相输出。

旋转编码器的输出波形见图1。

A相和B相输出占空比为50%的方波。

编码器每转一周,A相和B相输出固定数目的脉冲(如100个脉冲)。

当编码器正向旋转时,A相比B相超前四分之一个周期;当编码器反向旋转时,B相比A相超前四分之一个周期。

A相和B相输出方波的相位差为90°。

编码器每转一周,Z相输出一个脉冲。

由于编码器每转一周,A相和B相输出固定数目的脉冲,则A相或B相每输出一个脉冲,表示编码器旋转了一个固定的角度。

当Z相输出一个脉冲时,表示编码器旋转了一周。

因此旋转编码器可以测量角位移及位移方向。

问题出在伺服系统停止工作时,若无锁定,则旋转轴受外力(如风力影响)可能自由晃动,因而引起编码器输出波形抖动,如图2所示,从而引起误计数。

在这种情况下,就不能对波形进行正确计数。

虽然可以通过软件设置标志状态,用记录历史状态的变化来滤除误计数,但是程序耗费颇大。

因此,本人设计了一个抗抖动计数电路。

它能够自动消除抖动造成的误计数。

1抗抖动计数电路原理图

图3是抗抖动计数电路原理图。

此电路滤除了旋转编码器输出波形的抖动现象。

该电路分为四个部分:

译码电路U4A;互锁电路U5A、U5B;正旋计数链J1、J3、J5和反旋计数链J2、J4、J6。

U4A为二四译码器,U5A、U5B为与门,J1~J6为D触发器。

正旋计数链负责对编码器正向旋转的计数,反旋计数链负责对编码器反向旋转的计数。

2抗抖动计数电路工作分析

图4为二四译码器输出的波形。

译码器产生d、a、b、c四种不同的状态。

在图3中当B=0、A=0时,译码器Q0输出为d状态,d状态为高电平。

当B=0、A=1时,译码器Q1输入为a状态,a状态为高电平。

当B=1、A=1时,译码器Q2输出为b状态,b状态为高电平。

B状态不影响计数和方向确定,在图3电路中没有使用。

当B=1、A=0时,译码器Q3输出为c状态,c状态为高电平。

当旋转编码器正向旋转时,译码器输出的状态顺序为d、a、b、c、d、a、b、c……。

如图4所示。

当B=0、A=0时,进入d状态,与门U5A的Pin2=a=0(Pin是管脚的意思),于是U5A的输出Pin3=0。

D触发器J1的R=d=1、S=0,因此J1被清0.与门U5B的Pin5=c=0,于是U5B的输出Pin4=0。

D触发器J2的R=d=1、S=0,因此J2也被清0。

这时J1、J2的Q端都为1,与门U5的Pin1=Pin6=1,U5A和U5B都处于等待开门状态。

当进入状态a时,Q1=a=1,U5A的Pin2=a=1。

由于c=0,所以J2的Q端仍为1,U5A的Pin1=1,U5A的输出Pin3=1.J1的R=d=0、S=1,因此J1被置1。

J1的Q=1,Q=0。

J1的Q=1,正旋标志送到了J3的D端。

时J1的Q端关闭了U5B。

在下一个d出现之前,所有的c脉冲都不会改变J2的状态。

这就说,J1、J3、J5组成的正旋计数链被打开,J2、J4、J6组成的反旋计数链被阻断。

U5A、U5B、J1、J2完成互锁的功能。

在进入状态a时,J3的R=a=1、S=0,J3被清0,J5的R=a=1、S=0,J5被清0.在进入状态c前,J3的R=a=0、S=0、D=1,J3处于待触发状态。

J3的CLK=c,当c脉冲上升沿过后,D=1被打入J3的Q端,正旋标志送到了J5的D端。

在进入状态d前,J5的R=a=0、S=0,J5处于待触发状态。

J5的CLK=d,当d脉冲上升沿过后,D=1被打入J5的Q端,正旋标志送到了正旋计数输出端。

正旋计数输出端由低电平变为高电平。

到此为止,完成了一次正旋计数。

当由状态d进入状态a时,J5的R=a=1、S=0,J5被清0,正旋计数输出端由高电平变为低电平。

由此可知,当旋转编码器正向旋转时,对应A相B相的每一个完整周期,正旋计数输出端都会产生相应的一个脉冲。

A的出现抢到了正旋计数权。

只有在d重新出现后,脉冲c才可能有机会抢到反旋计数权。

从而保证了一旦进入正旋计数状态,不全完成这一过程,就进入不了反旋计数状态。

运行时有可能从状态a返回状态d,结果这只不过释放正旋计数权。

因这时正旋标志还只在J3输入端上,a出现时已把J3清0。

D状态只会把0送给J5的Q端,因此不会产生误计数。

   当旋转编码器反向旋转时,译码器输出的状态顺序为d、c、b、a、d、c、b、a……。

这种情况的分析方法与正向旋转的分析方法相同,这里不再叙述。

这就好比接力赛。

在一个只允许上一个人的封闭的环形跑道上依次均匀设d、a、b、c、四个站,立四个裁判员。

d点为起止点、出入口,持棒运动员沿环形跑道一站站往下跑。

D裁判长的职责是:

运行员往a去(顺行),告示:

“有人,正向”;往c去(逆行),告示:

“有人,反相”。

其他裁判员的职责是给到达本站的运动员发签证(计数标志),往回跑,撤销签证。

d裁判长的计分规则是:

凭其他裁判的签证齐全加牌示,正,加一分,反,减一分,然后撤销签证。

签证不齐到d,则不计分,撤销签证。

运行员在跑道内来回跑或坐时,d裁判视而不见。

例如在图2中,当从状态d进入状态a时,正旋标志送到J3的D端。

此后的a、b、a、b、a、b都不起作用,只是把J3和J5反复清0.当从状态c进入状态d时,正旋标志到正旋计数输出端,同时J1和J2被清零。

在从状态d进入状态c后,反旋标志送到J4的D端。

同时,D=0被打入J3的Q端,这时J5的D端为零。

在从状态c回到状态d后,反旋计数权被释放。

但是,由于J5的D端为零,虽然这里再次出现状态d,该d脉冲不会发生计数,这就是抗抖动。

图5为抗抖动计数电路的输出波形。

此电路计数频率可达10MHz。

A相和B相输入前应予整形,必要时还要进行电隔离。

本人把此电路用于对在线云台角度的定位与测量。

天线云台有两个旋转角度,俯仰角从0~90度,方位角从0~354度。

旋转编码器用的是OMROM公司的E6A2。

此编码器每转一周,A相或B相输出一百个脉冲。

由此可得,抗抖动计数电路每输出一个脉冲,编码器旋转的角度是3.6度。

如果加上变速齿轮将会提高角度测量精度。

把抗抖动电路的正旋计数输出和反旋计数输出接到单片机的中断管理上,其下降沿时给单片机发中断。

单片机把处理的角度信息送到显示屏上显示出来,从而完成了对天线云台角度的定位与测量。

这套天线角度显示系统在实际使用中运行一直很稳定,没有出现过误计数现象。

----------------------我是分隔线----------------------

1mmSizeMetalShaftEncoderEC11Series(IncrementalEncoder)

Detail

Partnumber

EC11E09204A4

Structure

Vertical

Actuatorconfiguration

Flat

Actuatorlength

20mm

Torque

10±7mN·m

Numberofdetent

18

Numberofpulse

9

Operatingdirection

Vertical

Push-onswitch

Without

Operatinglife

15,000cycles

Minimumorderunit(pcs.)

1,200

Operatingtemperaturerange

-30℃to+85℃

Maximumoperatingcurrent(Resistiveload)

10mA

Electricalperformance

Ratings

10mA5VDC

Outputsignal

OutputofAandBsignals,proportionatetophasedifference

Insulationresistance

100MΩmin.250VDC

Voltageproof

300VACfor1minute

Mechanicalperformance

Push-pullstrength

100N

Resistancetosolderingheat

Manualsoldering

350℃max.3smax.

Durability

Operatinglife

15,000cycles

Environmentalperformance

Cold

-40±3℃for240h

Dryheat

85±3℃for240h

Dampheat

60±2℃,90to95%RHfor240h

Photo

Dimensions

MountingHoleDimensions

Viewedfrommountingside.

OutputWave

SlidingNoise

AtR=5kΩChattering:

3msmax.Bounce:

2msmax.

ProductVarieties

Single-shaftType

1)KnourledType

Unit:

mm

Style(Shaftdiameter:

φ6)

2)FlatType

Unit:

mm

Style(Shaftdiameter:

φ6)

3)SlottedType

Unit:

mm

Style(Shaftdiameter:

φ6)

Notesarecommontothisseries/models.

∙Thissitecatalogshowsonlyoutlinespecifications.Whenusingtheproducts,pleaseobtainformalspecificationsforsupply.

∙Pleaseplacepurchaseordersperminimumorderunit(integer).

∙Productsotherthanthoselistedintheabovechartarealsoavailable.Pleasecontactusfordetails.

∙Thisproductscanbeusedinvehicles.

Althoughtheseproductsaredesignedtoperformoverawideoperatingtemperaturerange,pleaseensurethatyoureceiveandreadtheformaldeliveryspecificationsbeforeuse.

InquiriesaboutProducts

Formoreinformationpleasecontact:

ProductsInformationCenter.

1-7,Yukigaya-otsukamachi,Ota-ku,Tokyo,145-8501,Japan

Phone:

+81(3)5499-8154

Series288Encoder16mmRotaryEncoder

Lowcost,robustdesignMiniature16mmstyle

Bushingmounted

PCterminals,withshaftparallel

orperpendiculartoPCboard

2bit,4bitGrayand4bit

Hexidecimalcodes

availableContinuousrotation

Availablewith16detents

Optionalmomentaryswitch

ElectricalandMechanicalSpecifications

PowerRating

100milliwatts

VoltageRating

Operatingmaximum50VAC

OperatingTemperature

Standard:

-25°Cto+100°C

ContactResistance

5,000ohmsstaticclosedcircuitmaximum

1megohmminimumopencircuit

DetentPoints

16detentsavailable

ContactCTSforspecialrequirements

MomentarySwitchRating

16VDC,20mA

SwitchLife

15,000actuations

SwitchContactResistance

Initialcycle-100milliohmsMAX

Afterlifecycle-200milliohmsMAX

SwitchOperationForce

350±150gforce(12.3oz±5.3oz)

SwitchBounce

5millisecondsMAX

SwitchTravelLength

0.5mm/.020"

PullandThrustonShaft

Withstandapushingforceandpullingforceof8kgstaticloadappliedtoaxialdirectionfor10±1secondwithoutphysicaldamageorelectricaldegradation

----------------------我是分隔线---------------------- 

按键旋转编码器(涡轮)程序

51:

voidpolling_volume_sw(void)

    {

    BYTEbSWValue=0;

      staticBYTEiLastData=0;

    staticBYTEiSWTempData=0;

#ifdefined(SUPPORT_USE_SW_SCANF_CODER)||defined(SUPPORT_USE_SW_SCANF_LEVEL)

  polling_check_vfdsw();

  return;

#elifdefined(VOLUME_SW_USE_IO)

      GPIO_M_SET(13,1);    //GAMEDI

  GPIO_M_SET(14,1);      //GAMEDO

    

    GPIO_E_SET(13,0);

  GPIO_E_SET(14,0);

    bSWValue=((GPIO_I_GET(14)<<1)|(GPIO_I_GET(13)));

    #endif      

    if(bSWValue!

=iSWTempData)

          iSWTempData=bSWValue;

    else      

        {

        switch(bSWValue)

            {

            case0:

                if(iLastData==2)

                    iLastData++;

                break;

            case1:

                if(iLastData==1)

                    iLastData++;

                elseif(iLastData==3)

                    {

                    call_ir_func(IRC_VOLUME_UP);

                    iLastData=0;

                    }

                break;

            case2:

                if(iLastData==1)

                    iLastData++;

                elseif(iLastData==3)

                    {

                    call_ir_func(IRC_VOLUME_DN);

                    iLastData=0;

                    }

                break;

            case3:

                iLastData=1;

                break;

            default:

                break;

            }

                

        }

#endif

  }

sunplus(dvd)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2