一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 5920|回复: 14
收起左侧

M8 R2R 电源的5个按键 改用 单个 编码开关 搞定?

[复制链接]
发表于 2009-9-9 11:47 | 显示全部楼层 |阅读模式
大家有没有兴趣啊?
那5个按键太麻烦了,按来按去,还要想办法找位置装好。

我觉得还是用一个编码开关搞定好一点。一个就顶5个用。装什么盒子也方便,就打了个孔,像一般电位器一样固定就行。

因为不想再改M8电源的程序了,所以考虑用“大炮打蚊”的方法。

用一片单片机 +  一个编码开关 重新做一片板,然后接5根线到M8电源的5个按键上。模拟M8电源上自带的按键动作。从而达到用单一编码开关来代替5个按键的目的。

具体是:
往左转是 减。
往右转是 加。

短按一下是来回切换电压、电流调节,决定是电压加减,还是电流加减。

长按一下是储存数据至EEPROM。

这个按键可以随意扩展多个按键。就单片机本身资源来说,只受IO口的多少限制。编码开关占用一个中断及一个IO口。

接下来,我得找时间搭一下电路,验证一下。

程序我试了一下,可以正常动作。呵呵。
以下为选段。
我不会写C的,仅能写出想要的结果,没能力优化的。高手看了笑笑就好。呵!

PORTC上的0 ~ 3 是电流电压调节的4个按键输出,储存键另设。

if (key_int==1)      //电压、电流调节。
      {
        if (state == 0)  //电压,state由按键按下产生。短按。长按是储存数据。
          {
       key_int=0; //清除key_state状态
          if (keycounter == 0)
        {
      PORTC.0=0;   //电压++,低有效
      delay_ms(10);
      PORTC.0=1;
      }
    if (keycounter == 1)
        {
      PORTC.1=0;   //电压--,低有效
      delay_ms(10);
      PORTC.1=1;
      }
   
       }
   
      if (state == 1)  //电流,state由按键按下产生。短按,长按是储存数据。
          {
        key_int=0; //清除key_state状态
    if (keycounter == 0)
        {
      PORTC.2=0;   //电流++,低有效
      delay_ms(10);
      PORTC.2=1;
      }   
    if (keycounter == 1)
        {
      PORTC.3=0;   //电流--,低有效
      delay_ms(10);
      PORTC.3=1;
      }
       }
发表于 2009-9-9 13:31 | 显示全部楼层
编码开关啥样子,上个图瞧瞧。
 楼主| 发表于 2009-9-9 13:59 | 显示全部楼层
http://www.68jd.com/userpics/3593/2009-5-12_101237740.jpg

就是:旋转编码开关
也有叫单键飞梭
 楼主| 发表于 2009-9-9 14:18 | 显示全部楼层
自己晕倒,细看这个电源的按键并不是简单的开关对地短路的。
发表于 2009-9-9 16:03 | 显示全部楼层

很有兴趣啊!

原帖由 markliang 于 2009-9-9 11:47 发表 https://www.yleee.com.cn/images/common/back.gif
大家有没有兴趣啊?
那5个按键太麻烦了,按来按去,还要想办法找位置装好。
我觉得还是用一个编码开关搞定好一点。一个就顶5个用。装什么盒子也方便,就打了个孔,像一般电位器一样固定就行。 ...


        旋转编码器里,是必须占用MCU的一个“中断”资源的。
        在M8_R/2R电路源程序里,中断资源已经被R/2R“占用”了......
        我在两个月前、考虑的M16_R/2R实验电路里,曾经安排了“旋转编码器”方案——资源富裕,使用了两个中断(不是必须的)——另外,为了“兼容”,依然保留了“现在”的键盘方式.......(亦不是必须的)。

        电路尚未开始软件实验,相关的键盘硬件部分如下,仅供参考:
M16_KEY_sch.PNG
发表于 2009-9-9 22:53 | 显示全部楼层
m8电源带有I2C接口,外接的控制器可以使用它,不过我还在学习中
发表于 2009-9-10 11:31 | 显示全部楼层
这个创意不错!
发表于 2009-9-10 21:10 | 显示全部楼层
用4个脚的“编码”开关就可以实现了,这种开关有4个脚,柄可以360度旋转,左旋时,左边两个脚脉冲式接触,右旋时,右边的两个脚也是脉冲式接触,任何时候左右的脚都不相通,也就是独立的。但是实际上效果不是很好,原因是M8设定的按键延时太大,而这种开关的接触频率很高,所以,旋转开关时,M8往往没反应。可能在程序里修改一下就行了。
1.jpg
发表于 2009-9-10 22:23 | 显示全部楼层
搞成这样的方式不是更好调压老方便了

[ 本帖最后由 pdwdwdw 于 2009-9-10 22:24 编辑 ]
20081113_425f3b8fe1e0b8695faeseNrmHPTb4Xt.jpg
发表于 2009-11-27 23:57 | 显示全部楼层
楼上这个搞得漂亮

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-19 00:14 , Processed in 0.055265 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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