tone()

De Arduino
Saltar a: navegación, buscar

Descripción

Genera en un pin una onda cuadrada de la frecuencia especificada (y ciclo de trabajo del 50%). Se puede especificar una duración, de lo contrario la onda continúa hasta una llamada a noTone().

El pin puede ser conectado a un zumbador piezoeléctrico o a un altavoz para reproducir tonos.

Sólo un tono puede ser generado a la vez. Si un tono ya se está reproduciendo en un pin diferente, la llamada a tono() no tendrá ningún efecto. Si el tono se está reproduciendo en el mismo pin, la llamada ajustará su frecuencia.

Placa Frecuencia Mín. (Hz) Frecuencia Máx (Hz)
UNO, MEGA, Leonardo y otras placas AVR 31 65535
ZERO 41 275000
DUE y Gemma No implementado

Para detalles técnicos ver las notas Brett Hagman's.

Nota: Si desea reproducir tonos diferentes en varios pines, es necesario llamar noTone() en un pin antes de llamar a tone() en el siguiente pin.


Sintaxis

tone(pin, frecuencia);
tone(pin, frecuencia, duracion);

Parámetros

pin
el pin en el que se quiere generar el tono
frecuencia
la frecuencia del tono en hertz - unsigned int
duracion
la duración del tono en milisegundos (opcional) - unsigned long

Retornos

Nada.

Advertencias

  • El uso de la función tone() interferirá con la salida PWM en los pines 3 y 11 (en placas distintas de la MEGA).

Ejemplo

int melodia[] = {262,196,196,220,196,0,247,262};
int duracion[] = {4,8,8,4,4,4,4,4};

void setup() {
  for (byte n=0; n<8; n++) {
    int tiempo = 1000 / duracion[n];
    tone(8, melodia[n], tiempo);

    int pausa = tiempo * 1.30;
    delay (pausa);
    noTone(8);
  }
}
void loop() {
  //Nada
}

Vea también

Referencias