tone()
Genera una onda cuadrada de la frecuencia especificada (y un ciclo de trabajo del 50%) en un pin. Se puede especificar una duración; de lo contrario, la ola continúa hasta una llamada a noTone (). El pin se puede conectar a un zumbador piezoeléctrico u otro altavoz para reproducir tonos.
Solo se puede generar un tono a la vez. Si ya se está reproduciendo un tono en un pin diferente, la llamada al tono () no tendrá ningún efecto. Si el tono se reproduce en el mismo pin, la llamada establecerá su frecuencia.
El uso de la función tone () interferirá con la salida PWM en los pines 3 y 11 (en placas que no sean Mega).
No es posible generar tonos inferiores a 31Hz .
La maxima frecuencia posible que se puede generar es de 62535 Hz en las placas Uno,Mega y Nano.
tone(pin, frequency)
tone(pin, frequency, duration)
noTone(pin)
pin: the Arduino pin on which to generate the tone.
frequency: the frequency of the tone in hertz. Allowed data types: unsigned int.
duration: the duration of the tone in milliseconds (optional). Allowed data types: unsigned long.
Si desea reproducir diferentes tonos en varios pines, debe llamar a noTone () en un pin antes de llamar a tone () en el siguiente pin
AMPLIACIÓN DE CONTENIDO
https://www.arduino.cc/en/Tutorial/BuiltInExamples/toneMelody
Volume()
Para controlar el volumen podemos utilizar la librería <volume.h> y visitar al autor en https://github.com/connornishijima/arduino-volume1#supported-pins, donde nos explicarán mas a fondo toda su funcionalidad.
Cabe destacar que si con la función Tone, podemos utilizar casi todos los pines digitales, con esta librería deberemos de usar el pin por defecto que cada placa tiene para ello.
Board | DEFAULT_PIN | ALTERNATE_PIN | Tested |
---|---|---|---|
(Uno) ATmega168/328(pb) | 5 | 6 | YES |
(Mega) ATmega1280/2560 | 4 | 13 | YES |
(Leo/Micro) ATmega16u2/32u4 | 9 | 10 | YES* |
Sketch para probar
#include "Volume.h" // Include the Volume library
Volume vol; // Plug your speaker into the default pin for your board type:
// https://github.com/connornishijima/arduino-volume1#supported-pins
void setup() {
vol.begin();
}
void loop() {
//byte volumes[4] = {255, 127, 12, 0}; // List of volumes: 100% Volume, 50% Volume, 5% Volume, 0% Volume
// for (int i = 0; i < 4; i++) { // Iterate through volume list one second at a time
// vol.tone(440, volumes[i]);
// vol.delay(1000);
// }
vol.tone(15000, 150); // Start a 5 second fade out
vol.delay(5000); // Wait for this fade to finish
}