自造星球-创客空间  - 讨论区

标题:PCF8591 A/D D/A 转换器的使用方法

2015年08月26日 星期三 07:54

PCF8591是一款兼有A/D和D/A功能的数模转换器,其中A/D功能可以有四路输入,D/A功能有一路输出,均是8bit精度,使用I2C协议与MCU进行通信。

我测试的是一块Waveshare出品的开发板,开发板上面已经集成的必要的元器件,包括I2C总线的上拉电阻等。

电路原理图如下:

PCF8591模块与Arduino Nano的连接关系如下:

Arduino Nano的A4连接PCF8591的SDA。

Arduino Nano的A5连接PCF8591的SCL。

Arduino Nano的GND连接PCF8591的GND。

Arduino Nano的5V连接PCF8591的VCC。

PCF8591模块本身的跳线选择如下:

三个地址跳线开关均连接到电源负极,也就是说这三位地址均为0。

VREF跳线连接到VCC,也即是直接使用电源电压作为参考电压。

首先,我们使用Arduino的Wire Library来操作DAC,DAC是Arduino系列开发板都缺少的功能,也是很有意思的一个功能。代码如下:

运行对比结果如下:

然后我们使用GitHub上的一个比较完整的PCF8591的Library来全面的测试ADC和DAC,代码如下:

运行对比结果如下:

Arduino 系列开发板自带的ADC的精度是10bit,要比PCF8591好很多,所以在一般情况下,我们并不会用到PCF8591的ADC。其实这个模块是给树莓派配套开发的。PCF8591的DAC功能确实是很有意义的,值得研究。

参考资料:

http://tronixstuff.com/2013/06/17/tutorial-arduino-and-pcf8591-adc-dac-ic/

https://www.arduino.cc/en/Reference/Wire

https://github.com/overbog/PCF8591

PCF8591 数据手册

PCF8591 模块电路原理图

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号