Juego el francés puede poder utilizando un Arduino y un zumbador (10 / 11 paso)

Paso 10: Mejorar, texturizar, danza!

Ahora que el Arduino juega el que puede puede, es tiempo de terminar con delicadeza!

Para hacer las cosas más interesantes, la función playNote() en el código siguiente toca cada nota en 4 octavas, la secuencia a través de octavas rápidamente para dar una textura interesante al sonido. Además, se han añadido 4 modos para jugar el curso principal de Can Can en los patrones de octavas diferentes. Las posibilidades son casi ilimitadas. Pruébalo y disfruta!

---copia después de esta línea---

Función de ejemplo de timbre para el timbre de CEM-1203 (de Sparkfun parte #COM-07950).
por Rob Faludi
http://www.Faludi.com

Adiciones por Christopher Stevens
http://www.christopherstevens.cc

referencia de http://www.phy.mtu.edu/~suits/notefreqs.html
a partir de F noteFreqArr [1]
int noteFreqArr [] = {}
49.4 52.3, 55.4, 58.7, 62.2, 65.9, 69.9, 74, 78.4, 83.1, 88, 93.2,
98.8, 105, 111, 117, 124, 132, 140, 148, 157, 166, 176, 186,
198, 209, 222, 235, 249, 264, 279, 296, 314, 332, 352, 373,
395, 419, 444, 470, 498, 527, 559, 592, 627, 665, 704, 746,
790 837, 887, 940, 996, 1050, 1110, 1180, 1250, 1320, 1400, 1490,
1580, 1670, 1770, 1870, 1990, 2100};

modo largo = 0;

void setup() {}
pinMode (4, salida); configurar un pin de salida de zumbador
}

void playNote (noteInt largo, longitud, modo largo, largo aliento = 25) {}
longitud = longitud - respiración;

noteInt2 largo = noteInt + 12; 1 octava arriba
noteInt3 largo noteInt = 24; 2 octavas arriba
noteInt4 largo = noteInt + 36; 3 octavas hacia arriba

playLoop largo = longitud / 100; dividir la longitud por 4, para el uso en secuencia del juego

if(Mode == 0) {//mode 0 secuencia
para (largo i = 0; i < playLoop; i ++) {}
Buzz (4, noteFreqArr [noteInt], 20);
Delay(5);
Buzz (4, noteFreqArr [noteInt2], 20);
Delay(5);
Buzz (4, noteFreqArr [noteInt3], 20);
Delay(5);
Buzz (4, noteFreqArr [noteInt4], 20);
Delay(5);
}
} else if(mode == 1) {//mode 1 secuencia
para (largo i = 0; i < playLoop; i ++) {}
Buzz (4, noteFreqArr [noteInt3], 20);
Delay(5);
Buzz (4, noteFreqArr [noteInt4], 20);
Delay(5);
Buzz (4, noteFreqArr [noteInt3], 20);
Delay(5);
Buzz (4, noteFreqArr [noteInt4], 20);
Delay(5);
}
} else if(mode == 2) {//mode 2 secuencia
para (largo i = 0; i < playLoop; i ++) {}
Buzz (4, noteFreqArr [noteInt3], 20);
Delay(5);
Buzz (4, noteFreqArr [noteInt3], 20);
Delay(5);
Buzz (4, noteFreqArr [noteInt3], 20);
Delay(5);
Buzz (4, noteFreqArr [noteInt2], 20);
Delay(5);
}
} else if(mode == 3) {//mode 3 secuencia
para (largo i = 0; i < playLoop; i ++) {}
Buzz (4, noteFreqArr [noteInt4], 40);
Delay(5);
Buzz (4, noteFreqArr [noteInt2], 40);
Delay(5);
}
}
if(Breath > 0) {//take una breve pausa o 'aliento' si se especifica
Delay(Breath);
}
}

void loop() {}
plato principal
playNote (12, 500, modo);

