medida de distancia

Hola a todos, Soy Italiano pero he buscado este projecto en espagnol y necesito ayuda para entenderlo a
Este es el codigo.

void setup(){
  
  Serial.begin(9600); //Inicio comunicacion serial
  
  pinMode(2,OUTPUT); //Trigger (sensor UT HC-SR04)
  pinMode(3,INPUT); //Echo (sensor UT HC-SR04)
  pinMode(8,OUTPUT); //Altavoz
  digitalWrite(8,0);//Para que el altavoz no suene al iniciar el programa
  pinMode(10,OUTPUT); //Led Azul
  pinMode(11,OUTPUT); //Led Verde
  pinMode(12,OUTPUT); //Led Amarillo
  pinMode(13,OUTPUT); //Led Rojo
  
}
 
void loop(){
  long tiempo,altavoz; //Definición variables tiempo y altavoz
  float distancia; //Definición variable distancia
  
  digitalWrite(2,HIGH); //Envio de un pulso para activar el sensor HC-SR04
  delayMicroseconds(10);
  digitalWrite(2,LOW);
  
  tiempo=(pulseIn(3,HIGH)/2); //Medida del pulso de respuesta
  distancia=float(tiempo*0.034); //Calculo de la distancia en cm
  
  //Monitorización en de la distancia en cm por el monitor en serie
  Serial.print("Deteccion en "); //Imprime en el monitor en serie, 
  Serial.print(distancia); //seguido de la distancia obtenida y las unidades, 
  Serial.println(" cm"); //en este caso en centímetros (cm)

  //Si la distancia es inferior o igual a 50 cm, suena el altavoz y se encienden los leds ROJO y AMARILLO:
  
  if (distancia <= 50){ 
        tone(altavoz,250,2000);
        delay(3000);
        digitalWrite(10,LOW);
        digitalWrite(11,LOW);
        digitalWrite(12,HIGH);
        digitalWrite(13,HIGH);
     }
  
    
 
 delay(1000); 
    
}

de hecho todo funciona pero no entiendo esto comando:

tone(altavoz,250,2000);

En el pin 8 de arduino hay un buzzer.
altavoz es una variabile che no viene puesta a 8 en el codigo.
como puede funcionar esto?
adonde està la magia? :o

nada que no resuelves indicando esto

const byte altavoz = 8;

en el setup modifica

pinMode(8,OUTPUT); //Altavoz

por

pinMode(altavoz,OUTPUT); //Altavoz

y listo

hola Y gracias por tu respuesta.
Vale esto lo he entendido... y lo compriendo pero como puede ser que el codigo funciona de todas formas?

este es el projecto y funciona... como es posible?