Boa Tarde.
Estou fazendo um trabalho na faculdade que necessita o uso do amplificador (AD822an). O projeto irá trabalhar com valores de tensão baixa (entre 0 e 0.140mV). Porém o Arduino não tem muita precisão para leitura desses valores. Fiz a simulação através do Proteus, como mostra a Foto:
A simulação o resultado bate. Mas na hora de testar na protoboard a saída está dando o mesmo valor gerado pelo Arduino, 5 Volts.
A foto não ficou muito clara. Mas tentarei esclarecer:
Cabo Laranja: Saída
Cabo Cinza da Esquerda: Negativo do Sensor
Cabo Roxo: Negativo
Cabo Vermelho: Positivo do Sensor
Cabo Cinza da Direita: Positivo (+5V)
Se alguém puder me ajudar, pois não sei onde estou errando. Já simulei diversas vezes.
Desde já agradeço.
Tags:
Segue em anexo o código: sensor_radiacao.ino
olá Amanda, boa tarde.
Pela sua foto, há uma ligação incorreta. A realimentação do pino 2 do AD822 não está ligada ao ponto de junção dos dois Resistores. Veja na figura a seguir onde evidencio isto:
(clique na figura para "zoom")
Note que o fio "cinza curto" sai do pino 2 do AD822, mas chega no ponto errado no Protoboard. Assim o pino 2 fica "flutuando" e a saída do AD822 satura, motivo pelo qual vc obtém os 5V na saída (já que o AD822 tem saídas "Rail to Rail").
Na figura anterior, a seta na cor verde aponta onde o fio deveria estar ligado.
Mas há também um outro problema na sua montagem no Protobord: o AmpOp que está sobrando, não deve ser deixado sem conexão. Se vc não o usar (mas aconselho usar e vou te dar uma grande dica num post seguinte), então ligue ele no modo "Seguidor de Tensão" (ligue o pino 7 ao pino 6 e aterre o pino 5). Isto é absolutamente necessário se vc não usar o AmpOp que está sobrando.
Mas saiba que esta topologia que vc está usando, não é a mais adequada. Se vc acrescentar mais 4 resistores ao seu circuito, terá uma topologia extremamente versátil e com desempenho excepcional. Caso queira saber como, pergunte e eu te explico em post seguinte.
Também, há alguns cuidados a tomar ao ligar a saída do AmpOp à entrada analógica do Arduino. Te direi como, em post seguinte.
Veja: o AD822 é um excelente AmpOp. Mas não é dos mais baratos (diria que está entre os mais carinhos). Há alternativas de AmpOp Single Supply (e "Rail to Rail") mais baratas e vc obterá praticamente o mesmo resultado.
Caso tenha alguma dúvida, não deixe de perguntar.
Abrçs,
Elcids
Boa noite, Elcids.
Muito obrigada, não tinha reparado esse detalhe. Irei refazer toda a montagem com mais atenção agora.
Se não for muito incomodo e tiver como me ajudar, fico grata. Realmente esse AmpOp é caro, mas dizem ser excelente para a minha finalidade. Vou trabalhar com valores extremamente baixo de tensão (para o Arduino pelo menos). Preciso ler em sua entrada valores entre 0 a 0.140mV e obter um valor na saída entre 0 e 1.1 Volts de forma linear.
Olá novamente Amanda.
Ok, então vc constatou que a ligação estava com aquele erro.
Me parece que vc também fez a ligação do AmpOp "sobrante" para "Seguidor de Tensão", conforme eu recomendei. Mantenha isso em mente sobre qualquer "AmpOp" que esteja sobrando no seu Sistema. Se algum AmpOp "sobrante" é simplesmente "largado" sem ligação alguma, ele pode oscilar (isto vai depender do ambiente e da montagem física do circuito), e isto em frequências altas (onda quadrada entre 10kHz a 10MHz, dependendo do modelo do AmpOp). Se esta oscilação ocorrer, ela terá várias consequências, mas duas são as principais: o aumento significativo do consumo de energia do CI (porque a oscilação é em onda quadrada e provoca spikes de corrente durante os chaveamentos em alta-frequência do push-pull de saída), e poderá contaminar o outro AmpOp que existe no mesmo CI (isto ocorre por causa de capacitâncias parasitas no "substrato" interno do CI, e por spikes de alta-frequência introduzidos na alimentação).
Sobre a questão da tensão ainda estar incorreta, provavelmente é por causa da topologia do circuito que vc está usando associada ao tipo do sinal que vc está amplificando (isto tem a ver em como seu Sensor é "alimentado").
Como eu te disse no post anterior, há uma topologia excelente para o seu caso, e vc poderá usar até AmpOps mais baratos (por exemplo o MCP607 ou MCP609, que custam 1/4 do preço do AD822).
Veja por exemplo este post, onde eu demonstrei que é possível obter um ótimo resultado onde antes parecia impossível, e que pode te trazer alguns esclarecimentos sobre como fazer estas coisas, no link aqui no LDG: "ACS712 - Erros na leitura"
E no seu caso, me parece ainda mais tranquilo de se obter um ótimo resultado, se comparado à dificuldade com a questão do ACS712 do post que mencionei.
Vou fazer um desenho de como vc deve ligar para obter um excelente resultado e colocarei aqui logo em seguida.
Mas ajudaria bastante se vc descreve qual o "sensor" vc está usando, para que eu tenha certeza de que haverá casamento perfeito entre a saída do Sensor e a faixa de entrada do Amplificador.
Se possível publique fotos e qual o part-number deste sensor (e eventuais links com dados técnicos). É extremamente importante saber como o Sensor é "alimentado".
Abrçs,
Elcids
Olá Elcids.
Não estou mais no laboratório, amanhã cedo tiro fotos do sensor. Mas não é um sensor comercial, é um sensor que estou desenvolvendo. Esse sensor é baseado em uma célula fotovoltaica, ou seja, sua saída é uma tensão que varia conforme o índice de irradiância solar. Ele está configurado para fornecer uma tensão máxima de 0.140mV. O amplificador entra nessa história para deixar os valores mais lineares e precisos. Pois conectando direto na porta analógica do Arduino os dados não são precisos.
Irei ler agora esse tópico que você indicou. Sobre o esquema, eu agradeceria muito também.
Abraços.
Amanda boa noite,
Os amplificadores operacionais da Analog Devices são top! O amigo Elcids já descobriu o erro da sua montagem.
Sugestões para evitar erros em montagem:
Eu sou fã da Analog Devices. E eles disponibilizam na web, muito material para estudo!
https://www.analog.com/en/analog-dialogue/studentzone.html
https://www.analog.com/en/search.html?q=*&Filters=resource_type...
Recomendo essas apostilas (top) da Texas Instruments:
( download grátis)
Analog Engineer’s Circuit Cookbook: Amplifiers
https://www.ti.com/seclit/sl/slyy137a/slyy137a.pdf
The Signal - A compendium of blog posts on op amp design topics
https://exhibitors.electronica.de/download/1121_11_8_2860_8_1_800/2...
Sobre como configurar o outro Op Amp que não esta sendo usado, veja esse tópico da Texas:
http://e2e.ti.com/blogs_/archives/b/thesignal/archive/2012/11/27/th...
Como o Elcids disse, é importante que forneça as características do sensor, para sabermos como usá-lo corretamente.
Dependendo da célula fotovoltaica, ela poderá precisar de uma carga(por exemplo resistor) para que consiga medir a tensão corretamente.
Eu desenvolvi um projeto em 2018, que é um Voltímetro de precisão com o ESP32. Ganhei uma menção honrosa no concurso que eu disputei com esse projeto.
Se interessar, é possível montá-lo com Arduino também.
ESP32 Digital Voltmeter
https://www.elektormagazine.com/labs/esp32-digital-voltmeter
Faz medições de tensões positivas ou negativas entre +1,9999 V e -1,9999 V. (4 casas decimas)
Ele possui alta estabilidade nas leituras e muita precisão ( o que o conversor ADC do Arduino não tem!)
As medições podem ser transmitidas via Bluetooth ou WIFI com o ESP32.
Bom dia, Gustavo.
Fico grata pelas dicas e pelos materiais, será de grande utilidade. Com relação ao sensor eu fiz um cálculo a partir da máxima corrente de curto circuito fornecida. Dessa forma, calculei a resistência a ser usada para a tensão que eu desejava obter.
Elcids, Bom dia.
O sensor que estou desenvolvendo é este da foto abaixo. Antes de comprar o AmpOp, estava usando um Filtro RC para tirar um pouco de ruído na entrada analógica. Também usei no meu código uma média móvel, esses feitos ajudaram bastante o sinal ficar linear, mas longe da precisão que desejo alcançar.
O fabricante diz que essa célula fornece uma tensão de 0.5V e uma corrente de 100mA. Mas isso não importa muito, pois a tensão que necessitamos é de no máximo 0.140mV. Para isso, foi calculada uma resistência para ser colocada em paralelo logo na saída do sensor (não dá para ver, mas a resistência fica atrás do sensor).
Espero ter tirado as dúvidas que ficaram.
Eu tenho muita experiência com conversores ADC e DAC, pois adoro essa tecnologia e a estudo a muito anos.Se pretende usar o ADC do Arduino, sempre informo essas dicas para os colegas do LAB.
Vin = Leitura x ( 5,00V / 1024) ( Se AREF = 5,00V )
A divisão tem que ser por 1024 e não por 1023 como alguns citam erroneamente.
" Preciso ler em sua entrada valores entre 0 a 0.140mV e obter um valor na saída entre 0 e 1.1 Volts de forma linear."
O Atmega328 tem uma tensão de referência interna de 1,1V. Mas não sei a precisão desse valor.
https://www.arduino.cc/reference/en/language/functions/analog-io/an...
INTERNAL: an built-in reference, equal to 1.1 volts on the ATmega168 or ATmega328P
Como o ADC é de 10 bits (1024) sugiro uma referência externa de 1,024V. Dessa forma a resolução vai ser de 1 mV. Acho que é isso que pretende, não é?
Voltage reference 1,024V :
https://br.mouser.com/Power/Power-Management-ICs/Voltage-References...
Para minimizar as variações de leitura use um Filtro Passa baixa :
https://github.com/simonmonk/ArduinoNextSteps/blob/master/ArduinoNe...
E tem esse para calcular a média das leituras :
https://github.com/simonmonk/ArduinoNextSteps/blob/master/ArduinoNe...
Conheci esse filtro no Livro do Simon Monk :
http://simonmonk.org/books-2/programming-arduino-next-steps/
https://github.com/simonmonk/ArduinoNextSteps/tree/master/ArduinoNe...
Livro traduzido (excelente dica) :
http://loja.grupoa.com.br/livros/controle-e-processos-industriais/p...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por