Arduino Music Box: 3 pasos

Arduino Music Box: 3 pasos

Tabla de contenido:

Anonim

El Arduino Music Box se basa en uno de los primeros proyectos para el Arduino y el piezo (un altavoz) que es pequeño y que solo se conecta a la placa base. En este proyecto, voy a usar un par de altavoces viejos que En realidad, obtuve gratis en un evento. Este es un proyecto muy fácil para principiantes que quieren sumergirse en el mundo de la electrónica. También voy a crear un estuche que se ajuste perfectamente a los altavoces y al Arduino, ya que tengo una impresora 3D disponible, pero esto es solo opcional. Para este proyecto necesitarás estas partes:

  • Arduino Uno
  • Breadboard de tamaño mediano
  • 4 cables de puente macho a macho de 7.5 pulgadas
  • 2 cables de puente macho a macho de 3,5 pulgadas
  • Un par (o solo uno) de hablantes

Y estas herramientas:

  • Computadora que ejecuta Windows, OS X o Linux que tiene instalado el software Arduino IDE
  • Cable USB A a B

Suministros:

Paso 1: Obtener los oradores

Encontré este viejo par de altavoces que estaban realmente encerrados en cartón, así que me fue muy fácil sacar los altavoces, pero si los tuyos están encerrados en plástico, solo tiene que desenroscar el gabinete. Cuando saque los altavoces que desea corte el enchufe. Guarde todos los tornillos y el enchufe para más proyectos.

Paso 2: pelando los cables y conectándolos al Arduino

El paso del nido es pelar los cables con un pelador de cables si tiene un par, pero, de lo contrario, solo puede usar tijeras y no demasiada fuerza para sobresalir del apantallamiento de goma, pero no de los cables. A continuación, debemos colocar los cables de colores. dispare. Sí, los fabricantes utilizan una codificación que no conduce la electricidad para que los altavoces no funcionen. ¡Observe cómo se enciende el cable y asegúrese de no prender fuego a la goma! Luego, solo puede torcer temporalmente los cables del altavoz a los cables de puente. El cable marrón dorado va a tierra y el cable azul o rojo va al pin 3.

Paso 3: ¡Terminando!

Lo último que debe hacer es repetir lo mismo con el otro altavoz y luego conectar ambos cables marrón dorado al mismo riel en la placa de pruebas y lo mismo para los cables rojo y azul. Finalmente, puede conectar un cable de puente de 3.5 pulgadas desde el riel de color al pin 3 y el riel de tierra al pin GND en el Ardiuno. Y eso es todo. Aquí hay un hermoso código que he recibido de http: // www.princetronics.com / Espero que hayas disfrutado este proyecto. ¡Oye!

