¿Cómo puedo conectar un convertidor analógico a digital (ADC)?

22

Estoy buscando opciones para ADC en Rasbperry Pi. Me pregunto qué es posible hasta ahora. Por supuesto que fácil y barato es bueno.

John La Rooy
fuente
¿Para qué lo necesitas?
Jivings
@Jivings, estoy pensando en un par de proyectos que pueden funcionar con tasas de muestreo relativamente bajas.
John La Rooy

Respuestas:

15

Adafruit tiene un buen tutorial sobre el uso del MCP3008 ($ 3.75) - ADC de 8 canales y 10 bits con interfaz SPI para controlar el volumen de un archivo mp3, pero debería ser un buen punto de partida para cualquier proyecto analógico a digital.

Steve Robillard
fuente
1
Tanto Arduino como PICAXE son las soluciones incorrectas aquí.
Alex Chamberlain
No estoy de acuerdo con que Arduino sea la solución incorrecta aquí. El Arduino usa USB mientras que el MCP3008 usa SPI. El Arduino está listo para montar y listo para usar, mientras que el MCP3008 necesitará algunos accesorios y trabajo para comenzar. El MCP3008 es más barato, pero para cuando agrega todo lo que necesita (ruptura de GPIO, montaje de la placa de pruebas ...) la brecha de costos no es tan grande como parece. En general, si desea experimentar y dar una vuelta rápida, Arduino es la opción superior, pero si está buscando una instalación permanente, estaría de acuerdo en que el MCP3008 funciona mejor.
Dan B
8

ADS1115

Los ADS1113, ADS1114 y ADS1115 son convertidores analógicos a digitales de precisión (ADC) con 16 bits de resolución ofrecidos en un paquete QFN-10 sin cables ultra pequeño o un paquete MSOP-10. Los ADS1113 / 4/5 están diseñados teniendo en cuenta la precisión, la potencia y la facilidad de implementación. El ADS1113 / 4/5 presenta una referencia y un oscilador integrados. Los datos se transfieren a través de una interfaz serial compatible con I²C; Se pueden seleccionar cuatro direcciones esclavas I²C. El ADS1113 / 4/5 opera desde una sola fuente de alimentación que varía de 2.0V a 5.5V.

Primero debe asegurarse de que los módulos I²C estén cargados . A continuación, conecte el ADS1115 como se muestra a continuación. Hay 4 direcciones diferentes posibles dependiendo de qué pin ADDR esté conectado. Esto significa que puede conectar un total de 16 canales a un solo bus I²C.

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

ingrese la descripción de la imagen aquí

Puedes ver el resultado de la última conversión como esta

# i2cget -y 0 0x49 0 w
0x0000

Aquí se devuelve el valor predeterminado de 0x0000 ya que todavía no se han realizado conversiones. Ahora echemos un vistazo al registro de configuración

# i2cget -y 0 0x49 1 w
0x8385

El LSB es el primero, por lo que es equivalente a 0b1000010110000011

Me gustaría hacer una conversión de un solo extremo en AIN0, así que necesito escribir bits [14:12] como 0b100. es decir0b1100010110000011

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

El LSB es el primero, por lo que es igual a 2979 decimal

John La Rooy
fuente
1
¿No son un poco más difíciles de trabajar con estos tipos de paquetes debido al tamaño / espaciado del pin? Especialmente para aquellos como yo con artritis (lo que limita mi destreza manual.
Steve Robillard
@SteveRobillard, sí, son más difíciles de trabajar, pero definitivamente más fáciles de lo que parecen ser. Para MSOP, ayuda tener un aumento, flujo, mecha de soldadura y una buena estación de soldadura. Puede hacer bastantes intentos para pegar una esquina de la MSOP con un poco de soldadura hasta que esté satisfecho con el posicionamiento. El tamaño pequeño ayuda a reducir el ruido en el circuito, por lo que vale la pena intentarlo, puede sorprenderse.
John La Rooy
1

Bueno, siempre que su uso deseado no exija tasas de bits o resolución súper altas, probablemente podría usar un Arduino. ¡Los Arduinos son agradables porque tienen una gran comunidad de soporte, han existido por un tiempo y la comunicación a través de USB no GPIO!

Aquí hay un enlace a la publicación del blog de Simon Monk con instrucciones sobre cómo se comunica con el Arduino desde una Raspberry Pi con python.

Además, en caso de que nunca antes haya oído hablar de un Arduino (quizás haya estado viviendo debajo de una roca) aquí hay un enlace a su página de Introducción y un ejemplo de nivel de principiante de entradas analógicas.

Dan B
fuente
0

Similar al uso de un Arduino, pero ¿qué tal un dispositivo PICAXE, conectado al RPi UART? Esto sería más pequeño y mucho más barato. Para mí, Arduino parece exagerado dependiendo de tus necesidades reales.

Chico
fuente
0

En un mes o dos, (debido al envío a África) obtendré una placa I2C PCF8591 que tiene el cableado WpiPi y la placa usa 3.3v (normalmente) obtuve la versión WaveShare en Amazon Amazon link De lo que yo ' He leído, el PCF8591 es bastante bueno, pero hasta que tenga la placa frente a mí, no puedo decir si es bueno o no.

linuxgnuru
fuente