ADC v1.1
Conversor analógico-digital de 4 canais
Esta versão foi descontinuada. Clique no link abaixo para ver a versão mais atual:
Versão atual do Nanoshield ADC
- Alta resolução: versões de 12 ou 16 bits
- 4 entradas por módulo
- Até 4 módulos simultâneos, totalizando 16 entradas
- Amplificador interno para sinais de baixa amplitude
- Filtro RC em todos os canais
- Entradas analógicas protegidas contra ligações acidentais até ±20V
O Nanoshield ADC oferece uma solução para aplicações que necessitam de conversão analógico-digital com grande resolução, ou quando o número de entradas analógicas do seu microcontrolador não é suficiente. Implementado com o CI ADS1115 (na versão de 16 bits) e ADS1015 (na versão de 12 bits), ambos fabricados pela Texas Instruments, o Nanoshield ADC é ideal para aplicações como:
- Leitura de sensores de temperatura, pressão, umidade, entre outros.
- Monitoramento de bateria e tensões de alimentação.
- Leitura de sensores industriais com saída de 0V a 5V, 0V a 10V ou 4-20mA (consulte seção Configurações disponíveis abaixo).
Apesar das diversas possibilidades de uso, o Nanoshield ADC já vem configurado de fábrica para ler tensões entre 0 e 5V, e pronto para ser utilizado com nossa biblioteca e código de exemplo.
!Versões disponíveis
O Nanoshield ADC é vendido em duas versões, uma com 16 bits de resolução e outra com 12 bits. A versão de 16 bits utiliza o chip ADS1115, e a versão de 12 bits utiliza o chip ADS1015.
A tabela abaixo mostra as características principais de cada uma das versões:
Parâmetro | ADS1115 | ADS1015 |
---|---|---|
Resolução | 16 bits | 12 bits |
Alimentação | de 2V a 5.5V | de 2V a 5.5V |
Intervalo de medidas | 0V até VCC | 0V até VCC |
Amostras por segundo | máx. 860 | máx. 3300 |
Para facilitar a identificação, existe uma marcação na placa indicando qual chip está montado. A figura abaixo ilustra um módulo montado com o chip ADS1115 de 16 bits (note a marca preta redonda sobre o quadrado branco diretamente ao lado da inscrição ADS1115).
!Conectando as entradas analógicas
O Nanoshield ADC possui 4 entradas analógicas independentes. Elas podem ser configuradas tanto para leitura de tensões absolutas (a tensão presente no canal é medida em relação ao GND do módulo), quanto para leitura dos canais em modo diferencial (um canal é medido em relação ao outro).
Medidas absolutas (single ended)
Para a medida de tensões absolutas, basta fixar os terminais do sensor (ou qualquer outra fonte de tensão), no GND e em uma das 4 entradas do módulo através do borne de parafuso. As entradas estão nomeadas como A0, A1, A2 e A3 e têm intervalo de medida de 0V até 5V. Nesse tipo de conexão, a resolução passa a ser de 15 bits quando de utiliza o chip ADS1115 e 11 bits quando de utiliza o chip ADS1015.
A figura abaixo ilustra a conexão de 4 sensores com medição absoluta:
Medidas em modo diferencial
Em modo diferencial, é possível configurar cada um dos canais para ser lido em relação ao outro, e não em relação ao GND (por exemplo, se os dois canais medidos tiverem tensões iguais, a saída lida será zero). Esse modo é útil para leitura de sensores como célula de carga ou outros tipos que funcionam utilizando ponte de Wheatstone por exemplo. Tenha em mente que apesar da medida não ser feita diretamente em relação ao GND, o intervalo de tensão permitido em cada canal continua sendo de 0V até 5V em relação ao GND. Nesse tipo de conexão, é possível utilizar todos os bits de resolução, ou seja, 16 bits com o chip ADS1115 e 12 bits com o chip ADS1015.
A figura abaixo mostra um exemplo com dois sensores lidos em modo diferencial:
!Conexão com Arduino + Base Board Uno
O jeito mais fácil de utilizar o Nanoshield ADC juntamente com um Arduino é usando a Base Board Uno ou Base Board L Uno. Basta encaixar as placas e depois carregar o nosso código de exemplo para verificar o funcionamento (veja a seção de código de exemplo no final da página). Esta montagem pode ser utilizada com o Arduino UNO, Mega R3, Duemilanove entre outras (entre em contato caso tenha dúvidas sobre compatibilidade com outras versões). A figura abaixo mostra como fica a montagem do conjunto.
!Conexão com Base Boarduino
Também é possível conectar o Nanoshield ADC diretamente à nossa placa compatível com Arduino, a Base Boarduino. A conexão é feita da mesma forma que com a Base Board, conforme ilustra a figura abaixo. Basta encaixar as placas e depois carregar o nosso código de exemplo para verificar o funcionamento (veja a seção de código de exemplo no final da página).
!Conexão direta com Arduino
Também é possível utilizar o módulo com montagem direta, utilizando um protoboard e jumper wires para fazer a conexão. Utilize os seguintes esquemas para conectar o Nanoshield ADC a um Arduino UNO ou Arduino Mega.
!Utilizando vários módulos simultaneamente
O Nanoshield ADC se comunica com o microcontrolador através de um barramento de comunicação I²C. Uma das vantagens do barramento I²C é a possibilidade de uso de vários módulos simultâneos utilizando apenas 2 pinos do microcontrolador: um para a transmissão do clock (SCL) e outro para transmissão de dados (SDA).
Cada módulo conectado a um barramento I²C necessita de um endereço único para que não haja conflito entre os mesmos. O Nanoshield ADC possui 4 opções de endereço selecionáveis via jumper de solda na parte superior da placa, permitindo a utilização de até 4 módulos simultâneos e totalizando até 16 canais independentes utilizando apenas 2 pinos do microcontrolador. A figura abaixo mostra onde se localizam os jumpers de solda utilizados para seleção do endereço.
O endereço do módulo no barramento I²C possui 5 bits fixos (10010) e mais dois bits configuráveis. Através dos jumpers de solda é possível configurar quais serão os dois últimos bits, as opções são: 00, 01, 10 e 11. Para fazer a seleção, basta fechar o jumper de solda correspondente ao endereço desejado, deixando os demais abertos (o padrão de fabrica é 00). Dessa forma, o endereço completo do módulo pode ser 1001000 (padrão), 1001001, 1001010 ou 1001011.
A figura abaixo mostra um conjunto de 4 módulos utilizados simultaneamente. Neste exemplo utilizamos uma Base Board UNO juntamente com um Arduino Mega.
A Circuitar pode enviar seus módulos já configurados, contate-nos para mais informações.
Recursos adicionais
Amplificador interno
O chip possui um amplificador interno com ganho ajustável, que pode ser utilizado para aumentar a resolução quando o sinal de entrada possui baixa amplitude. O ganho do amplificador pode ser setado para 2/3, 1, 2, 4, 8 ou 16. A tabela abaixo mostra qual é a tensão de fundo de escala para cada um dos ganhos do amplificador (tensão de fundo de escala é o maior valor de tensão que pode ser medido).
Ganho | Tensão de fundo de escala (V) |
---|---|
2/3 | 6,144¹ |
1 | 4.096 |
2 | 2,048 |
4 | 1,024 |
8 | 0,512 |
16 | 0,256 |
¹Para ganho igual a 2/3, apesar da tensão de fundo de escala ser igual a 6,144V, o máximo intervalo de leitura permitido ainda é de 0V até 5V.
A tensão de entrada pode ser superior ao valor de fundo escala sem que o módulo seja danificado. Por exemplo, mesmo utilizando ganho 16, onde a tensão de fundo de escala é igual a 0,256V, o valor de tensão máximo suportado pelas entradas analógicas continua sendo ±20V.
Operação em 3,3V
O Nanoshield ADC também pode ser configurado para funcionar com alimentação de 3,3V. Essa configuração é útil quando se deseja utilizar o módulo juntamente com outras placas que funcionam com 3,3V, como o Arduino Pro Mini, Arduino DUE, Raspberry Pi, entre outras.
Para alterar a tensão de operação do módulo é necessário alterar o jumper de solda denominado SUP, que está localizado na parte superior da placa. A figura abaixo mostra como fazer esta alteração:
Esta alteração só é necessária se o módulo estiver sendo utilizado juntamente com a Base Board ou Base Board L. Caso você esteja utilizando o módulo ligado por jumper wires, basta conectar o pino VCC do módulo diretamente na tensão de alimentação de 3,3V.
Caso o módulo seja alimentado com 3,3V, o máximo intervalo de leitura permitido passa a ser de 0V até 3,3V.
A Circuitar pode enviar seus módulos já configurados, contate-nos para mais informações.
Comparador
O chip possui um comparador interno programável que pode ser configurado para gerar um alerta quando o valor de tensão na entrada analógica excede algum limite previamente configurado pelo usuário. Desse modo, o módulo pode "avisar" o microcontrolador sobre um evento desejado, sem que seja necessário ficar medindo continuamente a entrada.
Entre outros casos, essa configuração pode ser útil quando o conjunto é alimentado por baterias e é necessário uma máxima economia de energia. Por exemplo: suponha que você esteja implementando um circuito remoto que monitore o nível de água de um rio para enviar alertas de enchente, e que o nível de água seja medido por intermédio de um sensor de pressão analógico ligado diretamente ao Nanoshield ADC. Você pode deixar o sistema "dormindo" em estado de baixo consumo enquanto o nível de água está dentro de um intervalo aceitável, nesse caso somente o módulo ADC continua "acordado" monitorando o nível. Quando a água atingir um certo nível que configure risco de enchente, o módulo envia um sinal de alerta que acorda o processador, ligando o circuito e enviando o aviso até uma central de recepção.
O sinal de alerta é enviado através do pino 3 do Arduino (no Nanoshield ADC este pino é denominado "ale"). Esta função vem desabilitada de fábrica e para ativá-la é necessário fechar o jumper de solda denominado ALERT localizado no lado superior da placa.
Configurações disponíveis
Cada uma das entradas do Nanoshield ADC possui um filtro RC passa-baixas que conta com as seguintes funções:
- Anti-aliasing e atenuação de ruído nas entradas analógicas
- Proteção para as entradas analógicas contra ligações acidentais até ±20V
- Circuito configurável, possibilitando leituras de sensores de 4 a 20mA, 0 a 10V entre outras aplicações.
Na configuração padrão de fábrica (leituras de 0 até 5V), o filtro tem frequencia de corte de aproximadamente 720 Hz na versão de 16 bits, e aproximadamente 1500 Hz na versão de 12 bits.
A figura abaixo mostra o filtro RC para a entrada A0 nas versões de 12 e 16 bits (as entradas A1, A2 e A3 têm circuitos semelhantes), consulte o esquemático para maiores detalhes.
Note que nem todos os componentes do circuito vêm soldados. Os componentes que ficam vazios podem ser inseridos posteriormente, permitindo configurar o módulo para leitura de sinais e sensores diversos. Nas próximas seções serão apresentados alguns exemplos.
Lendo um sensor com saída de corrente de 4 a 20mA
Para realizar leituras de sensores que possuem saída de 4 a 20mA, é necessário realizar algumas modificações no circuito do filtro RC apresentado anteriormente. A figura abaixo ilustra um exemplo de modificação feita na entrada A0 (as outras entradas A1, A2 e A3 têm circuitos semelhantes e também permitem este tipo de configuração). Para mais detalhes, consulte o esquemático disponível no link ao final da página.
Foram adicionados dois resistores, R3 no valor de 200 Ohms e R4 no valor de 100 Ohms. A corrente de saída do sensor circula pelo resistor de 100 Ohms, gerando uma tensão entre 0,4V e 2V, que é lida diretamente pela entrada do conversor AD. Neste caso, recomenda-se configurar o amplificador interno para ganho 2, que corresponde a uma tensão de fundo de escala igual a 2,048V. Dessa forma, a faixa de leitura é maximizada, permitindo uma resolução de 625 nA.
O resistor original de 2,2 kOhms tem valor muito elevado para que seja possível a passagem da corrente diretamente sobre ele, por esse motivo é adicionado o resistor de 200 Ohms em paralelo. Note que utilizando esta configuração, o circuito de proteção contra ligações acidentais também é alterado. Dessa forma os limites máximos de tensão suportados passam a ser de -3V até +9V (estes limites são apenas para ligações acidentais utilizando fontes de tensão, eles não têm relação com a tensão de alimentação do sensor, que pode ser de 5V, 12V, 24V, ou outro valor desejado, desde que a ligação e a configuração do módulo estejam corretos).
A figura abaixo mostra a ligação típica de um sensor com saída de 4 a 20mA ao Nanoshield ADC.
Cada uma das 4 entradas do módulo pode ser configurada para a leitura de um sensor com saída de 4 a 20mA. A imagem abaixo mostra a ligação de 4 sensores.
A Circuitar pode enviar seus módulos já configurados, contate-nos para mais informações.
Lendo um sensor com saída de corrente de 0 a 10V
Para realizar a leitura de um sensor com saída de 0 a 10V também é necessário realizar algumas modificações no circuito de entrada. A figura abaixo ilustra um exemplo de modificação feita na entrada A0 (as outras entradas A1, A2 e A3 têm circuitos semelhantes e também permitem este tipo de configuração). Para mais detalhes, consulte o esquemático disponível no link ao final da página.
Foi adicionado o resistor R4 com valor de 2,2 kOhms, formando um divisor resistivo com o resistor R2, que já está presente na versão padrão. Dessa forma, a tensão de 0 a 10V proveniente do sensor é dividida por 2, ficando dentro dos limites de 0 até 5V suportados pelo chip. Assim a saída proveniente do sensor pode ser medida normalmente.
A figura abaixo mostra a ligação típica de um sensor com saída de 0 a 10V ao Nanoshield ADC.
A Circuitar pode enviar seus módulos já configurados, contate-nos para mais informações.
Diagrama de blocos
O Nanoshield ADC se comunica com o processador através de um barramento I²C que utiliza apenas 2 pinos. O diagrama de blocos abaixo ilustra o funcionamento do módulo.
Especificações elétricas
-
Alimentação: é feita pelo pino VCC com intervalo de 4,5 até 5,5V (valor típico 5V). Opcionalmente a placa pode ser alimentada utilizando o pino 3V3 com intervalo de 3V até 3,6V, para isso é necessário alterar o jumper SUP (veja instruções no esquemático).
-
Consumo: o consumo máximo de corrente é de 300uA.
-
Níveis lógicos: a comunicação I2C e o sinal de saída ALERT (opcional), vem configurados de fábrica para funcionar com nível lógico de 5V. As entradas analógicas funcionam com tensões de até 5V e são protegidas para ligações acidentais até ±20V.
Pinagem
A tabela abaixo descreve a função de cada um dos sinais utilizados, e a correspondência com os pinos do Arduino UNO e Arduino MEGA.
Sinal | Arduino UNO | Arduino MEGA | Função |
---|---|---|---|
ale | 3 | 3 | Saída do comparador ou fim de conversao (opcional) |
SDA | A4 | 20 | Linha de dados barramento I2C |
SCL | A5 | 21 | Linha de clock barramento I2C |
VCC | VCC | VCC | Entrada de alimentação 5V |
GND | GND | GND | Tensão de referência (terra) |
!Código de exemplo
- Nanoshield_ADC - Biblioteca Arduino para o Nanoshield ADC.
Versões anteriores
- Versão 1.0 - Documentação da versão 1.0 do Nanoshield ADC.
Downloads
- Esquemático - Esquemático Nanoshield ADC v1.1
- Datasheet ADS1015
- Datasheet ADS1115