Ajuda em projeto com sensor de som (iniciante)

Vi um projeto no youtube que ligava uma lâmpada batendo duas palmas com o sensor, e com 3 ligava uma tomada, e quis adaptar (sem sucesso);
Tentei fazer com que com duas palmas, acendesse apenas os leds pra formar o número 2 num display; com três palmas, formar o número 3. Mas não sei o que tem de errado no código. poderiam me ajudar? :confused:
Esse foi o código que fiz:

#define pinSom 13
int ledA = 2;
int ledB = 3;
int ledC = 4;
int ledD = 5;
int ledE = 6;
int ledF = 7;
int ledG = 8;
int ledPonto = 10;

#define tempopalma 150
#define tempoentrepalma 600

int contaPalmas = 0;
long tempoespera = 0;
long tempodeespera = 0;

void executarAcao();
///////////////////////////////////////
void setup() {
pinMode(pinSom, INPUT);
pinMode(ledA, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(ledC, OUTPUT);
pinMode(ledD, OUTPUT);
pinMode(ledE, OUTPUT);
pinMode(ledF, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledPonto, OUTPUT);

 
}
///////////////////////////////////////////
void loop(){


 int sensorSom = digitalRead(pinSom);

 if (sensorSom == LOW) {
   if (tempoespera ==0) {
     tempoespera = tempodeespera = millis();
     contaPalmas++;
   } else if ((millis() - tempoespera) >= tempopalma) {
     tempoespera = 0;
     
   }
 }


 if ( (contaPalmas !=0) && ((millis() - tempodeespera) > 500) ){
   executarAcao(); 
   contaPalmas = 0;
   tempodeespera = millis();
 }
}

void executarAcao()
{

 if (contaPalmas == 1) {
  
   digitalWrite(ledB, HIGH);
   digitalWrite(ledC, HIGH);
   delay(5000);
 }
   if (contaPalmas == 2) {
   digitalWrite(ledA, HIGH);
   digitalWrite(ledB, HIGH);
   digitalWrite(ledG, HIGH);
   digitalWrite(ledE, HIGH);
   digitalWrite(ledD, HIGH);
   delay(5000);
   }
   if (contaPalmas == 3){
   digitalWrite(ledA, HIGH);
   digitalWrite(ledB, HIGH);
   digitalWrite(ledG, HIGH);
   digitalWrite(ledC, HIGH);
   digitalWrite(ledD, HIGH);
   delay(5000);
   }
  if (contaPalmas == 4){
   digitalWrite(ledF, HIGH);
   digitalWrite(ledG, HIGH);
   digitalWrite(ledB, HIGH);
   digitalWrite(ledC, HIGH);
   delay(5000);
  }
   if (contaPalmas == 5){
   digitalWrite(ledA, HIGH);
   digitalWrite(ledF, HIGH);
   digitalWrite(ledG, HIGH);
   digitalWrite(ledC, HIGH);
   digitalWrite(ledD, HIGH);
   delay(5000);
   }
   if (contaPalmas == 6){
   digitalWrite(ledA, HIGH);
   digitalWrite(ledF, HIGH);
   digitalWrite(ledG, HIGH);
   digitalWrite(ledE, HIGH);
   digitalWrite(ledD, HIGH);
   digitalWrite(ledC, HIGH);
   delay(5000);
   }
   if (contaPalmas == 7){
   digitalWrite(ledA, HIGH);
   digitalWrite(ledB, HIGH);
   digitalWrite(ledC, HIGH);
   delay(5000);
   }
   if (contaPalmas == 8){
   digitalWrite(ledA, HIGH);
   digitalWrite(ledB, HIGH);
   digitalWrite(ledC, HIGH);
   digitalWrite(ledD, HIGH);
   digitalWrite(ledE, HIGH);
   digitalWrite(ledF, HIGH);
   digitalWrite(ledG, HIGH);
   delay(5000);
   }
   if (contaPalmas == 9){
   digitalWrite(ledA, HIGH);
   digitalWrite(ledB, HIGH);
   digitalWrite(ledG, HIGH);
   digitalWrite(ledF, HIGH);
   digitalWrite(ledC, HIGH);
   delay(5000);
   
 }
}

Eu não conheço o sistema, mas tens a certeza que as palmas são lidas num sensor digital?