won't detect Piezo

We have a problem with the piezo that doesnt seem to work properly.
The piezo is used to detect knocks in a game which is a remake of NES game track & field.
There’s a box with 9 leds and a button to start the game. Once button is pressed
the leds are lit up every 10 knocks, two at a time.
When led at pin 13 is reached, the time it took from first led to last is saved
and a led to indicate scores is light up.

The only problem is that the piezo seems to detect knocks without us touching it.
We’ve already tested the piezo with previous versions of our code and there it works
just as we want to.
But now the knock value is kind of free flowing when we’re looking in the serial monitor.

Anyone have an idea what this is about?
Were suspecting something is goofy with the analog pins since we didnt use those
before the problem with the piezo started.

int ledPin = 0;
int ledPinDark=3;
int ledCount = 18;
int scoreLed = 16;
int previousKnock = 0;

int knockPin = 2; //pin for incoming knock sensor
int knockVal;
int countKnock=0;
int mappedVal;

int buttonPin = 15;
int buttonState =0;
boolean start = false;

//timing var
int finaltime = 0;
long startTime = 0;
int thisRound =0;
int previousRound =0;

void setup()

  for(int i=5; i< ledCount; i++)




void loop()
  buttonState = digitalRead(buttonPin);
  knockVal = analogRead(knockPin);
  mappedVal = map(knockVal,0,1023,1,10);//remap knockVal to a scale of 1-10 instead

  if(buttonState == LOW && start == true) //if button pressed twice game turns off
    start = false;
    Serial.println("button false");

  else if(buttonState == LOW)//else game turns on
    start = true;
    Serial.println("button true");

  if(mappedVal <=8 && start == true) //every knock, increase countKnock with +1
    previousRound = thisRound;//save score time of last round
    countKnock +=1; //start counting knocks


  if(countKnock == 1)//when started, save start time
    startTime = millis();

  //after 10 knocks 1st led lights
  if(countKnock == 10)
    previousKnock = countKnock; 
    ledPin = 5;   

  //after each additional 10 knocks next lamp lights and the led 2 steps behind goes out
  if(countKnock - previousKnock == 10)
    previousKnock = countKnock;
    ledPin +=1;
    ledPinDark +=1;

  //light up the leds
  if(countKnock >= previousKnock && countKnock <previousKnock+10)

  //when last led is on, game is finished and goal time saved
    countKnock = 0;   //reset knocks

  if(thisRound < previousRound) //check if previous reckord is beaten, then light up a led to indicate reckord
    Serial.println("score +1");
    scoreLed++; //not working properly
    digitalWrite(scoreLed, HIGH);


Sorry, found the problem!
We've tried for an hour now, but 5 mins after posting we find out why its not working. haha.

There was a led called scoreLed connected to pin 16 which is the same as A2.

But then theres the other problem we have:
When led 13 is lit up and game is finished.. Led at pin 17 is supposted to light up as well to show scores.
So theres a variable for the three score leds at pin 17,18 19 called scoreLed.
When game is finished we type: scoreLed +=1(hence why calling scoreLed for 16).

We could just write, light up led 17 but we wanna be able to light up one more led after each game.
but the variable scoreLed +=1 seems to plus 1 unlimited amount of times...

What do you want to happen if scoreLed would go above 19?

if (scoreLed < 19)  // If you reach 19, stay there forever
if (scoreLed > 19)  // If you pass 19, go back to 17
   scoreLed = 17;