playNote (5, 1000, modo);
playNote (7, 250, modo);
playNote (10, 250, modo);
playNote (9, 250, modo);
playNote (7, 250, modo);
playNote (12, 500, modo);
playNote (12, 500, modo);
playNote (12, 250, modo);
playNote (14, 250, modo);
playNote (9, 250, modo);
playNote (10, 250, modo);
playNote (7, 500, modo);
playNote (7, 500, modo);
playNote (7, 250, modo);
playNote (10, 250, modo);
playNote (9, 250, modo);
playNote (7, 250, modo);
playNote (5, 250, modo);
playNote (17, 250, modo);
playNote (16, 250, modo);
playNote (14, 250, modo);
playNote (12, 250, modo);
playNote (10, 250, modo);
playNote (9, 250, modo);
playNote (7, 250, modo);

playNote (5, 1000, modo);
playNote (7, 250, modo);
playNote (10, 250, modo);
playNote (9, 250, modo);
playNote (7, 250, modo);
playNote (12, 500, modo);
playNote (12, 500, modo);
playNote (12, 250, modo);
playNote (14, 250, modo);
playNote (9, 250, modo);
playNote (10, 250, modo);
playNote (7, 500, modo);
playNote (7, 500, modo);
playNote (7, 250, modo);
playNote (10, 250, modo);
playNote (9, 250, modo);
playNote (7, 250, modo);
playNote (5, 250, modo);
playNote (12, 250, modo);
playNote (7, 250, modo);
playNote (9, 250, modo);
playNote (5, 250, modo);
Delay(250);

if(Mode == 0) {}
modo = 1;
} else if(mode == 1) {}
modo = 2;
} else if(mode == 2) {}
Mode = 3;
} else if(mode == 3) {}
modo = 0;
}
}

{} void buzz (int targetPin, frecuencia largo, longitud)
delayValue largo = 1000000/frecuencia/2; calcular el valor de retardo entre las transiciones
1 segundo 's valor de microsegundos, divididos por la frecuencia, luego dividir por la mitad desde
Hay dos fases en cada ciclo
numCycles largo = frecuencia * longitud / 1000; calcular el número de ciclos de tiempo adecuado
multiplicar la frecuencia, que es realmente ciclos por segundo, por el número de segundos para
obtener el número total de ciclos para producir
para (largo i = 0; i < numCycles; i ++) {/ / de la longitud calculada del tiempo...
digitalWrite(targetPin,HIGH); escribo el pin del zumbador para empujar el diafragma
delayMicroseconds(delayValue); Espere a que el valor de retardo calculado
digitalWrite(targetPin,LOW); Escriba el pin de zumbador baja a tire hacia atrás del diafragma
delayMicroseconds(delayValue); againf de espera o el valor de retardo calculado
}
}

---copiar antes de esta línea---

Todo terminado! Ahora en el piso, escenario o mobiliario de elección y celebrar con danza!

Artículos Relacionados

Conceptos básicos de convertir su vehículo de control remoto en un sistema autónomo (abejón) utilizando un Arduino

Conceptos básicos de convertir su vehículo de control remoto en un sistema autónomo (abejón) utilizando un Arduino

comencé este proyecto con el objetivo de convertir barato mi RC helicóptero en algo de un UAV o al menos para algunos sensores para reducir las colisiones y otros "haps mal."Ahora por desgracia al principio del proyecto calcularon mal las capaci
Podómetro de Arduino

Podómetro de Arduino

problema: así que mi nutricionista (no todo el mundo tiene un nutricionista) sugerido debo aumentar mi ejercicio que principalmente consiste en pasear a mi perro. Incluso me dio una tabla de actividades y calorías quemadas. Aquí es un ejemplo.http://
Lecciones aprendidas edificio mientras que una inútil caja utilizando un Arduino y un Instructable

Lecciones aprendidas edificio mientras que una inútil caja utilizando un Arduino y un Instructable

Por lo tanto, he encontrado un Instructable en el sitio que parecía bastante bueno. Verás, quería aprovechar el poder de un Arduino para ejecutar un cuadro inútil. Que iba a construir y programar usando el Instructable encontré en el sitio. No sólo e
Puzzlebox órbita: Utilizando un Arduino para controlar un helicóptero infrarrojo

Puzzlebox órbita: Utilizando un Arduino para controlar un helicóptero infrarrojo

en este Instructable vamos a explicar cómo las señales de infrarrojos son utilizados por un control remoto para controlar un juguete o dispositivo, a continuación, demuestran cómo un simple circuito se puede Agregar a un Arduino para manejar el mismo
Cómo capturar codigos de control remoto utilizando un Arduino y un IRreceiver

