A-A+

数字电位器——x9c104

2018年03月06日 ROV/AUV, STM32 暂无评论 阅读 96 views 次

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

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

X9C104简介

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

芯片管脚介绍

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

芯片使用

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

程序(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片,也是悲剧。

标签:

给我留言