Altavoz de vibración de la espuma! (3 / 3 paso)

Paso 3: Añadir código y reproducir música vibracional!

Último paso es añadir el código (actualmente tiene Star Wars tema y temas de Mario, retire comentando el tema de mario y comente el tema de Star Wars para jugar melodías diferentes).

Agradecimientos al club de robótica R-equipo para el registro de su código de arduino con las melodías programadas en!
http://www.phys-x.org/rbots/index.php?option=com_content&view=article&ID=66:Lesson-5-Play-Melody-with-piezo&catid=41:kits&Itemid=70

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

/ * Tocar melodía
* -----------
*
* Programa para tocar una melodía simple
*
* Tonos crean rápidamente pulsando un altavoz encendido y apagado
* uso de PWM, para crear frecuencias de firma.
*
* Cada nota tiene una frecuencia, creada mediante la variación del período de
* vibración, medida en microsegundos. Vamos a utilizar el ancho de pulso
* modulación (PWM) para crear esa vibración.

Calculamos el ancho de pulso para la mitad del período; nos del pulso
* el altavoz alta por microsegundos 'ancho de pulso' y luego baja
para el microsegundos de 'ancho de pulso'.
* Esta función crea una vibración de la frecuencia deseada.
*
* (hendidura) 2005 D. Cuartiella para K3
* Refactoring y comentarios clay.shirky 2006
* Ver notas en los comentarios al final para posibles mejoras
*/

// TONES  ==========================================
Comenzar por definir la relación entre
Nota, período y frecuencia.

período está en microsegundos que P = 1/f * (1E6)

#define c3 7634
#define d3 6803
#define e3 6061
#define f3 5714
#define g3 5102
#define a3 4545
#define b3 4049
#define c4 3816 / / 261 Hz
#define d4 3401 / / 294 Hz
#define e4 3030 / / Hz 329
#define f4 2865 / / 349 Hz
#define g4 2551 / / 392 Hz
#define a4 2272 / / 440 Hz
#define a4s 2146
#define b4 2028 / / 493 Hz
#define c5 1912 / / 523 Hz
#define d5 1706
#define d5s 1608
#define e5 1517
#define f5 1433
#define g5 1276
#define a5 1136
#define a5s 1073
#define b5 1012
#define c6 955

Definir una nota especial, 'R', para representar a un descanso
#define R 0

// SETUP ============================================
Configurar el altavoz en un perno PWM (digital 9, 10 u 11)
int speakerOut = 9;
¿Queremos depuración en serie hacia fuera? 1 para sí, 0 no
int DEBUG = 1;

void setup() {}
pinMode (speakerOut, salida);
Si {} (DEBUG)
Serial.Begin(9600); Conjunto serie hacia fuera si queremos depurar
}
}

MELODÍA y el momento ===
[melodía] es un conjunto de notas, acompañada de golpes [],
que establece la longitud relativa de cada nota (# más, más Nota)
tema de Star wars
melodía de int [] = {f4, f4, f4, a4s, f5, d5s, d5, c5, a5s, f5, d5s, d5, c5, a5s, f5, d5s, d5, d5s, c5} ;//
beats de int [] = {21, 21, 21, 128, 128, 21, 21, 21, 128, 64, 21, 21, 21, 128, 64, 21, 21, 21, 128};

depuración de nota
melodía de int [] = {c4, d4, e4, f4, g4, a4, b4, c5};
beats de int [] = {63, 64, 64, 64, 64, 64, 64, 64};

Super tema de mario
melodía de int [] = {e5, e5, R, e5, R, c5, e5, R, g5, g4, R, R, R R, R, R, c5, R, R, g4, R, R, e4};
beats de int [] = {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 8, 16, 16};

int número = sizeof(melody) / 2; Longitud de la melodía, para bucle.

Set global tempo
largo tempo = 10000;
Duración de pausa entre las notas
int pausa = 1000;
Variable de bucle para aumentar la longitud del resto
int rest_count = 50; <-BLETCHEROUS HACK; Ver notas

Inicializar las variables de la base
int toneM = 0;
vencer a int = 0;
duración = 0;

// PLAY TONE  ==============================================
El altavoz para reproducir un tono para una particular duración de pulso
{} void playTone()
largo elapsed_time = 0;
Si (toneM > 0) {/ / si esto no es un ritmo de descanso, mientras que el tono tiene
jugado menos tiempo de 'duración', altavoz de pulso alto y bajo
mientras que (elapsed_time < duración) {}

digitalWrite(speakerOut,HIGH);
delayMicroseconds(toneM / 2);

ABAJO
digitalWrite (speakerOut, bajo);
delayMicroseconds(toneM / 2);

Hacer un seguimiento de cuánto tiempo hemos pulsado
elapsed_time += (toneM);
}
}
Else {/ / resto vencer; tiempos de loop retrasan
para (int j = 0; j < rest_count; j ++) {/ / ver nota en rest_count
delayMicroseconds(duration);
}
}
}

