SIK Experiment Guide for the Arduino 101/Genuino 101 Board (Spanish)
This Tutorial is Retired!
This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.
Experimento 14: Usar un zumbador piezoeléctrico
Introducción
En este experimento, salvaremos las diferencias existentes entre el mundo digital y el analógico. Usaremos un zumbador piezoeléctrico que hace un pequeño "clic" cuando se aplica tensión (vamos a probarlo). En sí no es muy emocionante, pero si activa y desactiva la tensión cientos de veces durante un segundo, el zumbador piezoeléctrico producirá un tono. Y si une unos cuantos tonos, creará música. Con este circuito y boceto se reproducirá una canción clásica. Nunca le decepcionaremos.
También hemos añadido un botón en serie con el zumbador. ¿Por qué? Porque todo generador de ruido requiere un botón de silencio. Para escuchar la canción que se va a reproducir de la placa 101 con el zumbador, debe mantener el botón pulsado. Para silenciar el zumbador, solo tiene que soltar el botón.
Elementos necesarios
Necesitará los siguientes elementos:
- 1 placa de pruebas
- 1 placa Arduino 101 o Genuino 101
- 1 zumbador piezoeléctrico
- 1 pulsador
- 5 cables puente
¿No tiene el SIK?
Si está realizando este experimento y no dispone del SIK, le sugerimos que use estos elementos:
También necesitará una placa Arduino 101 O Genuino 101.
Presentación del zumbador piezoeléctrico
El zumbador es un pequeño componente con un trozo de metal que se mueve cuando se aplica tensión. Este movimiento genera un pequeño sonido o "clic". Si activa y desactiva la tensión con la suficiente rapidez, obtendrá diferentes pitidos, chirridos y zumbidos. Podrá usar la PWM para controlar la velocidad de activación y desactivación del zumbador piezoeléctrico y, a su vez, la frecuencia de audio que emite. El ajuste de la PWM le permite obtener auténticas notas del zumbador.
Si gira el zumbador y mira la parte inferior, verá un pin con un signo (+) junto a él. Este pin se conecta a una señal de un pin de PWM. El otro pin se debe conectar a tierra.
Conexión del hardware
¿Está preparado para comenzar a conectar todo? Consulte el diagrama de cableado siguiente para ver cómo está conectado todo.
Componentes polarizados | Preste especial atención a las marcas de los componentes que indican cómo colocarlo en la placa de pruebas. Los componentes polarizados solo se pueden conectar a un circuito en una sola dirección. |
Diagrama de cableado del experimento
Abrir el boceto
Abra el software IDE de Arduino en su ordenador. La codificación en el lenguaje de Arduino controlará el circuito. Abra el código del circuito 14; para ello, acceda a "101 SIK Guide Code" (Guía de códigos de SIK 101) que ha descargado y guardado en la carpeta "Examples" (Ejemplos) anteriormente.
Para abrir el código vaya a: File > Examples > SIK Guide Code > Circuit_14 (Archivo > Ejemplos > Guía de códigos de SIK > Circuito_14)
También puede copiar y pegar el siguiente código en el IDE de Arduino. Cárguelo y vea qué es lo que ocurre.
language:cpp
/*
SparkFun Inventor's Kit
Example sketch 14
BUZZER
Use the buzzer to play a song!
This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
(This sketch was originally developed by D. Cuartielles for K3)
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn more about Arduino.
*/
/*
This sketch uses the buzzer to play songs.
The Arduino's tone() command will play notes of a given frequency.
We'll provide a function that takes in note characters (a-g),
and returns the corresponding frequency from this table:
note frequency
c 262 Hz
d 294 Hz
e 330 Hz
f 349 Hz
g 392 Hz
a 440 Hz
b 494 Hz
C 523 Hz
For more information, see http://arduino.cc/en/Tutorial/Tone
*/
const int buzzerPin = 9;
// We'll set up an array with the notes we want to play
// change these values to make different songs!
// Length must equal the total number of notes and spaces
const int songLength = 18;
// Notes is an array of text characters corresponding to the notes
// in your song. A space represents a rest (no tone)
char notes[] = "cdfda ag cdfdg gf "; // a space represents a rest
// Beats is an array of values for each note and rest.
// A "1" represents a quarter-note, 2 a half-note, etc.
// Don't forget that the rests (spaces) need a length as well.
int beats[] = {1,1,1,1,1,1,4,4,2,1,1,1,1,1,1,4,4,2};
// The tempo is how fast to play the song.
// To make the song play faster, decrease this value.
int tempo = 150;
void setup()
{
pinMode(buzzerPin, OUTPUT);
}
void loop()
{
int i, duration;
for (i = 0; i < songLength; i++) // step through the song arrays
{
duration = beats[i] * tempo; // length of note/rest in ms
if (notes[i] == ' ') // is this a rest?
{
delay(duration); // then pause for a moment
}
else // otherwise, play the note
{
tone(buzzerPin, frequency(notes[i]), duration);
delay(duration); // wait for tone to finish
}
delay(tempo/10); // brief pause between notes
}
// We only want to play the song once, so we'll pause forever:
while(true){}
// If you'd like your song to play over and over,
// remove the above statement
}
int frequency(char note)
{
// This function takes a note character (a-g), and returns the
// corresponding frequency in Hz for the tone() function.
int i;
const int numNotes = 8; // number of notes we're storing
// The following arrays hold the note characters and their
// corresponding frequencies. The last "C" note is uppercase
// to separate it from the first lowercase "c". If you want to
// add more notes, you'll need to use unique characters.
// For the "char" (character) type, we put single characters
// in single quotes.
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523};
// Now we'll search through the letters in the array, and if
// we find it, we'll return the frequency for that note.
for (i = 0; i < numNotes; i++) // Step through the notes
{
if (names[i] == note) // Is this the one?
{
return(frequencies[i]); // Yes! Return the frequency
}
}
return(0); // We looked through everything and didn't find it,
// but we still need to return a value, so return 0.
}
Código a tener en cuenta
char notes[] = "cdfda ag cdfdg gf ";
char names[] = {'c','d','e','f','g','a','b','C'};
Hasta ahora hemos estado trabajando únicamente con datos numéricos, pero Arduino también puede trabajar con texto. Los caracteres (simples, imprimibles, letras, números y otros símbolos) tienen un tipo propio denominado "char". Cuando tiene un conjunto de caracteres, se puede definir entre comillas dobles (también denominado "cadena") O como una lista de caracteres entre comillas simples.
tone(pin, frequency, duration);
Uno de los comandos integrados muy útil de Arduino es la función tone()
. Esta función controla un pin de salida a una determinada frecuencia, lo que permite controlar zumbadores y altavoces. Si le da una duración (en milisegundos), reproducirá el tono y, a continuación, se detendrá. Si no le da una duración, seguirá reproduciendo el tono sin detenerse (pero lo puede parar con otra función noTone()
).
Lo que debería ver
Lo que es ver, no verá nada. Y para empezar no debería escuchar nada. Sin embargo, sí que debería poder escuchar una canción si mantiene pulsado el botón en cuanto se carga el boceto. Si escucha la canción a mitad u observa que es como si no se estuviera reproduciendo, pulse el botón de reinicio y mantenga pulsado el botón.
Si no funciona, asegúrese de que ha montado el circuito correctamente y ha verificado y cargado código en la placa o consulte la sección Solución de problemas.
Solución de problemas
No hay sonido
Debido al tamaño y forma del zumbador piezoeléctrico, es fácil confundir los orificios correctos en la placa de pruebas. Vuelva a comprobar que estén bien colocados.
Verifique también que los cables del pulsador están conectados correctamente. Si están mal conectados, el circuito nunca se completará ya tenga o no pulsado el botón.
Parece que solo reproduce una parte de la canción
Es posible que solo escuche parte de la canción para cuando pulse el botón. Para iniciar la canción otra vez, pulse el botón de reinicio maestro en la placa 101 mientras mantiene pulsado el botón de silencio.
Demasiado básico
El código está escrito para agregar fácilmente sus propias canciones. ¡Póngase en marcha y marque su propio ritmo!