数字编码电位器c语言,数字电位器——x9c104

一些传统的电子设备是通过改变电位器的电阻来实现调整,比如灯的亮度、电机的转速等。如果想对这种设备进行智能改造但不大幅度改变设备内部的电器结构,我们需要电位器的电阻可通过单片机或微机进行控制,数字电位器就是这类设备。

“我也是在项目中有这方面需求,又不想深入研究设备的内部构造(设备比较贵),发现竟然有数字电位器这样的好用的东西”

X9C104简介

项目需求最大电阻为100千欧,故这里使用的是常用的x9c104数字电位器芯片,该型号的芯片滑动阻值为40欧~100千欧,100阶,每阶1010欧。其他阻值型号如下表。

TIM%E6%88%AA%E5%9B%BE20180305172720.png

芯片管脚介绍

芯片有8个管脚,有效管脚7个,分布位置如下图,功能如下表。

TIM%E6%88%AA%E5%9B%BE20180305193156-300x199.png

TIM%E6%88%AA%E5%9B%BE20180305172408-300x192.png

芯片使用

本芯片是通过INC、U/D、CS三个输入端口的高/低电平和上升/下降沿组合实现滑动电位器Vw端的滑动。

TIM%E6%88%AA%E5%9B%BE20180305193923-300x146.png

程序(Arduino版本)

/*

* 函数 :set_X9c104

* num :滑动阶数,1010欧姆

* ud :方向,1表示上滑,0表示下滑

* save :是否保存,1表示保存,0表示不保存

*/

void set_X9c104(int num,int ud,int save)

{

digitalWrite(CS_pin,LOW); //片选使能

delayMicroseconds(10);

if(ud==1) //滑动方向选择

{

digitalWrite(UD_pin,HIGH);

}

else

{

digitalWrite(UD_pin,LOW);

}

delayMicroseconds(100);

for(;num>0;num--) //开始向设定方向移动num阶

{

digitalWrite(INC_pin,HIGH);

delayMicroseconds(100);

digitalWrite(INC_pin,LOW);

delayMicroseconds(100);

}

delayMicroseconds(100);

if(save==1) //是否保存选择

{

digitalWrite(INC_pin,HIGH);

delayMicroseconds(100);

}

digitalWrite(CS_pin,HIGH);

delay(20);

}

此外,值得一提的是,这个芯片坏片比较多,买了3片,坏了2片,也是悲剧。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值