我怎样才能实现(或者可能有一个已经这样做的IC)一个输入为I2C而输出为模拟电压(0V - 5V)的板?
最终,我想将其中的几个连接到 arduino 的 IO 引脚,从而有效地创建数字到模拟输出。
我怎样才能实现(或者可能有一个已经这样做的IC)一个输入为I2C而输出为模拟电压(0V - 5V)的板?
最终,我想将其中的几个连接到 arduino 的 IO 引脚,从而有效地创建数字到模拟输出。
考虑一下 Microchip TC1321,它是一个 I2C 数模转换器 (DAC),具有 10 位分辨率(4.88mV/步),可在SOIC8中使用(您需要一个易于焊接的适配器板 [例如sparkfun或futurlec),并从 5伏特。如果您只接受 8 位(19.5mV/步)就可以考虑TC1320。
这两款芯片均可从Mouser或Microchip Direct购买,价格约为 2 美元。
如果您可以使用 SPI 而不是 I2C,您的选择会更容易,MCP4821 和 MCP4822 是采用漂亮 PDIP8 封装的单双 SPI DAC 芯片。同样,它们从通常的地方(mouser、digikey、microchip direct、farnell)花费大约 2 美元。
根据您驾驶的内容,如果您有 Arduino,您已经有三到六个模拟输出,因为您可以使用 AnalogWrite 功能来设置 PWM 引脚的占空比。频率约为 490 Hz,对于 LED 来说绰绰有余(同样,这取决于您的应用)。您可以将值设置为 0 到 255,从而为您提供 (5v / 256 =) .020V 的分辨率。
您需要确定 490 Hz 是否足够,但 PWM 用于模拟许多应用的模拟电压,它可能适合您,无需额外的部件或编程。
您也可以考虑使用滤波器(电容-电阻网络)来平滑方波。它会在您可以控制的应用程序中为您提供更多的回旋余地,而且无源器件很便宜,但根据您的应用程序,它甚至可能不是必需的。
您需要某种类型的基于 I2C 的数模转换器 (DAC),快速搜索发现以下内容:
http://www.sparkfun.com/commerce/product_info.php?products_id=8736
正如您所知,AVR(Arduino 中使用的芯片)已经可以通过使用 PWM + 电容器来平滑波形(在某些情况下甚至不需要电容器)来产生“模拟”电压。它的分辨率不如专用 DAC 芯片那么高,但足以满足许多需求。