Koddaki delay(500) satırı orada iken HW'i ne şekilde yaparsanız yapın, okunacağının garantisi yok.
Yarım saniye bekle. Bir kaç milisaniye içinde ADC oku. Para da o bir kaç milisaniye içinde temas sağlasın. Ki temas kalitesi de kötü.
Kondansatör ise sadece debounce etkisini elimine etmeye yarar. Ki bu kumbara sanayi ortamında çalışmayacaksa gerekli değil. Gerekirse pull/up/down dirençlerinin değeri düşürülür. Bence transistöre de gerek yok.
Asıl sorun teması ADC ile algılamaya çalışmakta.
Şemayı çok incelemedim ama bağlı pinler uygunsa direkt dış kesme olarak tanımlanıp, kesme içinde bir saymak daha garantili çözüm olur.
Üstelik bu pinler wakeup özelliği olan pinler olursa mcu'yu uyutup, para teması ile uyandırıp, sayıp, bir kaç sn ekranda ne isteniyorsa gösterip, tekrar uyuması sağlanabilir.