{"id":337,"date":"2023-12-20T13:14:00","date_gmt":"2023-12-20T12:14:00","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/museo\/?p=337"},"modified":"2026-03-26T16:30:45","modified_gmt":"2026-03-26T15:30:45","slug":"feliz-navidad-con-sonido","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/museo\/divulgacion\/feliz-navidad-con-sonido\/","title":{"rendered":"\u00a1Feliz Navidad (con sonido)!"},"content":{"rendered":"\n<p>En estas fechas tan entra\u00f1ables, queremos rescatar un v\u00eddeo que preparamos hace unos a\u00f1os, antes incluso de la existencia de la p\u00e1gina de nuestro Museo. Se trata de un peque\u00f1o circuito con una placa de <a href=\"https:\/\/www.arduino.cc\/\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino Uno<\/a> para tocar el famoso villancico ingl\u00e9s <a href=\"https:\/\/es.wikipedia.org\/wiki\/We_Wish_You_a_Merry_Christmas\" target=\"_blank\" rel=\"noreferrer noopener\">We Wish You A Merry Christmas<\/a>.<\/p>\n\n\n\n<p>Para poder montar el circuito, necesitar\u00e9is los siguientes componentes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Placa de prototipado<\/li>\n\n\n\n<li>Arduino Uno<\/li>\n\n\n\n<li>Altavoz de 8 ohmios (o un simple zumbador)<\/li>\n\n\n\n<li>Resistencia de 330 ohmios (franjas naranja-naranja-marr\u00f3n) o de un valor cercano<\/li>\n\n\n\n<li>Cables de prototipado<\/li>\n<\/ul>\n\n\n\n<p>En la siguiente imagen (realizada con el programa <a href=\"https:\/\/fritzing.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fritzing<\/a>), pod\u00e9is ver c\u00f3mo queda el circuito:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"910\" src=\"https:\/\/blogs.etsii.urjc.es\/museo\/wp-content\/uploads\/sites\/12\/2024\/01\/villancico-arduino-1024x910.png\" alt=\"\" class=\"wp-image-338\" srcset=\"https:\/\/blogs.etsii.urjc.es\/museo\/wp-content\/uploads\/sites\/12\/2024\/01\/villancico-arduino-1024x910.png 1024w, https:\/\/blogs.etsii.urjc.es\/museo\/wp-content\/uploads\/sites\/12\/2024\/01\/villancico-arduino-300x267.png 300w, https:\/\/blogs.etsii.urjc.es\/museo\/wp-content\/uploads\/sites\/12\/2024\/01\/villancico-arduino-768x683.png 768w, https:\/\/blogs.etsii.urjc.es\/museo\/wp-content\/uploads\/sites\/12\/2024\/01\/villancico-arduino-1536x1365.png 1536w, https:\/\/blogs.etsii.urjc.es\/museo\/wp-content\/uploads\/sites\/12\/2024\/01\/villancico-arduino.png 1800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Por otro lado, necesit\u00e1is ejecutar el siguiente c\u00f3digo en el Arduino:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#define DO 261.626 \n#define RE 293.665\n#define MI 329.628 \n#define FA 349.228\n#define SOL 391.995\n#define LA 440.000\n#define SIB 466.164\n#define SI 493.883\n#define DO2 523.251\n#define SILENCIO 0\n#define ALTAVOZ 8   \n#define TEMPO 400\n\n\/\/ Arrays que definen la cancion\nfloat cancion&#091;] = {DO,FA,FA,SOL,FA,MI,RE,RE,RE,SOL,SOL,LA,SOL,FA,MI,DO,DO,LA,LA,SIB,LA,SOL,FA,RE,DO,DO,RE,SOL,MI,FA,DO,FA,FA,SOL,FA,MI,RE,RE,RE,SOL,SOL,LA,SOL,FA,MI,DO,DO,LA,LA,SIB,LA,SOL,FA,RE,DO,DO,RE,SOL,MI,FA,DO,FA,FA,FA,MI,MI,FA,MI,RE,DO,SOL,LA,SOL,FA,DO2,DO,DO,DO,RE,SOL,MI,FA}; \n\nfloat duracion&#091;] = {1,1,0.5,0.5,0.5,0.5,1,1,1,1,0.5,0.5,0.5,0.5,1,1,1,1,0.5,0.5,0.5,0.5,1,1,0.5,0.5,1,1,1,2,1,1,0.5,0.5,0.5,0.5,1,1,1,1,0.5,0.5,0.5,0.5,1,1,1,1,0.5,0.5,0.5,0.5,1,1,0.5,0.5,1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,0.5,0.5,1,1,1,2};\n\nint numeroNotas = 82;\n\nvoid setup() {\n  pinMode(ALTAVOZ,OUTPUT);\n\n}\n\nvoid loop() {\n  for (int i = 0; i &lt; numeroNotas; i++) {\n    if (cancion&#091;i] != SILENCIO) {         \n      tone(ALTAVOZ,round(cancion&#091;i])); \n    }\n    else {\n      noTone(ALTAVOZ); \n    }\n    delay(TEMPO * duracion&#091;i]); \n    noTone(ALTAVOZ);\n    delay(0.1);\n  } \n}\n<\/code><\/pre>\n\n\n\n<p>Los defines iniciales establecen equivalencias o alias entre los nombres de las notas y sus frecuencias expresadas en hercios (Hz). Es m\u00e1s f\u00e1cil trabajar con los nombres de las notas que con las frecuencias y, por eso, se decidi\u00f3 hacerlo as\u00ed. El array canci\u00f3n no es sino la secuencia de notas que componen la canci\u00f3n. Es un array de coma flotante (float) porque las frecuencias as\u00ed lo son.<\/p>\n\n\n\n<p>El siguiente array establece el tipo de notas en cuanto a su duraci\u00f3n. As\u00ed, una negra ser\u00eda una unidad, una blanca valdr\u00eda 2, una corchea ser\u00eda 0,5, etc. Por tanto, el uso combinado de los arrays cancion y duracion permite establecer toda la informaci\u00f3n necesaria para interpretar la canci\u00f3n.<\/p>\n\n\n\n<p>En la funci\u00f3n setup de este c\u00f3digo, se establece que el pin 8 del Arduino debe ser de salida y es por ah\u00ed por donde se env\u00edan cada una de las notas musicales. De ese pin se lleva un cable que pasa por la resistencia y llega hasta el altavoz. Desde el otro borne del altavoz, se conecta un cable hasta la conexi\u00f3n de tierra del Arduino, situada en el pin se\u00f1alado como GND.<\/p>\n\n\n\n<p>A continuaci\u00f3n, la funci\u00f3n loop se ejecuta indefinidamente. En \u00e9l, hay un bucle for que va recorriendo todas las notas musicales. Mediante la funci\u00f3n tone, se env\u00eda la se\u00f1al adecuada al pin 8 del Arduino y, por extensi\u00f3n, al altavoz, para que toque determinada nota musical. En principio, la nota se toca indefinidamente, con lo que debemos usar la funci\u00f3n delay para determinar cu\u00e1nto debe durar. La duraci\u00f3n de la nota se ajusta con el valor del tempo, tambi\u00e9n establecido en uno de los defines iniciales, lo que permite que la canci\u00f3n suene m\u00e1s r\u00e1pido o m\u00e1s lento. Una vez que ha sonado la nota el tiempo que se necesita, la funci\u00f3n notone corta el sonido. A continuaci\u00f3n, se introduce un peque\u00f1o retardo entre notas con la funci\u00f3n delay, que permite que se identifiquen mejor las notas individuales de la canci\u00f3n. Esto terminar\u00eda una iteraci\u00f3n del bucle y volver\u00edamos de nuevo al comienzo del mismo para interpretar la siguiente nota.<\/p>\n\n\n\n<p>Y el resultado es el siguiente:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"We Wish You A Merry Christmas con Arduino Uno\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/bxaJ4z03-DY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>En estas fechas tan entra\u00f1ables, queremos rescatar un v\u00eddeo que preparamos hace unos a\u00f1os, antes incluso de la existencia de la p\u00e1gina de nuestro Museo. Se trata de un peque\u00f1o circuito con una placa de Arduino Uno para tocar el famoso villancico ingl\u00e9s We Wish You A Merry Christmas. Para poder montar el circuito, necesitar\u00e9is [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":338,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[12],"tags":[39,41,43,42,40],"class_list":["post-337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-divulgacion","tag-arduino","tag-circuito","tag-codigo-fuente","tag-feliz-navidad","tag-villancico"],"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/posts\/337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/comments?post=337"}],"version-history":[{"count":4,"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/posts\/337\/revisions"}],"predecessor-version":[{"id":344,"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/posts\/337\/revisions\/344"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/media\/338"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/media?parent=337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/categories?post=337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/museo\/wp-json\/wp\/v2\/tags?post=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}