Como conectar um conversor analógico a digital (ADC)?

22

Estou procurando opções para o ADC no Rasbperry Pi. Eu estou querendo saber o que é possível até agora. Claro que fácil e barato é bom.

John La Rooy
fonte
Para que você precisa disto?
Jivings
@Jivings, estou pensando em alguns projetos que podem se contentar com taxas de amostragem relativamente baixas.
John La Rooy

Respostas:

15

A Adafruit possui um bom tutorial sobre o uso do MCP3008 (US $ 3,75) - ADC de 10 bits e 8 canais com interface SPI para controlar o volume de um arquivo mp3, mas deve ser um bom ponto de partida para qualquer projeto analógico para digital.

Steve Robillard
fonte
1
Arduino e PICAXE são as soluções erradas aqui.
Alex Chamberlain
Eu discordo que o Arduino é a solução errada aqui. O Arduino usa USB enquanto o MCP3008 usa SPI. O Arduino está pronto para ser montado e pronto para uso, enquanto o MCP3008 precisará de alguns acessórios e trabalho para continuar. O MCP3008 é mais barato, mas quando você adiciona tudo o que precisa (quebra do GPIO, montagem da placa de ensaio ...) a diferença de custo não é tão grande quanto parece. Em suma, se você quiser experimentar e dar uma volta rápida no Arduino, é a opção superior, mas se você estiver procurando por uma instalação permanente, eu concordaria que o MCP3008 funciona melhor.
Dan B
8

ADS1115

O ADS1113, ADS1114 e ADS1115 são conversores de precisão analógico para digital (ADCs) com 16 bits de resolução oferecidos em um pacote QFN-10 ultra pequeno e sem chumbo ou em um pacote MSOP-10. O ADS1113 / 4/5 foi projetado com precisão, potência e facilidade de implementação em mente. O ADS1113 / 4/5 possui uma referência e oscilador a bordo. Os dados são transferidos através de uma interface serial compatível com I²C; quatro endereços escravos I²C podem ser selecionados. O ADS1113 / 4/5 opera a partir de uma única fonte de alimentação que varia de 2,0V a 5,5V.

Primeiro, você precisa garantir que os módulos I²C estejam carregados . Em seguida, conecte o ADS1115 como mostrado abaixo. Existem 4 endereços diferentes possíveis, dependendo de qual pino ADDR está conectado. Isso significa que você pode conectar um total de 16 canais a um único barramento I²C.

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

insira a descrição da imagem aqui

Você pode ver o resultado da última conversão como esta

# i2cget -y 0 0x49 0 w
0x0000

O padrão 0x0000 é retornado aqui, pois nenhuma conversão foi realizada ainda. Agora vamos dar uma olhada no registro de configuração

# i2cget -y 0 0x49 1 w
0x8385

O LSB é o primeiro, então isso é equivalente a 0b1000010110000011

Eu gostaria de fazer uma conversão de extremidade única em AIN0, então preciso escrever os bits [14:12] como 0b100. ie0b1100010110000011

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

O LSB é o primeiro, então é igual a 2979 decimal

John La Rooy
fonte
1
esses tipos de pacotes não são um pouco mais difíceis de trabalhar devido ao tamanho / espaçamento dos pinos? Especialmente para aqueles que como eu com artrite (que limita a minha destreza manual.
Steve Robillard
@SteveRobillard, sim, eles são mais difíceis de trabalhar, mas definitivamente mais fáceis do que parecem ser. Para o MSOP, ajuda a ter ampliação, fluxo, mecha de solda e uma boa estação de solda. Você pode fazer algumas tentativas para alinhar um canto do MSOP com um pouco de solda até ficar satisfeito com o posicionamento. O tamanho pequeno ajuda a reduzir o ruído no circuito, por isso vale a pena tentar, você pode se surpreender.
John La Rooy
1

Bem, desde que o uso desejado não exija taxas de bits ou resolução super altas, você provavelmente poderia apenas usar um Arduino. Os arduinos são bons porque têm uma enorme comunidade de suporte, já existem há algum tempo e a comunicação via USB não GPIO!

Aqui está um link para o post de Simon Monk com instruções sobre como ele se comunica com o Arduino a partir de um Raspberry Pi com python.

Também, caso você nunca tenha ouvido falar de um Arduino antes (talvez você esteja morando embaixo de uma rocha), aqui está um link para a página de Introdução e um exemplo de entradas analógicas para iniciantes .

Dan B
fonte
0

Semelhante ao uso de um Arduino, mas e quanto a um dispositivo PICAXE, conectado ao RPi UART? Isso seria menor e muito mais barato. Para mim, o Arduino parece exagerado, dependendo de suas necessidades reais.

Cara
fonte
0

Em um mês ou dois, (devido ao transporte para a África) eu vou estar recebendo uma placa PCF8591 I2C que tem apoio wiringpi local WiringPi ea 3.3v usos de tabuleiro (tipicamente) Eu tenho a versão Waveshare na amazon ligação Amazon Pelo que eu' eu li, o PCF8591 é bem legal, mas até eu ter a placa na minha frente, não sei dizer se é bom ou não

linuxgnuru
fonte