Contador de Pulsos de un selector de monedas

Saludos, soy nuevo en arduino.
Tengo un proyecto que se basa en receptar el pulso de un selector de monedas en mi arduino y posteriormente imprimir en serial un String. El problema que tengo, es que ingreso la moneda y si, correctamente imprime un string, pero luego de un gran tiempo (10 min a 15 min aproximadamente) automáticamente el arduino imprime otro string sin que yo haya ingresado monedas. Es como si la selectora enviara un pulso solo. No se si mi error será a nivel de circuitos o programación.
A nivel de circuito estoy utilizando la configuración INPUT_PULLDOWN, es decir, se mantiene en LOW Y cuando ingreso la moneda el arduino recibe un “HIGH”.
Espero me puedan ayudar. Les agradecería muchísimo.
Les dejo mi código de arduino y mi esquema del circuito:
void setup() {

Serial.begin(9600);
pinMode(2, INPUT);

}
void loop() {

if (digitalRead(2) == HIGH) {

if (digitalRead(2) == LOW) {

Serial.println(“1”);
delay(150);

}
}
}

Te falta unir las masas del arduino y la fuente del traga moneda

Lee las normas del foro y coloca etiquetas para visualizar ese código y haz visible la imagen que has adjuntado. Te paso instrucciones x privado.

Y esto jamas funcionará

  if (digitalRead(2) == HIGH) {

    if (digitalRead(2) == LOW) {

      Serial.println("1");
      delay(150);

    }
  }

Si lo que buscas es leer un flanco, entonces pregunta por el valor actual y el valor anterior. Asi:

define una variable bool como global

bool estado, estado_ant = false;

void setup() {
   // igual que el tuyo
}

void loop() {
   estado = digitalRead(2); // leo el estado del pin
   if (!estado && estado_ant) {  // si paso de 0 a 1 
      Serial.println("1");
   }
   estado_ant = estado;
}