Sensor Capacitivo falhando!?!

Olá pessoal.

Preciso de um sensor de nível para um tanque de injetor de gasolina em automóveis a álcool. como esse da foto:

Como o tanque é muito pequeno, achei que o mais fácil seria construir um sensor capacitivo por fora do tanque.
Construi um sensor igual ao exemplo da biblioteca CapSense; meu resistor é de 1.8M e tenho uma placa em paralelo com a placa do sensor aterrada.
http://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense

Meu problema é que o sensor só lê o tanque cheio quando ele acompanha o enchimento! :astonished:

Quando o tanque está vazio, as leitura ficam entre 20 e 30 unidades.
Como preciso parametrizar os níveis de fluido no tanque, fui enchendo de 100 ml, e com o tanque cheio, o sensor retornava 490 unidades.

MAS, se eu deixo o tanque cheio e aperto Reset do Arduino, o sensor volta sua leitura para 30 unidades!!!
Se eu esvazio o tanque e encho com novamente, ele volta a ler.
Ou seja, o sensor só está funcionando quando ele acompanha o tanque sendo enxido.

Alguém consegue ver onde estou errando?

Grato,
Cleber.

MAS, se eu deixo o tanque cheio e aperto Reset do Arduino, o sensor volta sua leitura para 30 unidades!!!
Se eu esvazio o tanque e encho com novamente, ele volta a ler.
Ou seja, o sensor só está funcionando quando ele acompanha o tanque sendo enxido.

Nunca usei essa biblioteca mas provavelmente pelo que relatas o sensor deve ser calibrado no inicio e só detectar variações ao fim dessa calibração.
O que faz com que quando reinicia se calibre contando com a agua.
Espreita dentro do código da biblioteca.Certamente la encontraras a tua resposta.

Vai olhando para a EEPROM... em principio vais ter de guardar lá os dados.

Pois é Hugo, já era muito tarde e o cérebro estava falhando quando eu cheguei naquele ponto.

Quando eu fui deitar, fiquei pensando no código e uma linha me ficou na cabeça: // disable auto-calibration
Ou seja, cheguei na mesma conclusão.

Vou analisar o código da biblioteca, foi o que me ocorreu.

Bubu, não tenho idéia de como fazer isso, você tem algum material de leitura para me indicar?

http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html