2015年08月31日 星期一 08:37
Arduino自身没有D/A转换器,前一段时间介绍的PCF8591有一路D/A转换器,但精度也只有8bit,今天,我再介绍一款高精度的D/A转换器MCP4725,此芯片由Microchip设计生产,精度高达12bit,使用I2C协议与MCU通信,并且自带EEPROM,掉电重启后,可以恢复到之前设定的数据,使用很方便。
我手头上有一块MCP4725开发板,原版应该是Sparkfun设计的,我这块肯定是国内仿造的。
MCP4725的I2C地址定义如下图所示,如果不是特殊定制的芯片,A2和A1应该都是0。我这块开发板,A0也是低电平,所以此芯片的I2C地址应该是0b1100000,也就是0x60。
万能的GitHub上肯定有驱动MCP4725的Library,我使用的是adafruit开发的Adafruit_MCP4725,很好用。
此次试验,我动用了尘封已久的示波器,使用D/A转换器来生成各种波形,用示波器来显示。第一个是三角波:
第二个是正弦波:
参考资料:
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en532229
https://www.sparkfun.com/products/12918
https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog-converter-hookup-guide
https://learn.adafruit.com/mcp4725-12-bit-dac-tutorial
https://github.com/adafruit/Adafruit_MCP4725
Zeuux © 2024
京ICP备05028076号