edo98767_:
Allora per quanto riguarda l'alimentazione ho provato sia tramite ingresso VIN che tramite il jack ma il risultato è sempre lo stesso, i valori non corrispondono.
Certamente, Vin e jack sono la stessa cosa ossia sono collegati insieme e vanno al regolatore di Arduino che porta la tensione a 5 V.
ho un cavo elettrico che si inserisce nella whiteboard
(immagino intendessi "breadboard"...
).
e ad esso è collegato un secondo cavo,che va ad arduino, e una resistenza da 1M; dall'altro lato della resistenza si trova infine un secondo cavo anch'esso collegato ad arduino che avrà la funzione di "controllo" del sensore.
Ok, non è proprio chiarissimo..
Non facevi prima a fare uno schemino semplice anche con i caratteri (o con Paint o un programmino per disegnare circuiti anche online o disegnarlo su carta e fotografarlo, e postare quello)? Comunque più o meno credo che sia lo schema classico di un sensore capacitivo, diciamo come questo:
SENSORE ---+----------------> Pin 2
|
+-- R 1 MOhm ----> Pin 15
Per quanto riguarda la libreria che utilizzo è la "CapacitiveSensor.h", e per lo sketch credo la cosa più comoda sia quella di allegarlo al post, anche se a prima vista potrebbe essere un po confusionario dato che non riguarda solo i sensori ma svariati altri componenti del progetto.
Benissimo per la libreria, ma, come ripeto ormai molto spesso nel forum, quando c'è un problema bisogna isolarlo ossia, come ti avevo suggerito, fare un piccolo sketch che gestisce un solo tasto (magari derivato da un esempio della libreria) e vedere quali valori leggi con e senza USB.
Considera che i valori di questo tipo di sensori dipendono moltissimo dalle caratteristiche del GND, per cui è altamente probabile che i valori posssano cambiare con o senza USB, per cui penso sia importante capire di quali valori si stia parlando ossia di quanto si possono discostare tra loro e se sia possibile determinare un valore che risulti soddisfacente in entrambi i casi.
Quindi una cosa del genere:
#include <CapacitiveSensor.h>
CapacitiveSensor cs = CapacitiveSensor(2,15);
void setup()
{
// Prova anche a modificare l'autocalibrazione (default 20.000 ossia 20 secondi)
//cs.set_CS_AutocaL_Millis(0xFFFFFFFF);
Serial.begin(9600);
}
void loop()
{
Serial.println(cs.capacitiveSensor(30));
delay(200);
// o in alternativa puoi anche forzare ogni tanto l'autocalibrazione da codice
//cs.reset_CS_AutoCal();
}
Anche la resistenza influisce sulla sensibilità, per cui magari invece di 1 MOhm si potrebbe pensare di aumentarla un poco.
Facci sapere l'esito di questa prova, e poi vediamo cosa fare.