如何连接模数转换器(ADC)?


Answers:


15

Adafruit有一个很好的教程,介绍如何使用MCP3008($ 3.75)-具有SPI接口的8通道10位ADC控制mp3文件的音量,但是它应该为您提供任何模拟到数字项目的良好起点。


1
Arduino和PICAXE都是错误的解决方案。
亚历克斯·张伯伦

我不同意Arduino是这里的错误解决方案。Arduino使用USB,而MCP3008使用SPI。Arduino已准备就绪,可以立即使用,而MCP3008需要一些附件并可以开始使用。MCP3008较便宜,但是到您添加所需的所有东西时(GPIO断开,安装面包板..),成本差距就没有看起来的那么大。总而言之,如果您想进行实验并快速转向Arduino,则是更好的选择,但是如果您要永久安装,我同意MCP3008的最佳性能。
Dan B

8

ADS1115

ADS1113,ADS1114和ADS1115是精密模数转换器(ADC),具有16位分辨率,采用超小型无引线QFN-10封装或MSOP-10封装。ADS1113 / 4/5在设计时就考虑了精度,功耗和易于实现的问题。ADS1113 / 4/5具有板载基准和振荡器。数据通过兼容I²C的串行接口进行传输;可以选择四个I²C从地址。ADS1113 / 4/5使用2.0V至5.5V的单电源供电。

首先,您需要确保已加载I²C模块。接下来,如下所示连接ADS1115。根据连接到哪个引脚的ADDR,可能有4个不同的地址。这意味着您可以将总共16个通道连接到一条I²C总线。

GND = 0x48,VDD = 0x49,SDA = 0x4A,SCL = 0X4B

在此处输入图片说明

您可以看到像这样的上一次转换的结果

# i2cget -y 0 0x49 0 w
0x0000

由于尚未执行任何转换,因此在此返回默认值0x0000。现在让我们看一下配置寄存器

# i2cget -y 0 0x49 1 w
0x8385

LSB是第一个,所以这等效于 0b1000010110000011

我想对AIN0进行单端转换,因此我需要将bits [14:12]编写为0b100。即0b1100010110000011

# i2cset -y 0 0x49 1 0xC385 w
# i2cget -y 0 0x49 0 w
0xa30b

LSB是第一个,因此它等于2979(十进制)


1
这些封装类型难道不是因为引脚尺寸/间距而更难使用吗?特别是对那些和我一样患有关节炎(这限制了我的手巧。
史蒂夫罗比拉德

@SteveRobillard,是的,他们很难与工作,而且比他们似乎是肯定更容易。对于MSOP,它具有放大倍率,助焊剂,焊芯和良好的焊台。您可以用一些焊料在MSOP的一个角上钉很多,直到对定位满意为止。小尺寸确实有助于减少电路中的噪声,因此值得一试,您可能会感到惊讶。
约翰·拉鲁伊

1

只要您所需的用途不要求超高比特率或分辨率,就可以使用Arduino。Arduino之所以不错,是因为它们拥有庞大的支持社区,而且已经存在了一段时间,并且可以通过USB而不是GPIO进行通讯

这是指向Simon Monk博客文章链接,其中包含有关他如何使用python从Raspberry Pi与Arduino通信的说明。

同样,以防万一您以前从未听说过Arduino(也许您一直生活在一块岩石下),这是指向其“ 简介”页面的链接以及模拟输入的初学者示例


0

与使用Arduino类似,但是将PICAXE设备连接到RPi UART怎么样?这将更小且更便宜。在我看来,Arduino取决于您的实际需求。


0

在一两个月,(由于运到非洲),我会得到具有wiringpi支持I2C PCF8591板WiringPi网站和板采用3.3V(典型值)我得到了亚马逊bottom我的版本亚马逊的链接从我”已经读过,PCF8591非常不错,但是直到我把电路板摆在我面前,我不能说它是否好


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.