{"id":4363,"date":"2021-12-07T11:22:56","date_gmt":"2021-12-07T11:22:56","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=4363"},"modified":"2021-12-13T17:57:40","modified_gmt":"2021-12-13T17:57:40","slug":"analizador-del-espectro-sonoro-de-32-bandas","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/","title":{"rendered":"Analizador del espectro sonoro de 32 bandas"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-1-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-1-1024x768.jpg\" alt=\"\" class=\"wp-image-4365\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-1-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-1-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-1-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-1-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-1-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ilustraci\u00f3n 1. Display matricial<\/figcaption><\/figure>\n\n\n\n<p>Este proyecto ha sido desarrollado por el grupo 7 de la asignatura Dise\u00f1o de Sistemas Empotrados, conformado por Eric Mart\u00ednez Gamero, durante el primer cuatrimestre del curso 2021-2022.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">INTRODUCCI\u00d3N<\/h2>\n\n\n\n<p>El <strong>analizador LED del espectro de audio de 32 bandas<\/strong> permite visualizar las fluctuaciones de frecuencia de una se\u00f1al anal\u00f3gica de, por ejemplo, una canci\u00f3n.<\/p>\n\n\n\n<p>El <em>display<\/em> est\u00e1 compuesto por cuatro m\u00f3dulos de 8&#215;8 LEDs rojos, que se iluminan en funci\u00f3n de dichas fluctuaciones y siguen un patr\u00f3n determinado por el modo de visualizaci\u00f3n seleccionado.<\/p>\n\n\n\n<p>La idea original proviene de la entrada del blog oficial de Arduino publicada por el usuario <em>shajeeb <\/em>en 2019:<a> <\/a><a href=\"https:\/\/create.arduino.cc\/projecthub\/shajeeb\/32-band-audio-spectrum-visualizer-analyzer-902f51?ref=platform&amp;ref_id=424_trending___&amp;offset=22\">https:\/\/create.arduino.cc\/projecthub\/shajeeb\/32-band-audio-spectrum-visualizer-analyzer-902f51?ref=platform&amp;ref_id=424_trending___&amp;offset=22<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">COMPONENTES<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><strong>Componente<\/strong><\/td><td><strong>N\u00famero<\/strong><\/td><td><strong>Precio<\/strong><\/td><\/tr><tr><td>Placa Arduino Uno<\/td><td>1<\/td><td>Provista por la URJC<\/td><\/tr><tr><td>Placa de inserci\u00f3n<\/td><td>1<\/td><td>Provista por la URJC<\/td><\/tr><tr><td>Cable de audio est\u00e9reo<\/td><td>2<\/td><td>En propiedad<\/td><\/tr><tr><td>Cables DuPont<\/td><td>17<\/td><td>8 \u20ac<\/td><\/tr><tr><td>Matriz LED 8&#215;32 MAX7219<\/td><td>1<\/td><td>10 \u20ac<\/td><\/tr><tr><td>Socket hembra para jack de 3.5\u00bb<\/td><td>1<\/td><td>1.37 \u20ac<\/td><\/tr><tr><td>Splitter de audio 1 a 2 para jack de 3.5\u00bb<\/td><td>1<\/td><td>0.50 \u20ac<\/td><\/tr><tr><td>Resistencias de 4.7k ohm<\/td><td>3<\/td><td>4.33 \u20ac<\/td><\/tr><tr><td>Resistencias de 100k ohm<\/td><td>2<\/td><td>4.33 \u20ac<\/td><\/tr><tr><td>Resistencia de 10k ohm<\/td><td>1<\/td><td>4.33 \u20ac<\/td><\/tr><tr><td>Condensador cer\u00e1mico 100nF<\/td><td>2<\/td><td>0.61 \u20ac<\/td><\/tr><tr><td>Bot\u00f3n<\/td><td>1<\/td><td>Provisto por la URJC<\/td><\/tr><tr><td>Conector pila 9V<\/td><td>1<\/td><td>5 \u20ac<\/td><\/tr><tr><td>Pila alcalina 9V<\/td><td>1<\/td><td>3 \u20ac<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">HERRAMIENTAS<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><strong>Herramienta<\/strong><\/td><td><strong>N\u00famero<\/strong><\/td><td><strong>Precio<\/strong><\/td><\/tr><tr><td>Soldador de esta\u00f1o<\/td><td>1<\/td><td>24 \u20ac<\/td><\/tr><tr><td>Pol\u00edmetro<\/td><td>1<\/td><td>En propiedad<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">HARDWARE<\/h2>\n\n\n\n<p>El sistema recibe la <strong>se\u00f1al anal\u00f3gica de un dispositivo m\u00f3vil<\/strong> gracias a un cable de audio est\u00e9reo. Este cable est\u00e1 conectado a un socket hembra que separa los canales izquierdo, derecho y tierra. Con el soldador de esta\u00f1o se fijaron los pines del socket a tres cables que van a la placa de inserci\u00f3n.<\/p>\n\n\n\n<p>Por otro lado, se instal\u00f3 en la placa un <strong>bot\u00f3n para posibilitar el cambio entre los tres modos<\/strong> de visualizaci\u00f3n del <em>display<\/em>.<\/p>\n\n\n\n<p>Respecto a la salida del sistema, esta se visualiza a trav\u00e9s de una <strong>matriz LED 8&#215;32<\/strong> conectada mediante cables jumper a la placa Arduino Uno y constituida por cuatro m\u00f3dulos 8&#215;8.<\/p>\n\n\n\n<p>En cuanto a la fuente de alimentaci\u00f3n, se opt\u00f3 por utilizar el jack de alimentaci\u00f3n con adaptador DCAC para conectar <strong>una bater\u00eda de 9V<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211126_151142-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211126_151142-1024x768.jpg\" alt=\"\" class=\"wp-image-4366\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211126_151142-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211126_151142-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211126_151142-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211126_151142-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211126_151142-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ilustraci\u00f3n 2. Sistema completo<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211201_161222-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211201_161222-768x1024.jpg\" alt=\"\" class=\"wp-image-4367\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211201_161222-768x1024.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211201_161222-225x300.jpg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211201_161222-1152x1536.jpg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211201_161222-1536x2048.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211201_161222-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><figcaption>Ilustraci\u00f3n 3. Sistema completo <\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">ESQUEMA DE CONEXIONES<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/analizador_espectro_circuito.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"396\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/analizador_espectro_circuito-1024x396.png\" alt=\"\" class=\"wp-image-4368\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/analizador_espectro_circuito-1024x396.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/analizador_espectro_circuito-300x116.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/analizador_espectro_circuito-768x297.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/analizador_espectro_circuito-1536x594.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/analizador_espectro_circuito-2048x792.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ilustraci\u00f3n 4. Esquema de conexiones fritzing<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">SOFTWARE<\/h2>\n\n\n\n<p>Para la implementaci\u00f3n del proyecto a nivel software se han utilizado las librer\u00edas de Arduino <strong>MD_MAX72xx<\/strong> (<a href=\"https:\/\/www.arduino.cc\/reference\/en\/libraries\/md_max72xx\/\">https:\/\/www.arduino.cc\/reference\/en\/libraries\/md_max72xx\/<\/a>) y <strong>arduinoFFT <\/strong>(<a href=\"https:\/\/www.arduino.cc\/reference\/en\/libraries\/arduinofft\/\">https:\/\/www.arduino.cc\/reference\/en\/libraries\/arduinofft\/<\/a>).<\/p>\n\n\n\n<p>La librer\u00eda <strong>arduinoFFT<\/strong> permite calcular la frecuencia de una se\u00f1al muestrea implementando el algoritmo de la transformada r\u00e1pida de Fourier en coma flotante. Esto permite el tratamiento digital de se\u00f1ales de audio.<\/p>\n\n\n\n<p>Por otro lado, la librer\u00eda <strong>MD_MAX72XX<\/strong> implementa funciones para trabajar con matrices LED 8&#215;8. Es necesario realizar un test inicial sobre la matriz comprada para conocer el tipo de hardware y poder especificarlo para la librer\u00eda. <\/p>\n\n\n\n<p>En cuanto a los modos de visualizaci\u00f3n del display, estos se encuentran codificados en binario en arrays de 9 elementos. El primer modo de visualizaci\u00f3n, por ejemplo, se podr\u00eda ilustrar como:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/matrix_display_modo1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/matrix_display_modo1-1024x576.png\" alt=\"\" class=\"wp-image-4369\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/matrix_display_modo1-1024x576.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/matrix_display_modo1-300x169.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/matrix_display_modo1-768x432.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/matrix_display_modo1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ilustraci\u00f3n 5. Modo de visualizaci\u00f3n 1<\/figcaption><\/figure>\n\n\n\n<p>La primera l\u00ednea de setup() es importante, ya que pone el conversor anal\u00f3gico digital de la Arduino Uno en <strong><em>free running mode<\/em><\/strong>. As\u00ed se permite que el ADC se mantenga realizando conversiones consecutivas, reduciendo latencias.<\/p>\n\n\n\n<p>Sobre loop(), el siguiente esquema representa el proceso que se lleva a cabo cada iteraci\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/Captura-de-pantalla-2021-12-07-115909.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"730\" height=\"528\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/Captura-de-pantalla-2021-12-07-115909.jpg\" alt=\"\" class=\"wp-image-4370\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/Captura-de-pantalla-2021-12-07-115909.jpg 730w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/Captura-de-pantalla-2021-12-07-115909-300x217.jpg 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/a><figcaption>Ilustraci\u00f3n 6. Esquema del bucle principal<\/figcaption><\/figure>\n\n\n\n<p>Como se puede ver, antes de volver al inicio hay que comprobar si se ha pulsado el bot\u00f3n para cambiar de modo. La funci\u00f3n cambioModo() implementa esta funcionalidad.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00d3DIGO<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;arduinoFFT.h&gt; \/\/ librer\u00eda que permite calcular la frecuencia de una se\u00f1al muestreada\n#include &lt;MD_MAX72xx.h&gt; \/\/ librer\u00eda que permite utilizar una matriz LED como pantalla direccionable por p\u00edxeles\n\n#define MUESTRAS 64            \/\/ debe ser potencia de dos para el algoritmo de muestreo\n#define TIPO_HARDWARE MD_MAX72XX::ICSTATION_HW   \/\/ tipo de display para que la librer\u00eda MD_MAX72XX lo reconozca\n#define MODULOS  4   \/\/ n\u00famero de m\u00f3dulos LED independientes\n#define CLK_PIN   13  \/\/ pin CLOCK del display\n#define DATA_PIN  11  \/\/ pin DATA del display\n#define CS_PIN    10  \/\/ pin CONTROL del display\n\n#define COLUMNAS 32      \/\/ n\u00famero de columnas en el display (muestras \/ 2)\n#define FILAS 8       \/\/ n\u00famero de filas en el display\n\n\/\/ modos de visualizaci\u00f3n - cada LED puesto a 1 en binario se iluminar\u00e1\nint MODO[]= {0, 128, 192, 224, 240, 248, 252, 254, 255}; \/\/ por defecto ser\u00e1 el patr\u00f3n est\u00e1ndar\nint MODO_1[]= {0, 128, 192, 224, 240, 248, 252, 254, 255}; \/\/ patr\u00f3n est\u00e1ndar\nint MODO_2[]= {0, 128, 64, 32, 16, 8, 4, 2, 1}; \/\/ solo parte superior\nint MODO_3[]= {0, 1, 3, 7, 15, 31, 63, 127, 255}; \/\/ patr\u00f3n est\u00e1ndar del rev\u00e9s\nint MODO_4[]= {0, 1, 2, 4, 8, 16, 32, 64, 128}; \/\/ solo parte superior del rev\u00e9s\n\n \ndouble vReal[MUESTRAS];\ndouble vImag[MUESTRAS];\nchar val[COLUMNAS];\n                      \nint columnaDisplay, valorDisplay; \n\nconst int BOTON_PIN = 5;    \/\/ pin del bot\u00f3n\nint estado = HIGH;             \/\/ el valor actual le\u00eddo del pin\nint estadoPrevio = LOW;   \/\/ el valor previo le\u00eddo del pin\nint modo = 1;\n\nMD_MAX72XX mx = MD_MAX72XX(TIPO_HARDWARE, CS_PIN, MODULOS);   \/\/ objeto display\narduinoFFT FFT = arduinoFFT();                                \/\/ objeto fft\n\n\nvoid setup() {\n    \n    ADCSRA = 0b11100101;      \/\/ poner conversor anal\u00f3gico digital en modo de funcionamiento libre y poner prescaler a 32\n    ADMUX = 0b00000000;       \/\/ usar el pin A0 y referencia de voltaje externa\n    pinMode(BOTON_PIN, INPUT);\n    mx.begin();               \/\/ inicializaci\u00f3n del display\n    delay(50);                \/\/ espera para obtener voltaje de referencia estable\n}\n \nvoid loop() {\n   \/\/ muestreo\n   for(int i=0; i&lt;MUESTRAS; i++)\n    {\n      while(!(ADCSRA &amp; 0x10));        \/\/ esperar que ADC termine la conversi\u00f3n actual\n      ADCSRA = 0b11110101 ;           \/\/ limpiar registro ADCSRA para que ADC pueda realizar la siguiente conversi\u00f3n (0xf5)\n      int valor = ADC - 512 ;         \/\/ leer del ADC\n      vReal[i] = valor\/8;\n      vImag[i] = 0;                         \n    }\n\n \n    \/\/ configuraci\u00f3n de FFT\n    FFT.Windowing(vReal, MUESTRAS, FFT_WIN_TYP_HAMMING, FFT_FORWARD);\n    FFT.Compute(vReal, vImag, MUESTRAS, FFT_FORWARD);\n    FFT.ComplexToMagnitude(vReal, vImag, MUESTRAS);\n\n    \n    \/\/ reorganizar resultado FFT para adaptarse al n\u00famero de columnas\n    int step = (MUESTRAS\/2) \/ COLUMNAS; \n    int c = 0;\n    for(int i=0; i &lt; (MUESTRAS\/2); i++)  \n    {\n      val[c] = 0;\n      for (int k = 0 ; k &lt; step ; k++)\n          val[c] = val[c] + vReal[i+k];\n      val[c] = val[c]\/step; \n      c++;\n    }\n\n    \n    \/\/ enviar el valor medido a cada columna del display\n    for(int i=0; i &lt; COLUMNAS; i++)\n    {\n      val[i] = constrain(val[i],0,80);            \/\/ restringir valor entre 0 y 80\n      val[i] = map(val[i], 0, 80, 0, FILAS);      \/\/ mapear el valor entre 0 y n\u00famero de filas\n \n      valorDisplay = MODO[val[i]];\n      columnaDisplay = 31-i;\n      mx.setColumn(columnaDisplay, valorDisplay);              \/\/ poner todos los LEDs de la columna en el nuevo estado\n    }\n     \n    cambioModo ();         \/\/ comprueba si el bot\u00f3n se ha presionado para cambiar de modo\n} \n\nvoid cambioModo() {\n  int leido = digitalRead(BOTON_PIN); \n  if (leido == HIGH &amp;&amp; estadoPrevio == LOW) \/\/ al presionar el bot\u00f3n cambiar de modo\n  {\n   switch (modo) {\n    case 1:    \/\/ del modo 1 al 2\n      modo = 2;\n      for (int i=0 ; i&lt;=8 ; i++ ) {\n        MODO[i] = MODO_2[i];\n      }\n      break;\n    case 2:    \/\/ del modo 2 al 3\n      modo = 3;\n      for (int i=0 ; i&lt;=8 ; i++ ) {\n        MODO[i] = MODO_3[i];\n      }\n      break;\n    case 3:    \/\/ del modo 3 al 4\n      modo = 4;\n      for (int i=0 ; i&lt;=8 ; i++ ) {\n        MODO[i] = MODO_4[i];\n      }\n      break;\n    case 4:    \/\/ del modo 4 al 1\n      modo = 1;\n      for (int i=0 ; i&lt;=8 ; i++ ) {\n        MODO[i] = MODO_1[i];\n      }\n      break;\n    }\n  }\n  estadoPrevio = leido;\n}\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">V\u00cdDEO DE DEMOSTRACI\u00d3N<\/h2>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/video_analizador_grupo7-2.mp4\"><\/video><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">MEMORIA<\/h2>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/memoria_analizador_grupo7.pdf\">Memoria_ Analizador_ Grupo 7<\/a><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/memoria_analizador_grupo7.pdf\" class=\"wp-block-file__button\" download>Descarga<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Este proyecto ha sido desarrollado por el grupo 7 de la asignatura Dise\u00f1o de Sistemas Empotrados, conformado por Eric Mart\u00ednez Gamero, durante el primer cuatrimestre del curso 2021-2022. INTRODUCCI\u00d3N El analizador LED del espectro&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":4364,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4363","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Analizador del espectro sonoro de 32 bandas - Proyectos con Arduino.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Analizador del espectro sonoro de 32 bandas - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Este proyecto ha sido desarrollado por el grupo 7 de la asignatura Dise\u00f1o de Sistemas Empotrados, conformado por Eric Mart\u00ednez Gamero, durante el primer cuatrimestre del curso 2021-2022. INTRODUCCI\u00d3N El analizador LED del espectro&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-07T11:22:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-13T17:57:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1920\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Administrador de la red\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Administrador de la red\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/\"},\"author\":{\"name\":\"Administrador de la red\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/bdc38fea664f13638d2a51f4d2fc7211\"},\"headline\":\"Analizador del espectro sonoro de 32 bandas\",\"datePublished\":\"2021-12-07T11:22:56+00:00\",\"dateModified\":\"2021-12-13T17:57:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/\"},\"wordCount\":641,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/12\\\/IMG_20211117_183911-scaled.jpg\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/\",\"name\":\"Analizador del espectro sonoro de 32 bandas - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/12\\\/IMG_20211117_183911-scaled.jpg\",\"datePublished\":\"2021-12-07T11:22:56+00:00\",\"dateModified\":\"2021-12-13T17:57:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/12\\\/IMG_20211117_183911-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/12\\\/IMG_20211117_183911-scaled.jpg\",\"width\":2560,\"height\":1920,\"caption\":\"ANALIZADOR_ESPECTRO\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/analizador-del-espectro-sonoro-de-32-bandas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Analizador del espectro sonoro de 32 bandas\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"name\":\"Proyectos con Arduino.\",\"description\":\"Blog de proyectos de Arduino de alumnos de la URJC\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\",\"name\":\"Universidad Rey Juan Carlos\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"width\":745,\"height\":288,\"caption\":\"Universidad Rey Juan Carlos\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/bdc38fea664f13638d2a51f4d2fc7211\",\"name\":\"Administrador de la red\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"caption\":\"Administrador de la red\"},\"sameAs\":[\"https:\\\/\\\/blogs.etsii.urjc.es\"],\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/etsiiadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Analizador del espectro sonoro de 32 bandas - Proyectos con Arduino.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/","og_locale":"es_ES","og_type":"article","og_title":"Analizador del espectro sonoro de 32 bandas - Proyectos con Arduino.","og_description":"Este proyecto ha sido desarrollado por el grupo 7 de la asignatura Dise\u00f1o de Sistemas Empotrados, conformado por Eric Mart\u00ednez Gamero, durante el primer cuatrimestre del curso 2021-2022. INTRODUCCI\u00d3N El analizador LED del espectro&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2021-12-07T11:22:56+00:00","article_modified_time":"2021-12-13T17:57:40+00:00","og_image":[{"width":2560,"height":1920,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-scaled.jpg","type":"image\/jpeg"}],"author":"Administrador de la red","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Administrador de la red","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/"},"author":{"name":"Administrador de la red","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/bdc38fea664f13638d2a51f4d2fc7211"},"headline":"Analizador del espectro sonoro de 32 bandas","datePublished":"2021-12-07T11:22:56+00:00","dateModified":"2021-12-13T17:57:40+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/"},"wordCount":641,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-scaled.jpg","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/","name":"Analizador del espectro sonoro de 32 bandas - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-scaled.jpg","datePublished":"2021-12-07T11:22:56+00:00","dateModified":"2021-12-13T17:57:40+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-scaled.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/IMG_20211117_183911-scaled.jpg","width":2560,"height":1920,"caption":"ANALIZADOR_ESPECTRO"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/analizador-del-espectro-sonoro-de-32-bandas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Analizador del espectro sonoro de 32 bandas"}]},{"@type":"WebSite","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","name":"Proyectos con Arduino.","description":"Blog de proyectos de Arduino de alumnos de la URJC","publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization","name":"Universidad Rey Juan Carlos","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","width":745,"height":288,"caption":"Universidad Rey Juan Carlos"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/bdc38fea664f13638d2a51f4d2fc7211","name":"Administrador de la red","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","caption":"Administrador de la red"},"sameAs":["https:\/\/blogs.etsii.urjc.es"],"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/etsiiadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/4363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=4363"}],"version-history":[{"count":7,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/4363\/revisions"}],"predecessor-version":[{"id":4391,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/4363\/revisions\/4391"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/4364"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=4363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=4363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=4363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}