• Welcome to LusoRobótica - Robótica em Português.
 

Picos de voltagem num condensador

Started by fergas, 21 de August de 2018, 12:14

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

fergas

Estou a tentar fazer um circuito para medir o tempo que um condensador demora a carregar / descarregar para 63%, usando um arduino e invertendo a tensão nos pólos, mas não consigo tempos semelhantes para as duas situações. Além disso, reparo que quando a polaridade é invertida surgem picos abaixo e acima da tensão de alimentação com um comportamento semelhante ao que se verifica na simulação que está na imagem, com a diferença de que os valores extremos atingidos diferem aleatóriamente entre si (por exemplo umas vezes vai a -1.17v, outras a -0.9v).
Será que podem ajudar na explicação de porque é que os picos acontecem e porque é que a sua voltagem não é constante?  :)


jm_araujo

Os picos são consequência do circuito que desenhaste, criaste uma charge-pump.

Na primeira fase (Até ao primeiro pico) carregas o condensador com 5V (VU2=5V, VU1=0V). Se depois tornas VU1=5V, no ponto RC somasse-lhe a tensão que tinhas no condensador, dando um pico de 10V. Na realidade é menos um bocadinho porque U2 R1 começam logo a consumir, e os opamps não são ideias. O pico negativo é porque estás a fazer o caminho inverso.


Se meteres um diodo no ponto RC ligado a um condensador, com osz 5V de alimentação consegues aumentar a tensão ou criar uma de valor negativo, dependendo da orientação desse díodo. Isso é uma charge-pump.


(nestes casos partilhar o asc pode dar jeito)

fergas

#2
Obrigado pela explicação  :D
Estou a ver que não se consegue eliminar esse efeito facilmente então directamente no circuito.
Colocar a parte rc a ser controlado por mosfets por exemplo é capaz de ser a alternativa mais prática (tou a imaginar uma espécie de ponte H) . Que te parece?

Njay

Se queres medir o valor do condensador, basta carregá-lo e descarregá-lo, não precisas de inverter a tensão.

fergas

Quote from: Njay on 21 de August de 2018, 16:51
Se queres medir o valor do condensador, basta carregá-lo e descarregá-lo, não precisas de inverter a tensão.

Sim, claro. Mas não quis complicar muito a questão para ser mais evidente. Para o que pretendo, tem mesmo de haver inversão.

KammutierSpule

Quote from: fergas on 21 de August de 2018, 15:55
Estou a ver que não se consegue eliminar esse efeito facilmente então directamente no circuito.

Podes experimentar usar dois diodos ( schottky ).

C --|<-- GND
C -->|-- VCC

Nao te vai garantir um clamping completo, ficas com um offset dependendo das caracteristicas do diodo.


Njay

O arduino tem díodos de clamping nos pinos, a tensão não vai muito acima de Vcc+0.5V nem abaixo de -0.5V. A questão é que corrente vai escapar-se pelos díodos e afectar-te o resultado. O que é que queres fazer exactamente?

fergas

Quote from: KammutierSpule on 21 de August de 2018, 18:27

Podes experimentar usar dois diodos ( schottky ).


Obrigado pela dica. É uma boa sugestão. Na teoria funciona bem, e creio que na prática também vai ser a solução.  :D

Quote from: Njay on 21 de August de 2018, 18:35
O arduino tem díodos de clamping nos pinos, a tensão não vai muito acima de Vcc+0.5V nem abaixo de -0.5V. A questão é que corrente vai escapar-se pelos díodos e afectar-te o resultado. O que é que queres fazer exactamente?

A ideia é medir o tempo que o condensador demora a carregar / descarregar, e através desse tempo inferir o valor da resistência (t=rc). Essa resistência é na prática um sensor, e o seu valor por sua vez servirá para o calculo da condutividade dum liquido. Daí a necessidade da tensão ser AC.

