[ RISOLTO ] Capacimetro con CapSense 1-1000pF

Ciao a tutti, sono un radioamatore da qualche anno, con diploma in elettrotecnica dal lontano 1977, da qualche mese traffico con arduino ed ora sto utilizzando la libreria CapSense per un semplice capacimetro da inserire in un’altra applicazione.
Il capacimetro con solo una resistenza da 470K funziona bene fino a 1000pf e a me basta,
l’unico problema è che se inserisco il condensatore prima dell’avvio del programma, il valore rimane a zero, se lo tolgo e lo rimetto va tutto bene.
C’è un modo per ovviare a questo?
Avrei bisogno che mi legga il valore anche se viene riavviato lo sketch col condensatore inserito.
Spero di aver messo correttamente lo sketch.
Grazie.

P.S. Ho messo lo sketch sbagliato.
Metto lo sketch giusto per non trarre in inganno.

SENSORE_CAPACITIVO-2.ino (1.22 KB)

Parli delle libreria CapacitiveSensor ma nello sketch non ne fai uso.

Lo sketch che hai inserito (in spagnolo) deriva da questo articolo:
https://www.arduino.cc/en/Tutorial/CapacitanceMeter

Chiedo scusa,
mi sono confuso, quello è una delle prove precedenti.
Rimetto lo sketch giusto, derivante da un’altro, poi mi spiegherete come fare ad inserirlo direttamente.
Grazie

SENSORE_CAPACITIVO-2.ino (1.22 KB)

Sul Setup, prima di "cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);"
scarichi il condensatore portando a low il pin 2 come uscita per 10mSec, e lo stacchi dal gnd mediante un mosfet pilotato da un altra uscita di arduino, dopo la autocalibrazione lo riattacchi

Grazie per la risposta,
il concetto è chiaro ma in pratica sono ancora troppo "giovane" in esperienza per queste cose, vediamo almeno se ho capito qualche passaggio prima di passare a collegare un mosfet pnp, npn e se questo comanda a sua volta un relè.

void setup()
{

digitalWrite(2,LOW);
delay (10);

pinMode(11,OUTPUT); // pin Mosfet
digitalWrite(11,HIGH);

cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);

digitalWrite(2,HIGH);
digitalWrite(11,LOW);

//Inizializzo la porta seriale
Serial.begin(9600);
}

Grazie icio ho risolto staccando solo il condensatore da misurare prima dell’autocalibrazione con un transistor che comanda un relè, per poi ricollegarlo.

Da elettrotecnico ho usato un relè, c’è sicuramente qualche altro modo più semplice senza ausilio elettromeccanico ma non so…
Grazie

SENSORE_CAPACITIVO-PROVE-01.ino (1.79 KB)

Va ben dai , venga anche sto relè!

Sarei molto più contento di non usare il relè,
anche perchè mi stravolge un po il circuito che ho già fatto, è più semplice metterci solo il transistor BC549C o altro. Vedi schema.

lo schema ha vari errori:

  1. manca il diodo in parallelo alla bobina rele
  2. ha invertito B-E di q1
  3. manca la resistenza di base di Q1

Grazie per le correzioni, ok diodo, per il transistor non ho fatto caso io e che il prog Fritzing ha sbagliato la numerazione dei pin.

Comunque grazie a mio figlio che sta studiando ing. informatica ho risolto ancora meglio eliminando ogni componente.
La libreria offre già la possibilità di funzionamento senza calibrazione, con avvio Raw, vedi riga modificata.

long valore = cs_13_2.capSenseRaw(100);

Comunque di solito si lascia sempre connesso un piccolo condensatorino e si fà la calibrazione in modo da aprezzare i valori di capacità più bassi della scala