Tasto contatta senza GND

Salve ho un problema.
Per una caccia al tesoro, ho simulato un tasto, saldando i fili “GND a PIN12” a due pezzi di metallo A e B, distanti tra di loro, voglio che il loop parta, facendo ponte tra i due pezzi di metallo A e B.
Il problema è che, con questo Sketch, non serve fare ponte tra “GND” e “PIN12”, ma, basta toccare il solo “PIN12” con materiale conducente tenuto in mano, per fungere da “GND”, e attivare il loop, opzione che devo evitare.
Il problema, con altri Sketch, non avviene.
So che potrei riscrivere tutto con i millis, ma sono cocciuto e prima…vorrei capire cosa, nello Sketch01, permetta al pin12 di contattare senza GND.

Grazie.

Sketch 01 problematico

//01//
//PIN-12 FA CONTATTO ANCHE SENZA IL GND\\

#include <Servo.h>
Servo SERVO;  
int pos= 0;   
int CLICK = 12;   
int BUZ = 9;   
int LED = 13;   

void setup()
{ pinMode(BUZ, OUTPUT);        
  pinMode(CLICK, INPUT_PULLUP);  
  pinMode(LED, OUTPUT);       
  SERVO.attach(8);
  SERVO.write(0); 
}

void loop()
{
 int buttonValue = digitalRead(CLICK);
 if (buttonValue == LOW) 
{     
  SERVO.write(180); 

  tone(BUZ, 2000);   
  delay(200);      
  noTone(BUZ);  
  delay(40);   
  tone(BUZ, 3000);
  delay(200);  
  noTone(BUZ);  

      digitalWrite(LED, HIGH);  
      delay(100);              
      digitalWrite(LED, LOW); 
      delay(100); 
      digitalWrite(LED, HIGH);
      delay(100);             
      digitalWrite(LED, LOW); 
  
    delay (5000); 
    SERVO.write(0); 

  } 
}

Sketch 02 Tutto ok, il tasto funziona regolarmente, nessun falso contatto.

//02//
//PIN-12 NON FA CONTATTO SENZA IL GND-TUTTO REGOLARE\\
int buttonPin = 12;
int LED = 13;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(LED, OUTPUT);
}

void loop() {

  int buttonValue = digitalRead(buttonPin);
  if (buttonValue == LOW) {
    digitalWrite(LED, HIGH);
  } else {
    digitalWrite(LED, LOW);
  }
}

Non è un problema di programmazione e quindi di programma! E' un problema di elettronica-fisica, se tocchi la lamina fai massa :)

E per rispondere alla domanda: «vorrei capire cosa, nello Sketch01, permetta al pin12 di contattare senza GND»... in realtà lo fa con entrambi gli sketch, solo che nel secondo caso il breve impulso al momento del tocco non si fa in tempo a vederlo, perché il loop gira velocissimo e il led si accende e spegne subito.

Il problema è squisitamente hardware, bisogna rendere meno sensibile l'ingresso riducendo l'impedenza con una resistenza pull-up esterna da 1k. E se ancora non basta aggiungere un condensatore 1µF tra il pin e massa.

@torn24
@Claudio_FF

Come dicevo, pensavo di fare da GND ma, ma non capivo proprio perchè solo quello sketch lo facesse, pensavo bastasse la res del PIN di Arduino, ma effettivamente…

Ora è tutto chiaro, mi avete dato certezze.

Ringrazio molto entrambi!