我们都知道微控制器只能使用数字量,但在现实世界中有很多模拟信号需要处理。这就是为什么使用ADC(模数转换器Analog to Digital Converters)将现实世界的模拟量转换为数字量,以便微控制器可以处理这些信号。但是,如果我们需要将数字量转换成模拟信号,那么就需要DAC(数模转换器)。

使用数字转模拟转换器的简单示例是在工作室中录制一首歌曲,歌手使用麦克风唱歌。这些模拟声波被转换成数字形式,然后存储在数字格式文件中,当使用存储的数字文件播放歌曲时,这些数字值被转换成用于扬声器输出的模拟信号。所以在这个系统中使用DAC。

DAC可用于许多应用,如电机控制、LED灯的控制亮度、音频放大器、视频编码器、数据采集系统等。

在许多微控制器中,内部会有一个DAC可用于产生模拟输出。但是ATmega328 / ATmega168等Arduino处理器没有内置DAC。 Arduino具有ADC功能(模数转换器),但没有DAC(数模转换器)。它在内部ADC中有一个10位DAC,但该DAC不能单独使用。所以在这个Arduino DAC教程中,我们使用一个名为MCP4725 DAC模块的扩展电路板。

MCP4725 DAC模块(数模转换器)

MCP4725 IC是一款12位数模转换器模块,用于产生(0至5V)输出模拟电压,并通过I2C通信进行控制。它还带有板载非易失性存储器EEPROM。

该IC具有12位分辨率。这意味着我们使用(0到4096)作为输入来提供相对于参考电压的电压输出。最大参考电压为5V。

计算输出电压的公式

O/P Voltage = (Reference Voltage / Resolution) x Digital Value
复制代码
例如,如果我们使用5V作为参考电压,并假设数字值为2048。那么计算DAC输出。

O/P Voltage = (5/ 4096) x 2048 = 2.5V
复制代码

MCP4725的引脚说明

以下MCP4725的图像清楚地显示了各个引脚名称。

在这里插入图片描述

MCP4725 DAC中的I2C通信

该DAC IC可以使用I2C通信与任何微控制器连接。 I2C通信仅需要两条线SCL和SDA。默认情况下,MCP4725的I2C地址为0x60或0x61或0x62。我使用的这个电路板的地址是0x61。使用I2C总线,我们可以连接多个MCP4725 DAC IC。唯一的问题是我们需要更改IC的I2C地址。

在这里插入图片描述

在本篇文章中,我们将使用Arduino Uno开发板连接MCP4725 DAC IC,并使用电位计为Arduino引脚A0提供模拟输入值。然后ADC将用于将模拟值转换为数字形式。之后,这些数字值通过I2C总线发送到MCP4725,并使用DAC MCP4725 IC转换为模拟信号。 Arduino引脚A1用于从引脚OUT检查MCP4725的模拟输出,最后在1602 LCD显示屏中显示ADC和DAC值以及电压。

更多内容请参考以下链接:https://www.yiboard.com/thread-1106-1-1.html

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