找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1002|回复: 26
打印 上一主题 下一主题
收起左侧

TM1650的按键输入能不能接EC11编码器?

  [复制链接]
跳转到指定楼层
楼主
能支撑到多快旋转速度?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2024-6-13 16:25 | 只看该作者

回复

使用道具 举报

板凳
ID:1109793 发表于 2024-6-13 18:47 | 只看该作者

他是有一个组合按键的状态的,但是并不是两个IO产生的AB相信号,这个要怎样操作才能行?
回复

使用道具 举报

地板
ID:1109793 发表于 2024-6-13 20:01 | 只看该作者

这是另外一个替换型号的PDF的截图,组合按键的编号和单个按键的不搭噶啊。
回复

使用道具 举报

5#
ID:69038 发表于 2024-6-13 20:26 | 只看该作者
xiaobendan001 发表于 2024-6-13 18:47
他是有一个组合按键的状态的,但是并不是两个IO产生的AB相信号,这个要怎样操作才能行?

或许可以的,你试试!
A/B相接不同的SEG线,C接COM线
然后不停地读键值。为0就是没转动,正转一个值,反转一个值。
可能EC11要选用1定位一脉冲的才行,2定位一脉冲的会丢码。

为什么说可以呢?因为我有试过用1定位一脉冲的代码,不装上EC11,而是2个按键,发现居然也能读出方向和键值。但装上2定位一脉冲的EC11后,能识别方向,却总是少一个键值,即转2格才出一个键值。。
回复

使用道具 举报

6#
ID:69038 发表于 2024-6-13 20:28 | 只看该作者
xiaobendan001 发表于 2024-6-13 18:47
他是有一个组合按键的状态的,但是并不是两个IO产生的AB相信号,这个要怎样操作才能行?

但是你为什么要这么做呢?反应速度不够啊!直接用EC11解码它不香吗?
回复

使用道具 举报

7#
ID:1109793 发表于 2024-6-14 07:24 | 只看该作者
zhuls 发表于 2024-6-13 20:28
但是你为什么要这么做呢?反应速度不够啊!直接用EC11解码它不香吗?

面板上只有一个1650,加编码器要另外加线,要是1650好使,就不用加线了。看起来是不怎会好使,速度可能也跟不上
回复

使用道具 举报

8#
ID:1109793 发表于 2024-6-14 07:31 | 只看该作者
zhuls 发表于 2024-6-13 20:26
或许可以的,你试试!
A/B相接不同的SEG线,C接COM线
然后不停地读键值。为0就是没转动,正转一个值, ...

1定位1脉冲是啥意思?我看某一个宝卖的好像也没有啥标注啊。这种编码器,不就是提供一路增量信号吗?用CPU的io直接使用是可以的,用1650,四个状态不太好弄,看表格,接到KI1,KI2和DIG1之间,是2E,44,4C,7C,这四个状态,这得好好研究研究怎么搞。然后还有其他几个轻触开关。
回复

使用道具 举报

9#
ID:1109793 发表于 2024-6-14 11:09 | 只看该作者

看来还是不行,这样需要两个开关分别引出,但是编码器的两个开关是共用一个脚的。不用那两个2K是否可以呢或者共用一个呢?
回复

使用道具 举报

10#
ID:88256 发表于 2024-6-14 11:53 | 只看该作者
2K电阻是为了防止短路的,可以移到按键右边,这样用量会多一点,一个按键一个。
回复

使用道具 举报

11#
ID:1109793 发表于 2024-6-14 12:49 | 只看该作者
hhdsdy 发表于 2024-6-14 11:53
2K电阻是为了防止短路的,可以移到按键右边,这样用量会多一点,一个按键一个。

这样可以吗?感谢感谢
回复

使用道具 举报

12#
ID:996773 发表于 2024-6-14 16:11 | 只看该作者
完全可以的,我正准备写1650的编码器代码,速度方面不用担心,1650远比手速快,挺实用的

四个线就能解决电源和显示和旋转编码器通吃。想想都心动不已
回复

使用道具 举报

13#
ID:1109793 发表于 2024-6-14 16:54 | 只看该作者
hi等你 发表于 2024-6-14 16:11
完全可以的,我正准备写1650的编码器代码,速度方面不用担心,1650远比手速快,挺实用的

四个线就能解决 ...

我准备打样个小板子测试一下,多多交流哦!
回复

使用道具 举报

14#
ID:430492 发表于 2024-6-14 18:31 | 只看该作者
感觉不行或者没啥价值,这样的组合特别浪费CPU资源,轮询模式,而且效果不一定好!
回复

使用道具 举报

15#
ID:466250 发表于 2024-6-15 03:30 | 只看该作者
因采样速度太慢,不可以接编码器
回复

使用道具 举报

16#
ID:1034262 发表于 2024-6-15 11:20 | 只看该作者
不可以,编码器有相位、速度要求
回复

使用道具 举报

17#
ID:1109793 发表于 2024-6-15 12:34 | 只看该作者
coody_sz 发表于 2024-6-15 11:20
不可以,编码器有相位、速度要求

有测试过嘛?我现在就是想不明白怎样利用读到的键值进行操作得到想要的结果。
回复