Cómo capturar codigos de control remoto utilizando un Arduino y un IRreceiver

En este instructable mostraré cómo escribir un pequeño código para capturar los códigos de control remoto en valores hexadecimales y decimales.Esto lo haremos usando al serial monitor que está integrado en el IDE de Arduino.Esto le dará a conocer una
Android controla luces y poder, pfodDevice para Arduino

Android controla luces y poder, pfodDevice para Arduino

Actualización: Ver Andriod/Arduino para principiantes - diseño personalizado Andriod menús para activar salidas de Arduino y apagado. Absolutamente ninguna programación requerida para una alternativa que no requiere ninguna programación en todos.====
Construir un Robot sencillo utilizando un Arduino y un L293 (Puente H)

Construir un Robot sencillo utilizando un Arduino y un L293 (Puente H)

Hola amigos, este es mi primer instructivo y estoy aquí para demostrar cómo construir un robot sencillo con un poco de Arduino programación no te preocupes, he adjuntado el archivo de código a continuación, se puede utilizar para la referencia.Aquell
Serial Servo Controller w/Arduino - Control hasta 12 Servos a la vez utilizando el Arduino y una conexión USB

Serial Servo Controller w/Arduino - Control hasta 12 Servos a la vez utilizando el Arduino y una conexión USB

voy a mostrarle cómo usar el Arduino para controlar hasta 12 servos a la vez con variación mínima.  Mediante una sencilla interfaz serial puede controlar la posición del servo hasta 12 canales.  Hasta 10 posiciones instantáneas se puede guardar y rep
Utilizando un Arduino y Python para parcela/guardar datos

Utilizando un Arduino y Python para parcela/guardar datos

una manera rápida y fácil de ver (y guarde) datos extraídos utilizando un Arduino a tu ordenador.(Nota: no es el método más sólido, pero funciona bastante bien)Materiales:-Arduino (estoy usando un Uno)-Ordenador (tengo un Dell, pero no importa si est
Utilizando un Arduino para cargar un DS lite

Utilizando un Arduino para cargar un DS lite

Este instructable es para una ds lite utilizando un Arduino y dos cables de carga. Este también es mi primer instructivo, así que no puede ser lo mejor posible. :)Aviso: no soy responsable por cualquier daño hecho a tu ds, por favor, trabajo con cuid
Detector de campo electromagnético utilizando un Arduino

Detector de campo electromagnético utilizando un Arduino

Dispositivo electrónico nunca emite una cierta cantidad de campos electromagnéticos y podemos utilizar esta radiación para aprender algunas cosas sobre el circuito.En la actualidad instructable voy a mostrar cómo construir tu propio medidor de campo
Inalámbrico de control remoto utilizando NRF24L01 de 2,4 Ghz: sencillo Tutorial utilizando NRF24L01 & Arduino

Inalámbrico de control remoto utilizando NRF24L01 de 2,4 Ghz: sencillo Tutorial utilizando NRF24L01 & Arduino

Hola a todos este es mi segundo instructable. Después de mucho surf en GOOGLE cuando wont capaces de encontrar un fácil y sencillo tutorial para NRF24L01 transceptor entonces decidió publicar un instructable sobre esto. Este es un simple tutorial cor
Brazo robótico móvil utilizando PHIRO + Arduino

Brazo robótico móvil utilizando PHIRO + Arduino

Estamos de vuelta con otro tutorial para mostrar cómo convertir PHIRO Pro en un brazo robótico móvil fresco que puede elegir y poner cosas! Similar a nuestra anterior PHIRO Arduino Color sensor instructable, vamos a utilizar Código de bolsillo en un
Construcción de juegos retro moderno PC AMD Nintendo utilizando piezas nuevas y viejas

Construcción de juegos retro moderno PC AMD Nintendo utilizando piezas nuevas y viejas

OK, por lo que he leido muchos de los instructables aquí sobre la construcción de un PC utilizando una Nintendo NES como donante para el caso. Han construido muy pocos PCs en los últimos 10 años, pero estoy siempre buscando hacer algo un poco diferen