Generador de tono de Arduino feliz cumpleaños (3 / 4 paso)

Paso 3: código

El código se encuentra a continuación usted puede copiar y pegar en el IDE de Arduino.

 #include // requires an Atmega168 chip #define outpin 9 // audio out to speaker or amp int ptime; int k, x, dur, freq, t; int i, j;float ps; // variable for pow pitchShift routinefloat noteval;// note values for two octave scale // divide them by powers of two to generate other octaves float A = 14080; float AS = 14917.2; float B = 15804.3; float C = 16744; float CS = 17739.7; float D = 18794.5; float DS = 19912.1; float E = 21096.2; float F = 22350.6; float FS = 23679.6; float G = 25087.7; float GS = 26579.5; float A2 = 28160; float A2S = 29834.5; float B2 = 31608.5; float C2 = 33488.1; float C2S = 35479.4; float D2 = 37589.1; float D2S = 39824.3; float E2 = 42192.3; float F2 = 44701.2; float F2S = 47359.3; float G2 = 50175.4; float G2S = 53159; float A3 = 56320;//octaves - corresponds to piano octaves float oct8 = 4; float oct7 = 8; float oct6 = 16; float oct5 = 32; float oct4 = 64; float oct3 = 128; float oct2 = 256; float oct1 = 512; float oct0 = 1024;//rhythm values int wh = 1024; int h = 512; int dq = 448; int q = 256; int qt = 170; int de = 192; int e = 128; int et = 85; int dsx = 96; int sx = 64; int thx = 32;// major scale just for demo, hack thisfloat happyBirthday[] = { G, 0, G, A2, 0, 0, G, 0, 0, C2, 0, 0, B2, 0, 0, 0, 0, 0, G, 0, G, A2, 0, 0, G, 0, 0, D2, 0, 0, C2, 0, 0, 0, 0, 0, G, 0, G, G2, 0, 0, E2, 0, 0, C2, 0, 0, B2, 0, 0, A2, 0, 0, F2, 0, F2, E2, 0, 0, C2, 0, 0, D2, 0, 0, C2, 0, 0, 0, 0, 0, };void setup() { pinMode(10, OUTPUT); // sets the digital pin as output pinMode(11, OUTPUT); // sets the digital pin as output pinMode(12, OUTPUT); // sets the digital pin as output pinMode(8, INPUT); // sets the digital pin as output } void loop(){ for(i= 0; i<=11; i++){ int value = HIGH; while (digitalRead(8) == LOW) { digitalWrite(10, value); delay(100); value = !value; }; ps = (float)i / 12; // choose new transpose interval every loop for(x= 0; x<=12*6; x++){ noteval = (happyBirthday[x] / oct4) * pow(2,ps); // transpose scale up 12 tones // pow function generates transposition // eliminate " * pow(2,ps) " to cut out transpose routine dur = 100; digitalWrite(10+(x&3), HIGH); digitalWrite(10+((x+1)&3), LOW); digitalWrite(10+((x+2)&3), LOW); if ((int)noteval > 0) { freqout((int)noteval, dur); } else { delay(100); } } } } void freqout(int freq, int t) // freq in hz, t in ms { int hperiod; //calculate 1/2 period in us long cycles, i; pinMode(outpin, OUTPUT); // turn on output pin hperiod = (500000 / freq) - 7; // subtract 7 us to make up for digitalWrite overhead cycles = ((long)freq * (long)t) / 1000; // calculate cycles for (i=0; i<= cycles; i++){ // play note for t ms digitalWrite(outpin, HIGH); delayMicroseconds(hperiod); digitalWrite(outpin, LOW); delayMicroseconds(hperiod - 1); // - 1 to make up for digitaWrite overhead } pinMode(outpin, INPUT); // shut off pin to avoid noise from other operations} 

Artículos Relacionados

Generador de tono de Arduino con pantalla LED

Generador de tono de Arduino con pantalla LED

Aquí es un simple Arduino bruja de proyecto se puede hacer con este DIY LED pantalla y algunas otras piezas baratas.Paso 1: Piezas y herramientasPiezas necesarias para este proyecto:(1) Arduino nano(2) pulsadores táctiles(2) resistentes a la de 10 K
Generador de tono de Arduino

Generador de tono de Arduino

La mejor manera de aprender sobre el Arduino es jugar con los ejemplos básicos en el IDE de Arduino. En este instructable voy a mostrarte cómo generar una melodía de un Arduino. Arduino puede no tener suficiente ram para escuchar música pero tiene su
Música del tono de Arduino

Música del tono de Arduino