使用道具 举报

18#
ID:624769 发表于 2024-6-15 21:02 | 只看该作者
xiaobendan001 发表于 2024-6-15 12:34
有测试过嘛?我现在就是想不明白怎样利用读到的键值进行操作得到想要的结果。

沙发的贴图你没看明白么?
想法是好的,现实是残酷的,撇开如何判断我们不说,你要能保证 EC11的电平变化大于 40ms 才有可能正确识别,按照 高高,高低,低低,低高,这个变化为一个周期,你需要 160ms 以上完成旋转一格,且不说,1秒最多匀速转6格的难度大不大,使用起来是不是会觉得非常的不舒服。你就算动作超慢,2秒转一格,你如何保证 1格的4个变化,比如 从高高=〉 高低=〉低低 每次的变化,都能被正确的捕捉到?
回复

使用道具 举报

19#
ID:69038 发表于 2024-6-16 13:47 | 只看该作者
本帖最后由 zhuls 于 2024-6-16 16:24 编辑

很遗憾地告诉楼主和12#,试验失败了!根本没法用!
  1.          ec11_val=100;
  2.          while(1)
  3.          {
  4.          keynum= FD650_READ();

  5.     switch (keynum)
  6.         {
  7.          case 0x44 :
  8.             ec11_val++;
  9.                 break;
  10.          case 0x6c :
  11.                 ec11_val--;
  12.                 break;
  13.          default:
  14.             break;
  15.     }

  16.         led_buf[0]=display[ec11_val/1000];
  17.         led_buf[1]=display[ec11_val/100%10];
  18.         led_buf[2]=display[ec11_val/10%10];
  19.         led_buf[3]=display[ec11_val%10];
  20.         display_led_all();
复制代码
显示结果不是不跳,就是乱跳,哪怕你转动的再慢都不行!
究其原因是1650的按键检测速度跟不上EC11的脉冲变化。
所以,死心吧!
不要浪费时间,不要再偿试了~~


回复

使用道具 举报

20#
ID:1109793 发表于 2024-6-17 07:35 | 只看该作者
zhuls 发表于 2024-6-16 13:47
很遗憾地告诉楼主和12#,试验失败了!根本没法用!
显示结果不是不跳,就是乱跳,哪怕你转动的再慢都不行 ...

我觉得应该是使用四个状态,你这只用了两个,好像不太对。我的板子快到了,但是编码器没找到,本来我在10多年前有用过EC16的,可惜翻了半天,没找到。打算下次让他们顺便带一个回来。不知道什么时候能拿到
回复

使用道具 举报

21#
ID:824490 发表于 2024-6-17 11:31 | 只看该作者
xiaobendan001 发表于 2024-6-17 07:35
我觉得应该是使用四个状态,你这只用了两个,好像不太对。我的板子快到了,但是编码器没找到,本来我在10 ...

对的,EC11要有时序的,没有时序是不会被正确解码的~~~
回复

使用道具 举报

22#
ID:1109793 发表于 2024-6-22 07:29 | 只看该作者
使用手上的AIP650EO研究了一下,发现一个问题,不知道TM1650是不是也这样。
就是资料里面的NOKEY的键值返回0X2E只出现在上电后的状态。当某个按键按下,例如0X74,再抬起时,读到的键值是0X34,而并不是0X2E。测试了四个按键,抬起后的值都不一样,都是高四位变化,低四位不变。这是啥情况。在它的资料里面没有提及这个问题。
回复

使用道具 举报

23#
ID:1109793 发表于 2024-6-22 10:52 | 只看该作者

这两个芯片看起来还是有区别的,找到了1650的PDF里面显示不支持组合键,但是AIP650EO是支持的,但是必须接到KI1和KI2上面。
1650的资料里面同样没有显示按键释放后的键值。对于按下的键值,看了下DIG1上面的几个,应该是一样的。
回复

使用道具 举报

24#
ID:1109793 发表于 2024-6-22 15:11 | 只看该作者
哎,百度上搜到的1650的资料只能看第一页,但是上面明显表示是支持组合键的。
回复

使用道具 举报

25#
ID:1109793 发表于 2024-6-22 19:37 | 只看该作者
非常遗憾,需要很慢的拧动才能有正确的解码,没办法了。
此贴终结!
回复

使用道具 举报

26#
ID:123036 发表于 2024-6-24 09:47 | 只看该作者
xiaobendan001 发表于 2024-6-22 19:37
非常遗憾,需要很慢的拧动才能有正确的解码,没办法了。
此贴终结!

你需要的是脉冲开关例如 SRBM1L0800
回复

使用道具 举报

27#
ID:1109793 发表于 2024-6-24 20:05 | 只看该作者
cxxx180 发表于 2024-6-24 09:47
你需要的是脉冲开关例如 SRBM1L0800

你说的这个怕是一样的结果,虽然是不需要增量信号解码,但是一样要芯片对开关变化进行快速响应并且送给CPU,但是实际上就是这个芯片对开关的读取太慢了,拧的稍微快一点,就反应不过来了。而且还有一个问题,就是编码器如果停止在两路都断开的位置还好,如果有一路接通,那么其他的按键都不能正确反应了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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