Acontece que como disse antes, o tempo que o condensador demora a carregar até aos 63% deveria ser igual ao de descarga até aos 37%, mas não é isso que estou a conseguir. Vou testar a ideia do  KammutierSpule para ver se os tempos ficam mais estáveis.
Tenho também que ver se o problema não está no ADC do avr, que pode estar a ser influenciado por ruído da breadboard, mas como a diferença é sempre semelhante, não creio que seja o caso.

Njay

Porque é que não medes a resistência com uma corrente? Também podes inverter essa corrente alternadamente.

fergas

Para medir a corrente num avr sem mais nenhum sensor, que eu esteja a ver, seria através dum divisor de resistências.
Assim de repente vejo duas desvantagens com esse método:
A primeira é que ou colocava um ADC externo de maior resolução, ou ficava limitado aos 10 bits de resolução do avr, em contraponto com a resolução do timer1 que é de 16 bits.
A segunda, é que era difícil de ajustar o valor em função da temperatura da resistência do divisor que ficaria na placa, que não seria prático ler. Se bem que talvez não seja um problema muito grave, é sempre um ponto negativo.

jm_araujo

Como detetas os 63%? Se não usares uma referência de precisão e um condensador estável, os 16bits não te servem para nada.

Para garantir uma onda AC no sensor não precisa dos dois opamps, basta um, com o outro lado do condensador  à massa. Ao carregar a resistência vê um potencial, ao descarregar o inverso. Em vez de medires o tempo de subida e de descida, medes só o de subida. Fica mais simples e evitas os picos e diodos.

Njay

A avaliação que fazes é apenas qualitativa, ou tens números e requisitos concretos para a suportar?

Quote from: fergas on 22 de August de 2018, 10:22
Para medir a corrente num avr sem mais nenhum sensor, que eu esteja a ver, seria através dum divisor de resistências.
Assim de repente vejo duas desvantagens com esse método:
A primeira é que ou colocava um ADC externo de maior resolução, ou ficava limitado aos 10 bits de resolução do avr, em contraponto com a resolução do timer1 que é de 16 bits.
A segunda, é que era difícil de ajustar o valor em função da temperatura da resistência do divisor que ficaria na placa, que não seria prático ler. Se bem que talvez não seja um problema muito grave, é sempre um ponto negativo.

fergas

Quote from: jm_araujo on 22 de August de 2018, 11:29
Como detetas os 63%? Se não usares uma referência de precisão e um condensador estável, os 16bits não te servem para nada.
Nem mais
Quote from: jm_araujo on 22 de August de 2018, 11:29
Para garantir uma onda AC no sensor não precisa dos dois opamps, basta um, com o outro lado do condensador  à massa. Ao carregar a resistência vê um potencial, ao descarregar o inverso. Em vez de medires o tempo de subida e de descida, medes só o de subida. Fica mais simples e evitas os picos e diodos.
O uso dos opamps serviu só para ilustrar o circuito em questão. Na realidade em principio vai ser usado um attiny84.

Quote from: Njay on 22 de August de 2018, 12:52
A avaliação que fazes é apenas qualitativa, ou tens números e requisitos concretos para a suportar?

É apenas qualitativa.

Njay

Quote from: fergas on 22 de August de 2018, 15:05
Quote from: Njay on 22 de August de 2018, 12:52
A avaliação que fazes é apenas qualitativa, ou tens números e requisitos concretos para a suportar?

É apenas qualitativa.

There you go.
(não é necessariamente relevante, mas por acaso o tiny84 até tem leitura diferencial com ganho de 20x)

fergas

Mesmo sendo só qualitativa, medir 1K (mais teria de baixar a resolução) fica relativamente escasso. Se avançasse para esse caminho (que já ponderei), seria com um opamp e um adc de 16 bits.
É que SE conseguir colocar as duas ondas simétricas, considero a solução do condensador mais minimalista e com resultados bem simpáticos.  8)