2015年08月19日 星期三 07:38
数字电位器(digital potentiometer,也俗称 digipot),顾名思义,不是用手拧的,而是用某种数字通信机制来控制电位器的阻值。
MCP41050是Microchip公司(对,就是那个生产PIC单片机的)生产的一种数字电位器芯片,具有256级可调范围,使用SPI协议进行通信,MCP41050的最大阻值是50K,同系列的还有10K和100K的。
Arduino对SPI协议进行了良好的封装,API简单易用,此次实践就使用Arduino来控制MCP41050了。
MCP41050的通信协议很简单,总共就两个字节,第一个字节是command,第二个字节是value。command的每个bit定义如下:
Arduino的程序示例:
MCP41050与Arduino的引脚连接关系如下:
Arduino MCP41050
D10 CS
D11 SI
D13 SCK
GND VSS
5V VDD
MCP41050剩下的PA0、PB0和PW0就和普通电位器的三个引脚一样了,我接在数字万用表的电阻档,用于测试。
测试结果还是挺满意的,阻值有一定的误差,实际使用时需要校准。
我本想将其用于LM2596的输出电压调整,这样我就有一个可以使用MCU控制的数字电源了,但很遗憾,MCP41050要求电位器的工作电压范围不能超过供电范围(0-5V),超出此范围就无法正常工作,看来我还得想其他办法了。
参考资料:
Zeuux © 2024
京ICP备05028076号