{"id":913,"date":"2020-02-04T14:22:09","date_gmt":"2020-02-04T19:22:09","guid":{"rendered":"https:\/\/www.electroallweb.com\/?p=913"},"modified":"2020-10-26T17:58:00","modified_gmt":"2020-10-26T22:58:00","slug":"como-reproducir-musica-o-sonido-con-arduino","status":"publish","type":"post","link":"https:\/\/www.electroallweb.com\/index.php\/2020\/02\/04\/como-reproducir-musica-o-sonido-con-arduino\/","title":{"rendered":"Como reproducir m\u00fasicas o sonidos con arduino"},"content":{"rendered":"<section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-2 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"vc_col-sm-10 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><strong><span style=\"color: #ff6600;\">S\u00cdGUENOS<\/span><\/strong><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-socials align_left style_solid color_brand index_1\" style=\"font-size:25px;\"><div class=\"w-socials-list\"><div class=\"w-socials-item facebook\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/www.facebook.com\/ELECTROALL.ELECTRONICA\/\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">Facebook<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>Facebook<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><div class=\"w-socials-item youtube\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/c\/ELECTROALL\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">YouTube<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>YouTube<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><div class=\"w-socials-item instagram\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/www.instagram.com\/electroall_\/\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">Instagram<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>Instagram<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><div class=\"w-socials-item github\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/github.com\/ELECTROALL\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">GitHub<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>GitHub<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5>INTRODUCCI\u00d3N<\/h5>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">Alguna vez te has preguntado ser\u00e1 posible reproducir sonidos, m\u00fasicas y grabaciones con arduino?, la repuesta es S\u00cd, hoy en d\u00eda gracias a los distintos tipos de comunicaci\u00f3n que tiene las tarjetas de Arduino es posible interactuar con varios dispositivos. Para este proyecto usaremos el <span style=\"color: #ff0000;\"><strong>m\u00f3dulo SD LVC125A<\/strong><\/span>, este dispositivo se puede usar para almacenar datos de temperatura, Humedad, luz, para mostrar im\u00e1genes, etc, etc. En esta oportunidad lo usaremos para reproducir sonidos, grabaciones y m\u00fasicas.<\/span><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5>MODULO SD (lvc125A)<\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-image\"><div class=\"w-image-h\"><img loading=\"lazy\" decoding=\"async\" width=\"503\" height=\"283\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/MODULO-SD-PARTS.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/MODULO-SD-PARTS.png 503w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/MODULO-SD-PARTS-300x169.png 300w\" sizes=\"(max-width: 503px) 100vw, 503px\" \/><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p style=\"text-align: justify;\"><span style=\"color: #000000;\">Antes que nada, tenemos que tener en cuenta que todos los dispositivos requieren una comunicaci\u00f3n determinada, desde lo m\u00e1s simple hasta lo m\u00e1s complejo. El m\u00f3dulo que se va a usar en este proyecto tiene la comunicaci\u00f3n ICSP (Programaci\u00f3n Serial En Circuito), lo cual comprende los pines de MOSI, MISO, SCK. Una vez identificado la comunicaci\u00f3n espec\u00edfica ahora se tendr\u00e1 que buscar un \u00b5C. Para este episodio usaremos las tarjetas de arduino que cuyo \u00b5C es de la familia ATmel.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">Por otro lado en el m\u00f3dulo SD se observa 2 dispositivos extras diferente a la tarjeta SD.<br \/>\n<\/span><br \/>\n<span style=\"color: #000000;\"><strong>&#8211; <span style=\"color: #ff0000;\">REGULADOR DE VOLTAJE (AMS 1117 5.0)<\/span><\/strong>; Este dispositivo regula el voltaje de 5 a 3.3V, este nivel de voltaje de 3.3V es indispensable porque la tarjeta\u00a0 \u00a0 SD <\/span><span style=\"color: #000000;\">\u00a0trabaja como esta ca\u00edda de tensi\u00f3n, de lo contrario terminar\u00eda quem\u00e1ndose.<\/span><br \/>\n<span style=\"color: #000000;\">&#8211;<span style=\"color: #ff0000;\"><strong> CI LVC125<\/strong><\/span>, de igual manera este dispositivo se encarga de reducir el voltaje de las se\u00f1ales de 5V de \u00b5C a 3.3V para la tarjeta SD.<\/span><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n[vc_empty_space height=&#8221;12px&#8221;]\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><span style=\"color: #ff6600;\"><strong>NOTA IMPORTANTE!!<\/strong><\/span><\/p>\n<p style=\"text-align: justify; padding-left: 40px;\"><span style=\"color: #000000;\">Seguramente en un inicio pensaste copiar m\u00fasicas, sonidos o grabaciones en formato mp3 como normalmente se suele hacer. Si se realiza de esa manera no podremos reproducir ning\u00fan tipo de sonido, esto se debe a que el \u00b5C de arduino no est\u00e1 dise\u00f1ado propiamente para reproducir m\u00fasica ni nada por el estilo y que ademas de ello los archivos en formato .mp3 es demasiado pesado\u00a0 para el microcontrolador. Sin embargo, existen varios tipos de formatos que pesan menos, tal es el caso del formato .WAV. Entonces para este proyecto es necesario convertir los sonidos que est\u00e1n en .mp3 al formato .WAV.<\/span><\/p>\n<p style=\"text-align: justify; padding-left: 40px;\"><span style=\"color: #000000;\">En internet se puede encontrar varios tipos de convertidores de formatos. Para convertir los formatos a .WAV se tiene que tener en cuenta algunas caracter\u00edsticas:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"text-align: justify;\"><span style=\"color: #000000;\">Formato\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 =\u00a0 <span style=\"color: #008080;\"><strong>.WAV<\/strong><\/span><\/span><\/li>\n<li style=\"text-align: justify;\"><span style=\"color: #000000;\">Velocidad de muestreo = <strong><span style=\"color: #008080;\">16000hz<\/span><\/strong><\/span><\/li>\n<li style=\"text-align: justify;\"><span style=\"color: #000000;\">Profundidad de bits\u00a0 \u00a0 \u00a0 =<strong><span style=\"color: #008080;\"> 8bits<\/span><\/strong><\/span><\/li>\n<li style=\"text-align: justify;\"><span style=\"color: #000000;\">Canales\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = <span style=\"color: #008080;\"><strong>mono<\/strong><\/span><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"padding-left: 80px;\"><a href=\"https:\/\/github.com\/ELECTROALL\/DISE-OS-RPOYECTOS-\/blob\/master\/audios%20del%20video.rar\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: #0000ff;\"><strong>DESCARGAR AUDIOS DE PRUEBA<\/strong><\/span><\/a><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5>CONEXIONES<\/h5>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-image\"><div class=\"w-image-h\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/circuito-protoboard-Ff.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/circuito-protoboard-Ff.png 1024w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/circuito-protoboard-Ff-300x169.png 300w, https:\/\/www.electroallweb.com\/wp-content\/uploads\/2020\/02\/circuito-protoboard-Ff-768x432.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5>FUNCIONAMIENTO<\/h5>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">Vamos a simular que nuestro proyecto est\u00e1 instalado en un control de parking de autos, donde uno de pulsadores controla el ingreso y el otro controla las salidas de los autos, cuyo estacionamiento solo puede alojar un m\u00e1ximo de 10 autos.\u00a0<\/span><br \/>\n<span style=\"color: #000000;\">Entonces nuestro parlante emite sonidos correspondientes de acuerdo al conteo respectivo y cuando llega a 10 emite un sonido (parqueo lleno).<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">Por otro lado, cabe mencionar que <strong>CI TDA7073<\/strong> es un\u00a0 amplificador de sonido, cuya funci\u00f3n es amplificar la se\u00f1al que sale del pin 9 del arduino y de esa manera podemos escuchar un sonido decente en el speaker.<\/span><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h5>CODIGO<\/h5>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">#include &lt;SD.h&gt;                \/\/incuimos las librer\u00e1s necesarias\r\n#include &lt;SPI.h&gt;              \r\n#include &lt;TMRpcm.h&gt; \/\/DESCARGAR LIBRER\u00cdA: https:\/\/github.com\/TMRh20\/TMRpcm\r\n\r\n#define SD_ChipSelectPin 4  \/\/ Seleccion del dispositivo SD\r\nTMRpcm Audio;  \r\n\r\nconst int  pulsador_asc = 2;    \/\/ pin 2 como entrada para el contador de pulsos \r\n                                   \/\/ ascendentes\r\nconst int  pulsador_des = 3;  \r\n\r\n\/\/VARIABLES PARA EL CONTADOR ASCENDIENTE\r\n\/\/ estas variables si puede ser cambiado\r\nint contador            = 0;   \/\/ contador para el numero de veces presinados\r\nint estado_pulsador_asc = 0;         \/\/ estado actual del pulsador\r\nint lastButtonState_asc = 1;     \/\/ estado anterior del pulsador\r\n\r\n\/\/VARIABLES PARA EL CONTADOR DESCENDIENTE\r\n\/\/ estas variables si puede ser cambiado\r\n\r\nint estado_pulsador_des = 0;         \/\/ estado actual del pulsador\r\nint lastButtonState_des = 1;         \/\/ estado anterior del pulsador\r\nint ult_audio=0;            \r\n\r\nvoid setup(){\r\n\r\n  pinMode(pulsador_asc, INPUT_PULLUP); \/\/Resistencia de pullup interna\r\n  pinMode(pulsador_des, INPUT_PULLUP); \/\/Resistencia de pullup interna\r\n\r\n  if (!SD.begin(SD_ChipSelectPin)) {  \/\/iniciamos la com con la SD respectivo\r\n        return;  \r\n  }\r\n  Audio.speakerPin = 9; \/\/Salida para el auido\r\n  Audio.quality(1); \r\n  Audio.setVolume(5); \r\n}\r\n\r\nvoid loop(){  \r\n  estado_pulsador_asc = digitalRead(pulsador_asc);\r\n  estado_pulsador_des = digitalRead(pulsador_des);\r\n\r\n  if (estado_pulsador_asc != lastButtonState_asc) {\r\n    if (estado_pulsador_asc == HIGH) {\r\n      contador++;\r\n      delay(100);\r\n    } \r\n  }\r\n lastButtonState_asc  = estado_pulsador_asc;\r\n   \/\/ comparar el estado del bot\u00f3n a su estado anterior\r\n  if (estado_pulsador_des != lastButtonState_des ) {\r\n    \/\/ si el estado fue cambiado, decrementa el conteo\r\n    if (estado_pulsador_des == HIGH) {\r\n      \/\/ si el estado actual es alto, entonces \r\n      \/\/ que pase de off a on:\r\n      contador--;\r\n      delay(100);\r\n    } \r\n  }\r\n\r\n  lastButtonState_des  = estado_pulsador_des;\r\n\r\n  if(contador != ult_audio){\r\n   switch(contador)\r\n   {\r\n            case 1: Audio.play(\"1.wav\"); \r\n      break;\r\n            case 2: Audio.play(\"2.wav\"); \r\n      break;\r\n            case 3: Audio.play(\"3.wav\");\r\n      break;\r\n            case 4: Audio.play(\"4.wav\");\r\n      break;\r\n            case 5: Audio.play(\"5.wav\");\r\n      break;\r\n            case 6: Audio.play(\"6.wav\");\r\n      break;\r\n            case 7: Audio.play(\"7.wav\");\r\n      break;\r\n            case 8: Audio.play(\"8.wav\");\r\n      break;\r\n            case 9: Audio.play(\"9.wav\");\r\n      break;\r\n            case 10: Audio.play(\"10.wav\");delay(1000);Audio.play(\"parqueo.wav\");\r\n\r\n      break;\r\n\r\n   }\r\n   ult_audio = contador;\r\n  }    \r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><strong><span style=\"color: #ff6600;\">S\u00cdGUENOS<\/span><\/strong><\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-socials align_left style_solid color_brand index_2\" style=\"font-size:25px;\"><div class=\"w-socials-list\"><div class=\"w-socials-item facebook\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/www.facebook.com\/ELECTROALL.ELECTRONICA\/\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">Facebook<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>Facebook<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><div class=\"w-socials-item youtube\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/c\/ELECTROALL\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">YouTube<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>YouTube<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><div class=\"w-socials-item instagram\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/www.instagram.com\/electroall_\/\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">Instagram<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>Instagram<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><div class=\"w-socials-item github\">\r\n\t\t\t\t<a class=\"w-socials-item-link\" target=\"_blank\" href=\"https:\/\/github.com\/ELECTROALL\">\r\n\t\t\t\t\t<span class=\"w-socials-item-link-hover\"><\/span>\r\n\t\t\t\t\t<span class=\"w-socials-item-link-title\">GitHub<\/span>\r\n\t\t\t\t<\/a>\r\n\t\t\t\t<div class=\"w-socials-item-popup\">\r\n\t\t\t\t\t<span>GitHub<\/span>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"S\u00cdGUENOS Facebook Facebook YouTube YouTube Instagram Instagram GitHub GitHub INTRODUCCI\u00d3N Alguna vez te has preguntado ser\u00e1 posible reproducir sonidos, m\u00fasicas y grabaciones con arduino?, la repuesta es S\u00cd, hoy en d\u00eda gracias a los distintos tipos de comunicaci\u00f3n que tiene las tarjetas de Arduino es posible interactuar con varios dispositivos. Para este proyecto usaremos el...","protected":false},"author":2,"featured_media":945,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[25,22,20],"tags":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/913"}],"collection":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/comments?post=913"}],"version-history":[{"count":24,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/913\/revisions"}],"predecessor-version":[{"id":1861,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/posts\/913\/revisions\/1861"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/media\/945"}],"wp:attachment":[{"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/media?parent=913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/categories?post=913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.electroallweb.com\/index.php\/wp-json\/wp\/v2\/tags?post=913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}