DEJE QUE COMIENCE EL WILD RUMPUS ===
void loop() {}
Configurar un contador para tirar de [melodía] y [golpes]
para (int i = 0; i < número; i ++) {}
toneM = la melodía [i];
batir = beats [i];

duración = beat * tempo; Configurar la sincronización

playTone();
Una pausa entre las notas...
delayMicroseconds(pause);

Si (depurar) {/ / si depuración, Informe lazo, tono, ritmo y la duración
Serial.Print(i);
Serial.Print(":");
Serial.Print(Beat);
Serial.Print("");
Serial.Print(toneM);
Serial.Print("");
Serial.println(Duration);
}
}
}

/*
* NOTAS
* El programa pretende mantener un tono de microsegundos de 'duración'.
* Mentiras mentiras mentiras! Lleva a cabo para al menos microsegundos de 'duración', _plus_
* cualquier sobrecarga creado por elapsed_time incremeting (podría ser en exceso de
* 3 K microsegundos) _plus_ sobrecarga de bucle y dos digitalWrites() de
*
* Como resultado, mucho más lentamente que un resto se escuchará un tono de 'duración'
* de' duración' rest_count crea una variable de bucle para dar golpes de 'descanso'
* en línea con beats 'tono' de la misma longitud.
*
* rest_count se verán afectadas por la arquitectura de viruta y la velocidad, así como
* sobrecarga de cualquier mods del programa. Comportamiento pasado no es garantía de futuro
rendimiento. Su kilometraje puede variar. Fusible luz y escapar.
*
* Esto puede utilizar una serie de mejoras:
* AGREGAR código para dejar que el programador especifique cuantas veces la melodía debe
* lazo antes de parar
* AGREGAR otra octava
* HACIA tempo, pausa y rest_count declaraciones de #define
* Vuelva a escribir incluir volumen, usando analogWrite, como con el segundo programa en
* http://www.arduino.cc/en/Tutorial/PlayMelody
* Añadir código para que el tempo configurables por pot u otro dispositivo de entrada
* Agregue código para tomar ritmo o volumen configurable por comunicación serial
* (Requiere 0005 o superior.)
* Agregue código para crear un desplazamiento de tono (superior o inferior) a través de olla etc.
* REEMPLAZAR la melodía al azar con la apertura de bares a 'Humo sobre el agua'
* /

Artículos Relacionados

Sistema de altavoz estéreo

Sistema de altavoz estéreo

he visto el instructables en la fabricación de un solo altavoz, pero estoy mostrando cómo hice una versión estérea. Este es mi primer comentarios instructable, tan constructiva y positiva se da la bienvenida.Elementos necesarios:1 par de tenazas1 par
Reemplazo de baterías de NiCad aviones con nuevas pilas secas!

Reemplazo de baterías de NiCad aviones con nuevas pilas secas!

Cuando las baterías de NiCad 15 años de edad en su avión personal de G.A. están empezando a morir y no carga correctamente, aquí es un Hack impresionante que puede hacer su gusto inestable avión es nuevo otra vez!Paso 1: Lo que empezar con: Un montón
Sonido efectos Laser por

Sonido efectos Laser por

¿Qué se supone que son estos efectos de sonido impulsado por láser?Estos efectos del láser se obtienen colocando un espejo en posiciones específicas en un altavoz mientras que la introducción de ciertas frecuencias a este emisor de sonido y con el ob
¿Construir los mejores auriculares que el dinero puede comprar para menos de $100 (también protección para los oídos)

¿Construir los mejores auriculares que el dinero puede comprar para menos de $100 (también protección para los oídos)

cómo construir uno de los mejores auriculares maldito posible? Ciertamente no es firma de músicos y poner logotipos grandes en el lado. En su lugar, comenzar con auriculares grado militar, las personas de tipo usan en portaaviones o gritando a través
Hi-Fi DIY: Altavoces WiBAQ

Hi-Fi DIY: Altavoces WiBAQ

una de las mejores maneras de ahorrar dinero en su sistema estéreo y aún obtener el mejor sonido es hacer sus propios altavoces. Hay muchas direcciones para ir; Multimodo (utilizando más de un conductor por altavoz) o conductor solo y entonces allí s
PureTone: Hacking una Radio para un estudiante consciente Enviromentaly

PureTone: Hacking una Radio para un estudiante consciente Enviromentaly

/ * definiciones de estilos * / tabla. MsoNormalTable {mso-estilo-name: "Tabla Normal"; mso-tstyle-rowband-tamaño: 0; mso-tstyle-colband-tamaño: 0; mso-estilo-noshow:yes; mso-estilo-prioridad: 99; mso-estilo-parent: ""; mso-padding-alt
DuoPhones (auriculares y auriculares de protección en uno!)

DuoPhones (auriculares y auriculares de protección en uno!)

Hacer gran ruido cancelación auriculares rivalizando con esos molestos golpes caros frágil por Dr. Dre por sólo $20! Sigue leyendo...Paso 1: materiales 1. protección para los oídos, costo entre $10-$20. La marca Peltor es un poco mejor, tiene un bord
Altavoz de la placa de espuma de poliestireno

Altavoz de la placa de espuma de poliestireno

obtener resultados sorprendentemente buenos de picnicware desechable! Una placa de espuma de poliestireno ordinario se convierten en un altavoz de sonido decente. Diseño original del proyecto de Jose Pino. Ver resultados de la prueba en el video.Paso
Cómo refoam un altavoz sin espuma (forma barata)

Cómo refoam un altavoz sin espuma (forma barata)

Hola gentesí este es mi primer instructable. bla bla bla sabes el taladro.15 años de edad i "m no hablante nativo de inglés soy de Holanda.Aquí vamosvoy a tener que arreglar el altavoz surroundless.algunas estadísticas:calidad: 100%roto de calidad su
Construir su propio altavoz desde cero!

Construir su propio altavoz desde cero!

Después de tropezar en un par de tutoriales decidí que me gustaría tratar y construir mi propio altavoz. Este intento tuvo éxito y me sorprendió en cuanto realmente jugado. Esto es muy divertido y se puede construir para nada.También es realmente gra
Cómo quitar una rejilla de altavoz estéreo fijo

Cómo quitar una rejilla de altavoz estéreo fijo

todos sabemos la frustración: altavoces estéreo perfectamente buenos calidad van malos, o se estropean.Y especialmente los oradores sellados todo en común no permite absolutamente ningún acceso, desde la parrilla delantera ni la trasera.¿Bueno, en In
Espuma de almohadillas para auriculares

Espuma de almohadillas para auriculares

Tengo un reproductor de audio en mi mesita de noche. Los acolchados de espuma soltarse después de un año o dos y salen muy fácilmente. El altavoz del auricular es muy incómodo en mi oído cuando entre mi oreja y la almohada con sin plataforma. Decidí
Altavoz móvil épico DJ S.M.I.L.E/

Altavoz móvil épico DJ S.M.I.L.E/

!!!!!!! ¡ RECUERDE VOTAR EN LA ESQUINA SUPERIOR DERECHA! AYUDA TODO EL APOYO!!!P.S. Demuestra su apoyo a través de comentarios! Si quieres, deja un comentario! ¡ Gracias! :)Es DJ S.M.I.LE.! Esto es bastante divertido. Es una especie de altavoz móvil,
Hacer su propia distorsión caja altavoz!

Hacer su propia distorsión caja altavoz!

Hola a todos.Abhay y Akshay aquí.Hace ya mucho tiempo hemos publicado un tutorial de paso completo, así que hoy vamos a hacer un impresionante altavoz que suena bien y puede distorsionar el sonido si da alto voltaje o energía extra.Nosotros no hemos