No me resulta poder armar una cadena de datos con lecturas de un sensor IR

Hola.
No tengo mucho tiempo ahora, pero más o menos los tiros creo que deberían ir por aquí:

void irSharp_detection()
{
int dis=sharp.distance();

digitalWrite(ledverde, LOW);
digitalWrite(lednaranja, LOW);
digitalWrite(ledrojo, LOW);

if (dis>150){
  contador3++;
  digitalWrite(ledrojo,HIGH);
  detectionShow();
}
else if (dis<140&&dis>60){
  contador2++;
  digitalWrite(lednaranja,HIGH);
  detectionShow();
}
else if (dis<50&&dis>30){
  contador1++;
  digitalWrite(ledverde,HIGH);
  detectionShow();
}
else
  {
    if (irState == HIGH)
    {
      //Serial.println("Stop Sensor");
      irState = LOW;
      //contador=0;//Reset Counter
    }
  }
} 

void detectionShow(void) {
  irState = HIGH; //esto lo he pasado aquí porque se repetía en los mismos sitios en los que se debe actualizar contador
  Serial.print("IR: A=");
  Serial.print(contador1);
  Serial.print(" / B=");
  Serial.print(contador2);
  Serial.print(" / C=");
  Serial.println(contador3);
}