Este es un proyecto de Arduino que usa el tono natural generando capacidad de Arduino para hacer música. Usted puede utilizar el dibujo para empezar a componer tu propia música! Hacerlo jugar 'Feliz cumpleaños' para un amigo. Verás cómo hacer música
Generador de tono de Tac TIC... y otras cosas...

Generador de tono de Tac TIC... y otras cosas...

Aquí es su próximo proyecto, denominado 'generador de sonido de Tic Tac - y otras cosas'. Se llama, porque es sobre todo otro tipo de oscilador. No es como el anterior circuito de prueba caja MVB - utiliza 2 transistores de oponerse a las polaridades
Banner de feliz cumpleaños Rosetti

Banner de feliz cumpleaños Rosetti

Hola,Quieres celebrar la fiesta de cumpleaños de tus seres queridos, dar sorpresa con banner de cumpleaños hecho en casa.Aquí es hermoso banner de cumpleaños le ayuda a añadir algo de color y fantasía para la fiesta de cumpleaños.Esta guirnalda está
Tarjeta del feliz cumpleaños

Tarjeta del feliz cumpleaños

tarjeta de cumpleaños feliz de la abejasuministros básicos.base de la tarjeta, papel de 1/2 pulgadas tiras de diversos colores, rotulador, pegamento, marcador tablero1 pegar tiras de papel con pegamento según el cuadro2. dibuje el círculo y el cuerpo
Minecraft para imprimir feliz cumpleaños Banner

Minecraft para imprimir feliz cumpleaños Banner

aquí tenemos una simple bandera de partido Minecraft feliz cumpleaños para imprimir.¿Cómo hacer tu propio banner de feliz cumpleaños de Minecraft?G haga clic las imágenes y guardar como.  Cada letra es A4 papel tamaño 210x297mm. Una vez que se imprim
Construir un generador de tonos - mejorar su encaje los circuitos mediante la adición de un temporizador 555 IC

Construir un generador de tonos - mejorar su encaje los circuitos mediante la adición de un temporizador 555 IC

en este artículo, aprenderás cómo mejorar tu colección de bloques de circuitos de presión mediante la adición de un temporizador 555 IC. Usted aprenderá las funciones de los pins en el chip 555. Aprenderás que cuando el 555 en modo astable, la salida
Generador de tono de Morse (beeper CW de baja potencia)

Generador de tono de Morse (beeper CW de baja potencia)

aquí se describe cómo construir un generador de tono simple energía baja que uso para enseñar a mi hijo alfabeto Morse.Mientras limpiar mi sótano encontré a mi viejo manipulador morse de la Wehrmacht. Este manipulador fue utilizado por las fuerzas al
Hágalo usted mismo 'Feliz cumpleaños U.S. Army!' Etiqueta engomada de la actividad

Hágalo usted mismo 'Feliz cumpleaños U.S. Army!' Etiqueta engomada de la actividad

Este año el ejército celebra su aniversario 239th! Durante el mes de junio, las celebraciones llevará a cabo en las instalaciones del ejército en todo el mundo. Queremos ser parte de la celebración por el ejército de lectura libro cumpleaños, "Feliz
Crear usted mismo ATMEGA128 un generador de tono simple

Crear usted mismo ATMEGA128 un generador de tono simple

Hola chicos,En este proyecto que quiero compartir mi experiencia sobre ATMEGA128 generando un tono simple,He creado 8 tonos (1 octava)Vamos a empezar!Paso 1: Preparar los componentes Vamos a preparar los componentes,Necesitamos:1. altavoz, acabo de c
Feliz cumpleaños Sis

Feliz cumpleaños Sis

Alguna vez solo tienes que cantar tu corazón hacia fuera para su hermana...Editado, filmado, escrito, grabado y realizado por: Shane Blair(Letras de abajo... Si realmente los necesita)Feliz cumpleaños.. Feliz cumpleaños.. Querida hermana feliz cumple
Feliz cumpleaños con Arduino

Feliz cumpleaños con Arduino

En primer lugar, gracias a bonniee, por su gran Illumaphone instructivo: Instrumento Musical basado en la luz con Arduino.Sólo mejoré para que sea como yo quiero.Este instructable le mostrará cómo tocar "Cumpleaños feliz" con un pequeño truco de
Generador de tono de tela microcontrolador en C código

Generador de tono de tela microcontrolador en C código

a finales de octubre del año pasado usuario de instructables carmitsu me envió un mensaje después de ver mi sintetizador de lonchera. De su mensaje:Doy clases de música en la escuela primaria. Jugamos un montón de música de la grabadora. es decir, lo