将I2C实施为模拟


8

如何实现(或者可能已经有一个IC做到这一点)一块输入为I2C而输出为模拟电压(0V-5V)的电路板?

最终,我想将其中的几个连接到arduino的IO引脚,从而有效地创建数字到模拟输出。

Answers:


11

考虑一下Microchip TC1321,它是一个I2C数模转换器(DAC),分辨率为10位(4.88mV /步),可在SOIC8中使用。(您需要一块易于焊接的适配器板(例如,sparkfunfuturlec),并且工作电压为5伏特 如果只有8位(19.5mV /步)可以,请考虑TC1320

这两款芯片均可从MouserMicrochip Direct购买,价格约为2美元。

如果您可以使用SPI而不是I2C,那么您的选择就更容易了,MCP4821和MCP4822是采用优质PDIP8封装的单和双SPI DAC芯片。同样,它们在普通地方(鼠标,数码相机,直接芯片,法奈尔)的售价约为2美元。


为什么不在脚注样式的实际文本下面放置实际的url?
Amos,2009年

@Amos,因为格式化程序可以很好地识别多种格式的URL,并且无论其格式如何,“新用户”过滤器都会在count(links)> 1上命中。出于相同的原因,我在第一天就失去了广泛的答案(我发布了该消息,但未看到错误消息)。
Craig Trader

是的,我没有意识到。
Amos

它是数模转换器,而不是模数转换器。
endlith

现在,您已经可以享有一定的声誉,就应该能够编辑帖子并添加链接。
endlith

7

根据您要驱动的东西,如果您有Arduino,则已经有3至6个模拟输出,因为您可以使用AnalogWrite函数来设置PWM引脚的占空比。频率约为490 Hz,足以满足LED的需求(同样,这取决于您的应用)。您可以在0到255之间设置值,分辨率为(5v / 256 =).020V。

您需要确定490 Hz是否足够,但是PWM用于许多应用中的模拟电压仿真,它可能适合您,而无需额外的零件或编程。

您也可以考虑使用滤波器(电容器-电阻器网络)来平滑方波。它会为您提供更多可以控制的应用程序的余地,并且被动组件很便宜,但是根据您的应用程序,它甚至可能不是必需的。

http://www.arduino.cc/en/Reference/AnalogWrite



3

众所周知,AVR(Arduino中使用的芯片)已经可以通过使用PWM +电容器来平滑波形来产生“模拟”电压(在某些情况下甚至不需要电容器)。它的分辨率不如专用DAC芯片高,但足以满足许多需求。


1

是有关数字电位计的Wikipedia条目。这些数字电位器可以在arduino上用作模拟输出。它可以作为常规电位计,通过串行(某种形式)命令在0-5V的所有电压之间进行扫描。如果你没有拥有I2C那么你可以使用这个从Parralax或数字电位从Jameco公司的芯片。我见过的唯一的I2C芯片都是表面安装的,而不是通孔的,这使得它们很难与and一起使用。是所有Jameco I2C数字电位器的链接。我希望这会有所帮助,并祝您好运!


2
数字电位器通常用于以几个不连续的步骤(256)设置外部电路的增益或衰减。要从中获得直流电压,您需要将其连接到电压源,但这实际上不是这些用途的应用。另一方面,DAC直接输出电压,并且通常具有更多的阶跃和更高的精度。此海报正在寻找DAC。
endlith
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.