/*

Arduino Mario Bros Tunes con piezo zumbador y PWM Conecte el lado positivo del zumbador al pin 3, luego el lado negativo a una resistencia de 1 kohm. Conecte el otro lado del pin de resistencia de 1 kohm a tierra (GND) en el Arduino. por: Dipto Pratyaksa última actualización: 31/3/13 * / / *********************************** ************** * Constantes públicas ********************************* **************** / #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 # define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 definir NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 33 0 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494lucina de la Calla de la Cerveza. define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #Control para que se celebre el evento en el hogar. 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7_contactos_pina_c7_pel.pel.inclúltimo! defina NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 468 #define NOTE_C8 lodyPin 3 // Tema principal de Mario melodía int melodía = {NOTE_E7, NOTE_E7, 0, NOTE_E7, 0, NOTE_C7, NOTE_E7, 0, NOTE_G7, 0, 0, 0, NOTE_G6, 0, 0, 0, 0, NOTE_C7, 0, 0, NOTE_G6, 0, 0, NOTE_E6, 0, 0, NOTE_A6, 0, NOTE_B6, 0, NOTE_AS6, NOTE_A6, 0, NOTE_G6, NOTE_E7, NOTE_G7, NOTE_A7, 0, NOTE_F7, NOTE_G7, 0, NOTE_E7, 0, NOTE_C7, NOTE_D7, NOTE_B6, 0, 0,NOTE_C7, 0, 0, NOTE_G6, 0, 0, NOTE_E6, 0, 0, NOTE_A6, 0, NOTE_B6, 0, NOTE_AS6, NOTE_A6, 0, NOTE_G6, NOTE_E7, NOTE_G7, NOTE_A7, 0, NOTE_F7, NOTE_G7, 0, NOTE_E7, 0, NOTE_C7, NOTE_D7, NOTE_B6, 0, 0}; // Mario main tempo int tempo = {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,}; // Underworld melody int underworld_melody = {NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0, 0, NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_A4, CONTACTO_A4, 3_F4, Y_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_4_04_04_02 NOTE_DS3, NOTE_DS4, 0, 0, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, NOTE_DS3, NOTE_DS4, 0, NOTE_DS4, NOTE_CS4, Thank_GS3,Pack_P4P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.! NOTE_AS4, NOTE_A4, NOTE_GS4, NOTE_DS4, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_GS3, 0, 0, 0}; // Underwolrd tempo int underworld_tempo = {12, 12, 12, 12, 12, 12, 6, 3, 12, 12, 12, 12, 12, 6, 3, 12, 12, 12, 12, 12, 12, 6, 3, 12, 12, 12, 12, 12, 6, 6, 18, 18, 18, 6, 6, 6, 6, 6, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 3, 3, 3}; configuración de void (void) {PinMode (3, OUTPUT); // buzzer pinMode (13, OUTPUT); // indicador luminoso cuando se canta una nota} void loop () {// sing the tunes sing (1); cantar (1); cantar (2); } int song = 0; void sing (int s) {// iterar sobre las notas de la melodía: song = s; if (song == 2) {Serial.println ("'Underworld Theme'"); int size = sizeof (underworld_melody) / sizeof (int); para (int thisNote = 0; thisNote <size; thisNote ++) {// para calcular la duración de la nota, tome un segundo // dividido por el tipo de nota. //p.ej. cuarto de nota = 1000/4, octava nota = 1000/8, etc. int noteDuration = 1000 / underworld_tempo thisNote; buzz (melodyPin, underworld_melody thisNote, noteDuration); // para distinguir las notas, establecer un tiempo mínimo entre ellas. // la duración de la nota + 30% parece funcionar bien: int pauseBetweenNotes = noteDuration * 1.30; retraso (pauseBetweenNotes); // Detener la reproducción del tono: buzz (melodyPin, 0, noteDuration); }} else else {Serial.println ("'Mario Theme'"); int size = sizeof (melody) / sizeof (int); para (int thisNote = 0; thisNote <size; thisNote ++) {// para calcular la duración de la nota, tome un segundo // dividido por el tipo de nota. //p.ej. cuarto de nota = 1000/4, octava nota = 1000/8, etc. int noteDuration = 1000 / tempo thisNote; buzz (melodyPin, melody thisNote, noteDuration); // para distinguir las notas, establecer un tiempo mínimo entre ellas. // la duración de la nota + 30% parece funcionar bien: int pauseBetweenNotes = noteDuration * 1.30; retraso (pauseBetweenNotes); // Detener la reproducción del tono: buzz (melodyPin, 0, noteDuration); }}} void buzz (int targetPin, long frequency, long length) {digitalWrite (13, HIGH); valor de retardo largo = 1000000 / frecuencia / 2; // calcule el valor de retardo entre transiciones //// el valor de 1 segundo de microsegundos, dividido por la frecuencia, luego divídalo a la mitad, ya que //// hay dos fases en cada ciclo. Ciclos largos = frecuencia * longitud / 1000; // calcule el número de ciclos para la sincronización adecuada //// multiplique la frecuencia, que es realmente ciclos por segundo, por el número de segundos para //// obtener el número total de ciclos para producir (long i = 0; i <numCycles; i ++) {// para el tiempo calculado … digitalWrite (targetPin, HIGH); // escriba el pin del zumbador alto para expulsar el diafragmaMicrosegundos (delayValue); // espera el valor de retardo calculado digitalWrite (targetPin, LOW); // escriba el pin del zumbador bajo para retirar el diafragmaMicrosegundos (delayValue); // espere de nuevo o el valor de retardo calculado} digitalWrite (13, LOW); }