tone()
De ArduWiki
Contenido
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 }