找回密码
 注册
关于网站域名变更的通知
查看: 1463|回复: 10
打印 上一主题 下一主题

关于旋转编码开关

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-12-29 10:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 bluskly 于 2012-12-29 10:44 编辑   W3 |8 q, w4 H9 T8 L
/ J. G0 T3 S$ A+ ]4 j0 r5 a
    之前我在该论坛已经发过帖子了,知道器件为旋转编码开关,但是刚刚拿到规格书,发现更加迷糊了。
1 k. H& z3 ?+ f    之前我的理解是,在A信号的高电平期间,只要检测到B信号来了上升沿就表明顺时针旋转。在A信号的高电平器件,只要检测到B信号来了下降沿就表明是逆时针旋转。0 t4 n/ j( a9 E, i1 `' M
    于是连接电路如下所示:
1 ^. S: Y. y. K' |6 T+ p
1 ?7 P: k# l; g/ D6 r& {8 n# D& Z! C- y6 N7 ?9 V8 y7 i  T4 l
        后来参考别人电路,采用AD采样的办法,连接电路如下图:
2 M6 e( I' v8 }6 I4 o/ ~9 _
9 ?: D) E! l5 a  t" J7 f5 w
  x  [4 Q) L: b, F3 I- NPS:该处所有器件都是需要的,而且A,B网络连接到上图中的A,B处。
+ t$ |1 _9 E) Z: q& z$ N% U# l. j2 }# N" q. ]$ F7 I3 f* K
     今天看了一下规格书,发现此处很迷糊。4 @9 j. Z% D1 R' l. S4 e- H
这个编码怎么出来的?怎么来判断旋转方向,怎么知道旋转速度?- z3 y) p8 P" ?$ [% Q
0 o" R  W: Z' O6 v' w- b+ E
附件为该器件的datasheet。
; C2 ^# i7 E# U+ I, ^+ }5 z EC12D1524403K.pdf (632.59 KB, 下载次数: 20)
8 n/ u- E1 L7 a* N. K! _+ o7 X$ R0 @8 X+ x' Z1 C: D

* Y) p# C& ~* [# b希望能够遇到高手指点一二。。  小弟不胜感激。。! y5 G' U$ \, Q. k2 f
% }, |* E' F: p+ @6 Q
QQ:460381988   方便交流的可以加Q

该用户从未签到

2#
发表于 2012-12-29 11:07 | 只看该作者
本帖最后由 jacklee_47pn 于 2012-12-29 11:31 编辑
) n) B5 }1 K4 w. O* i) t, g8 u2 J3 ~3 _/ F  K4 k$ y* b0 ^7 A
A 接到 CPU (或單晶片)的 INT,B 接到 CPU (或單晶片)的輸入端。A 當產生正沿的時候(就是有箭頭的地方)產生中斷,去看 B 的輸入是高電平或是低電平,就可以知道是正轉或是反轉,有幾個 A (或是 INT )就是被旋轉的幾步(或是格數)。* A4 h3 H' e/ v0 ]
' d8 j+ [* l: b
每個 A 的間隔時間就可以算出轉速。例如:每個 A 間隔 0.125 秒,旋转编码开关一圈會產生 8 個 A 正沿信號,所以轉速是 0.125*8 等於每秒走一圈。6 V+ @- D( C$ G' u8 L

该用户从未签到

3#
发表于 2012-12-29 11:38 | 只看该作者
本帖最后由 jacklee_47pn 于 2012-12-29 11:40 编辑 7 e$ e- I/ f7 }8 J  R3 m

; @! B, k! H0 j上面之前我遇過的是SW走一格,剛好會在A的地方產生一個週期脈波。(SW走一格產生一個正沿和負沿信號)
3 V. x% p, J3 j- I
6 ^$ F/ [+ E$ J: g如果你的SW不是這樣,單只有半個週期(一個正沿或負沿信號),那就辛苦了,只要 A 狀態改變,就要去看 B的狀態。
  • TA的每日心情
    开心
    2024-5-2 15:45
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2012-12-29 11:47 | 只看该作者
    了解一下!!!

    该用户从未签到

    5#
     楼主| 发表于 2012-12-29 15:13 | 只看该作者
    jacklee_47pn 发表于 2012-12-29 11:07
    " \% ]0 p: n8 [; [  K3 w& H; m( RA 接到 CPU (或單晶片)的 INT,B 接到 CPU (或單晶片)的輸入端。A 當產生正沿的時候(就是有箭頭的地方)產生 ...

    + Z# X, w" S% d0 h3 C       关于怎么判断顺时针还是逆时针旋转 我已经基本了解。就是在A信号的上升沿去读取B信号的电平值。若B为低电平,表明是顺时针旋转,若B为高电平,表明是逆时针旋转。$ W7 f* T! g/ ]3 b7 W8 A
        刚也数了一下,旋转360°,会走30格,也就是需要15个周期,也就是会产生15个上升沿。9 x1 m$ q& L( ?! F% {; \. B' i
        但是我转动的时候 不会是匀速转动呀,那么此时每一个周期 或者没一个电平持续的时间就会不一样。那我怎么知道我该变化多少?难道是我顺时针走一格 我就增加某个值,逆时针走一格,我就减去某个值?

    该用户从未签到

    6#
    发表于 2012-12-29 19:58 | 只看该作者
    难道是我顺时针走一格 我就增加某个值,逆时针走一格,我就减去某个值?  ===> 是的就是這樣。$ @1 _/ b3 k8 |, K
    : h# t" U1 ?6 h$ _* w5 O6 F
    但是我转动的时候 不会是匀速转动呀,那么此时每一个周期 或者没一个电平持续的时间就会不一样。那我怎么知道我该变化多少?   ===> 所以要用 Interrupt +  Timer 功能,用 Interrupt 去啟動Timer去計算每次間隔的時間,1/(時間*15)就是當下瞬間轉速(每秒多少圈) 。多取幾次(或是一段時間)然後加起來平均,就是單位時間內的平均轉速。如果這 Timer 超過某個設定時間值,就可以忽略不計算轉速。

    该用户从未签到

    7#
     楼主| 发表于 2012-12-31 22:50 | 只看该作者
    jacklee_47pn 发表于 2012-12-29 11:38 9 D2 X1 x1 e0 _1 N: n) U
    上面之前我遇過的是SW走一格,剛好會在A的地方產生一個週期脈波。(SW走一格產生一個正沿和負沿信號)
    7 V; P4 h/ h8 p  z  z: d) h6 }# D4 S/ R9 r4 N6 r! k4 J
    如果 ...

    9 y/ w/ u5 t5 Q% |6 K" G% ?我找了一个单片机 内部带有正交解码的接口的。

    该用户从未签到

    8#
    发表于 2013-1-1 21:56 | 只看该作者
    本帖最后由 luo7678094 于 2013-1-1 21:57 编辑 ) A0 n( h; j! h% p+ A4 m
    4 ^. ]  G& ^( C% b
    你要是有需要的话我给你参考程序,我自己前段时间还特意写了个程序,AVR单片机的;作为硬件工程师,我写完这个程序之后格外更清晰的认识这个东西了;我用了4种方法,最后还是发现我目前这种方式最有效!!无论转动多快,无论怎么转,都能100%识别,我用的是ALPS的和你这个一样的结构,只不过我的带了轻触按键

    该用户从未签到

    9#
     楼主| 发表于 2013-1-2 00:42 | 只看该作者
    luo7678094 发表于 2013-1-1 21:56 6 D" `: \- f# u% t) a% \# J' W
    你要是有需要的话我给你参考程序,我自己前段时间还特意写了个程序,AVR单片机的;作为硬件工程师,我写完这 ...

    / h1 |- K& F- Z# Q& ?好的 邮箱:huangjinyi@leader-intl.com.cn  QQ:460381988

    该用户从未签到

    10#
    发表于 2013-1-3 13:49 | 只看该作者
    bluskly 发表于 2013-1-2 00:42
    2 G7 ~2 b8 d: Z8 [5 {" r- A& [# I好的 邮箱:  QQ:460381988

    0 S( Y' M0 y3 I/ T# Z$ u$ B刚刚发往你QQ邮件

    该用户从未签到

    11#
     楼主| 发表于 2013-1-4 10:32 | 只看该作者
    luo7678094 发表于 2013-1-3 13:49
    8 @9 v) j$ I1 \7 G8 T刚刚发往你QQ邮件

    , ~) y: M4 R2 y7 X邮件已经查收,就是看不懂。看你里面貌似还有什么数字电位器,屏幕什么的。有没有简单点的,我没搞过AVR,更加迷糊了点。

    点评

    哎!哥们你的C语言要提高啊。  发表于 2013-1-5 16:45
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-15 06:29 , Processed in 0.140625 second(s), 28 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表