{"id":5217,"date":"2022-05-13T17:12:55","date_gmt":"2022-05-13T15:12:55","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=5217"},"modified":"2022-05-13T17:12:56","modified_gmt":"2022-05-13T15:12:56","slug":"cubo-de-leds","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/","title":{"rendered":"Cubo de LEDs"},"content":{"rendered":"\n<pre class=\"wp-block-preformatted\">\u00c1ngel Hernanz, Javier Mart\u00edn y Yolanda Cobo. Grupo 3<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/Vista%20desde%20el%20lado.jpeg?raw=true\" alt=\"\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Introducci\u00f3n<\/h2>\n\n\n\n<p>Cuando se nos asign\u00f3 este proyecto para la asignatura de , comenzamos a pensar y buscar posibles trabajos a realizar que fuesen diferentes y, a la vez, entretenidos tanto de ver como de realizar. Sopesamos numerosas posibilidades, lo que conllev\u00f3 un debate para seleccionar la mejor opci\u00f3n.<\/p>\n\n\n\n<p>Ante esto, nos hemos decantado por la creaci\u00f3n de una l\u00e1mpara de led<strong> <\/strong>de tama\u00f1o 5x5x5 que, al encenderla, comenzar\u00e1 a mostrar varias combinaciones de leds que, mediante la combinaci\u00f3n de leds encendi\u00e9ndose y otros leds apag\u00e1ndose que, en su conjunto, forman un efecto visual incre\u00edble.<\/p>\n\n\n\n<p>Hemos seleccionado este proyecto debido a que tiene una gran proyecci\u00f3n de futuro y es un modelo muy empleado a d\u00eda de hoy, por lo que realizamos una peque\u00f1a miniatura como representaci\u00f3n de las grandes creaciones.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/Vista%20desde%20el%20frente.jpeg?raw=true\" alt=\"atributo alt\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/Vista%20desde%20arriba.jpeg?raw=true\" alt=\"\" width=\"487\" height=\"503\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Materiales<\/h2>\n\n\n\n<p>Los materiales empleados, junto con la cantidad empleada y el coste de los mismos, vienen representados en la tabla 1:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>MATERIAL<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>CANTIDAD<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>COSTE<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Arduino Mega 2560 <\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">19,49\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Leds de color azul<\/td><td class=\"has-text-align-center\" data-align=\"center\">150<\/td><td class=\"has-text-align-center\" data-align=\"center\">26,7\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Alambre<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">3,89\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">NTE8 NPN transistor<\/td><td class=\"has-text-align-center\" data-align=\"center\">8<\/td><td class=\"has-text-align-center\" data-align=\"center\">7,68\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Resistencia 180 ohmios<\/td><td class=\"has-text-align-center\" data-align=\"center\">35<\/td><td class=\"has-text-align-center\" data-align=\"center\">3,2\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Resistencia 330 ohmios<\/td><td class=\"has-text-align-center\" data-align=\"center\">5<\/td><td class=\"has-text-align-center\" data-align=\"center\">0,35\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Placa prototyping 9&#215;15 cm<\/td><td class=\"has-text-align-center\" data-align=\"center\">5<\/td><td class=\"has-text-align-center\" data-align=\"center\">6,49\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Cables<\/td><td class=\"has-text-align-center\" data-align=\"center\">35<\/td><td class=\"has-text-align-center\" data-align=\"center\">10\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Tabla de madera<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">10\u20ac<\/td><\/tr><\/tbody><\/table><figcaption>tabla 1<\/figcaption><\/figure>\n\n\n\n<p>En total, el proyecto ha tenido un coste de 87,8\u20ac.<\/p>\n\n\n\n<p>Adem\u00e1s, hemos empleado las siguientes herramientas para poder crear el cubo.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Alicates: cortar y pelar cables.<\/li><li>Soldador y esta\u00f1o: soldar los leds para formar las capas del cubo.<\/li><li>Regla: medir la distancia entre los agujeros del tabl\u00f3n y entre los leds.<\/li><li>Taladro y broca: realizar los agujeros en la table de madera.<\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Proceso Hardware<\/h2>\n\n\n\n<p>En primer lugar, procedimos a soldar los leds entre s\u00ed, formando 5 capas, cada una de ellas con una estructura de 5&#215;5 leds. Para ello, tuvimos que crearnos una plantilla en el tabl\u00f3n de madera que nos sirvi\u00f3 para que todos los leds quedasen a la misma distancia entre s\u00ed. Esta plantilla la realizamos con un taladro, agujereando 25 veces para introducir la cabeza del led en ellos, de forma que nos es m\u00e1s sencillo unirlos.<\/p>\n\n\n\n<p>Para la uni\u00f3n, tuvimos que cortar 25 segmentos de 20cm de alambre. Tras esto, pusimos un alambre junto a 5 leds en fila, colocando el pin negativo de cada led sobre el propio alambre para, posteriormente, soldarlos. Una vez tenemos soldados los leds en filas de 5 en 5 de forma vertical, soldamos dos alambres m\u00e1s de forma horizontal para que se quedasen unidas todas las filas y formar una capa de 25 leds. Este proceso lo repetimos 5 veces para formar las 5 capas.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/nivel-del-cubo.png?raw=true\" alt=\"p1-1.jpg\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/AnyConv.com__todos%20los%20niveles.png?raw=true\" alt=\"p2\" width=\"536\" height=\"717\" \/><\/figure><\/div>\n\n\n\n<p>Tras crear estas 5 capas, debemos unirlas entre ellas. Para ello, hemos vuelto a recortar 25 alambres de 20cm cada uno y los pegamos a la base de nuestro tabl\u00f3n. Tras esto, soldamos el pin positivo de cada led a la varilla vertical.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/montando-niveles.png?raw=true\" alt=\"\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/AnyConv.com__montando%20niveles%20parte%202.png?raw=true\" alt=\"\" \/><\/figure><\/div>\n\n\n\n<p>En este punto tuvimos un <strong>problema<\/strong> debido a que soldamos los pines positivos al formar las capas en lugar de los negativos y, posteriormente, soldamos los pines negativos al formar el cubo en lugar de los positivos. Por ello, tuvimos que volver a empezar todo el cubo de 0 y soldar los pines correctos.<\/p>\n\n\n\n<p>Tras haber solucionado este problema, comenzamos a colocar las 25 resistencias de 180 ohmios conectando la fila e y f de la placa protoboard. Adem\u00e1s, unimos la columna de \u00e1nodos m\u00e1s a la izquierda junto con las columnas de 1 a 5 de la fila j, despu\u00e9s la segunda columna del cubo con las filas 6-10 y as\u00ed sucesivamente hasta conectar todos los leds a la placa. De este modo, quedan conectados los positivos de los leds junto a las resistencias. Una vez que han sido conectadas todas las resistencias, pasamos a conectarlas a su vez con los pines del 28 al 53 del Arduino Mega 2560.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/AnyConv.com__conexiones.png?raw=true\" alt=\"\" \/><\/figure><\/div>\n\n\n\n<p>Tras esto, pasamos a conectar los pines negativos de los leds con los 5 transistores con el fin de aumentar la intensidad de corriente del circuito. Finalmente, pasamos a conectar estos transistores a los pines del Arduino del 22 al 27.<\/p>\n\n\n\n<p>En este paso, tambi\u00e9n tuvimos un <strong>problema<\/strong>. Esto se deb\u00eda a que nosotros entend\u00edamos que una pata de cada transistor deb\u00eda ir conectada a tierra, es decir, a 0 voltios; sin embargo, al conectar todos los transistores al pin de tierra del Arduino, solo nos funcionaba la capa superior del cubo, es decir, solo funcionaba una capa. Ante esta situaci\u00f3n, nos dimos cuenta de que hac\u00edan cortocircuito en el pin GND de la placa de Arduino y, para poder solucionarlo, optamos por poner cinco de los pines del Arduino a 0 (tierra) y conectar una para de cada transistor a cada uno de estos pines a tierra.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Proceso Software<\/h2>\n\n\n\n<p>Finalmente, adjuntamos el c\u00f3digo con algunos comentarios para que sea m\u00e1s sencilla la comprensi\u00f3n del mismo. Hemos implementado tan solo 6 combinaciones de leds; sin embargo, para incrementar su variedad, solo bastar\u00eda con emplear la misma estructura, pero efectuando un cambio de orden y duraci\u00f3n de los leds. En este punto, nos cost\u00f3 un poco el sincronizar todos los leds pero, tras varias comprobaciones, conseguimos obtenerlo.<\/p>\n\n\n\n<p>El estado de cada LED en el cubo viene marcado en la matriz llamada cube[5][5][5]. Si aparece un 1 significar\u00e1 que el LED est\u00e1 encendido y si aparece un 0, significar\u00e1 que el led est\u00e1 apagado. Por lo tanto, las animaciones las hemos creado jugando con 0 y 1 colocados en la matriz cube.<\/p>\n\n\n\n<p><br>Nuestro loop() es realmente sencillo ya que solo se encarga de ir llamando a los diferentes procedimientos que se encargan de llevar a cabo cada efecto.<br><\/p>\n\n\n\n<p>Tras las funciones principales del programa, encontramos una serie de funciones que son comunes a todos los efectos.<br><\/p>\n\n\n\n<p>Finalmente, como explicamos en un comentario en el c\u00f3digo, para poder llevar al m\u00e1ximo el tiempo en el que los leds est\u00e1n encendidos hemos empleado el acceso directo al puerto para ir configurando los pines en lugar de emplear la conocida funci\u00f3n digitalWrite.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const int myLayer&#091;5] = {22, 23, 24, 25, 26};  \nvolatile byte cube&#091;5]&#091;5]&#091;5];\n\/\/ ************************************** SETUP ***************************************\nvoid setup() {\n  \/\/ poner los pins como salida y a nivel bajo\n  for (int x = 22; x &lt; 52; x++) {\n    pinMode(x, OUTPUT);\n    digitalWrite(x, LOW);\n  }\n  clearCube(); \/\/ apagar el cubo\n\n   for (int x = 2; x &lt; 7; x++) {\n    pinMode(x, OUTPUT);\n    digitalWrite(x, LOW);\n  }\n  cli(); \/\/ detiene las interrupciones\n  TCCR1A = 0; \/\/ registro TCCR1A a 0\n  TCCR1B = 0; \/\/ registro TCCR1B a 0\n  TCNT1  = 0; \/\/ contador a 0\n  OCR1A = 19999; \n  TCCR1B |= (1 &lt;&lt; WGM12);\n  TCCR1B |= (0 &lt;&lt; CS12) | (1 &lt;&lt; CS11) | (0 &lt;&lt; CS10);\n  TIMSK1 |= (1 &lt;&lt; OCIE1A);\n  sei(); \/\/ permite las interrupciones\n}\n\n\/\/ *************************************** LOOP **************************************\nvoid loop() {\n  dancingFireflys();\n  rotatingX();\n  pulsingSphere();\n  sinewave2(); \n  rain();\n  cubeFlash();\n}\n\n\/\/******************************* LUCI\u00c9RNAGAS VOLADORAS *****************************\n\/\/ Columnas que se van moviendo aleatoriamente por el cubo.\nvoid dancingFireflys(){\n  int xpos = 3;\n  int ypos = 3;\n  int myrandom, count;\n  for (int k=0; k&lt;250; k++) {\n    count++;\n    myrandom = random(5);\n    if (myrandom == 0) {\n      xpos++;\n    }\n    if (myrandom == 1) {\n      xpos--;\n    }\n    if (myrandom == 2) {\n      ypos++;\n    }\n    if (myrandom == 3) {\n      ypos--;\n    }\n    if (xpos &lt; 0) {\n      xpos = 1;\n    }\n    if (xpos &gt; 4) {\n      xpos = 3;\n    }\n    if (ypos &lt; 0) {\n      ypos = 1;\n    }\n    if (ypos &gt; 4) {\n      ypos = 3;\n    }\n    ledOn(xpos, ypos, 4);\n    if (count%2) copyDown();   \n    delay(20);\n  }\n  pause();\n}\n\n\/\/********************************** X ROTATORIA **************************************\n\/\/ Una X rota por todos los lados del cubo\nvoid rotatingX() {\n  rotX(0, 4);\n  rotX(1, 4);\n  rotX(3, 3);\n  rotX(4, 3);\n  rotX(0, 2);\n  rotX(1, 2);\n  rotX(3, 1);\n  rotX(4, 1);\n  rotX(0, 0);\n  rotX(1, 0);\n  for (int k = 0; k &lt; 4; k++) {\n    rotX(3, 0);\n    rotX(4, 0);\n    rotX(0, 0);\n    rotX(1, 0);\n  }\n  for (int k = 0; k &lt; 4; k++) {\n    rotX(3, 0);\n    rotX(5, 0);\n    rotX(0, 0);\n    rotX(2, 0);\n  }\n  rotX(3, 1);\n  rotX(5, 1);\n  rotX(0, 2);\n  rotX(2, 2);\n  rotX(3, 3);\n  rotX(5, 3);\n  rotX(0, 4);\n  rotX(2, 4);\n  for (int k = 0; k &lt; 7; k++) {\n    rotX(3, 4);\n    rotX(5, 4);\n    rotX(0, 4);\n    rotX(2, 4);\n  }\n  pause();\n}\n\n\/\/ Esta funci\u00f3n la empleamos para crear la crear la X con los leds en las diferentes posiciones.\nvoid rotX(int k, int y) {\n  if (k &lt; 3) { \n    ledOn(1, y, 1);\n    ledOn(1, y, 3);\n    ledOn(2, y, 2);\n    ledOn(3, y, 1);\n    ledOn(3, y, 3);\n  }\n  else {    \n    ledOn(2, y, 1);\n    ledOn(2, y, 2);\n    ledOn(2, y, 3);\n    ledOn(1, y, 2);\n    ledOn(3, y, 2);\n  }\n  switch (k) {\n    case 0:  \/\/\n      ledOn(0, y, 0);\n      ledOn(0, y, 4);\n      ledOn(4, y, 0);\n      ledOn(4, y, 4);\n      break;\n    case 1:\n      ledOn(0, y, 1);\n      ledOn(1, y, 4);\n      ledOn(3, y, 0);\n      ledOn(4, y, 3);\n      break;\n    case 2:\n      ledOn(1, y, 0);\n      ledOn(0, y, 3);\n      ledOn(3, y, 4);\n      ledOn(4, y, 1);\n      break;\n    case 3:\n      ledOn(0, y, 2);\n      ledOn(2, y, 0);\n      ledOn(4, y, 2);\n      ledOn(2, y, 4);\n      break;\n    case 4:\n      ledOn(1, y, 0);\n      ledOn(0, y, 3);\n      ledOn(4, y, 1);\n      ledOn(3, y, 4);\n      break;\n    case 5:\n      ledOn(0, y, 1);\n      ledOn(1, y, 4);\n      ledOn(4, y, 3);\n      ledOn(3, y, 0);\n      break;\n  }\n  showCube(6);\n}\n\n\/\/*********************************** PULSOS DE ESFERA ********************************\n\/\/ Esfera que crece y decrece\nvoid pulsingSphere() {\n  float count;\n  for (int k = 0; k &lt; 6; k++) {\n    for (count = 0.5; count &lt; 2.8; count = count + 0.3) {  \/\/ crece la esfera\n      sphere(count);\n    }\n    for (count = 2.7; count &gt; 0.5; count = count - 0.3) {  \/\/ decrece la esfera\n      sphere(count);\n    }\n  }\n}\n\n\/\/ Crear la esfera y se usa en la funci\u00f3n principal del efecto\nvoid sphere(float radius) {\n  float polar, j, k, l;\n  for (int x = 0; x &lt; 5; x++) { \n    for (int y = 0; y &lt; 5; y++) {\n      for (int z = 0; z &lt; 5; z++) {\n        j = float(x); \n        k = float(y);\n        l = float(z);\n        polar = sqrt((j - 2) * (j - 2) + (k - 2) * (k - 2) + (l - 2) * (l - 2)); \n        if (polar &lt; radius) { \n          ledOn(x, y, z);\n        }\n        else { \n          ledOff(x, y, z);\n        }\n      }\n    }\n  }\n  delay(20);  \/\/ empleamos el delay para controlar la velocidad de crecimiento y decrecimiento.\n}\n\n\/\/*********************************** OLA VERSI\u00d3N 2 ***********************************\n\/\/ Se crea una ola a lo largo de la diagonal del cubo.\nvoid sinewave2() {\n  int z;\n  for (int k = 0; k &lt; 7; k++) {\n    for (int i = 0; i &lt; 40; i++) { \n      for (byte xx = 0; xx &lt; 5; xx++) { \n        for (byte yy = 0; yy &lt; 5; yy++) {\n          z = ((byte)(2.5 + sin((xx \/ 1.39) + (yy \/ 1.39) + (float)i \/ 6.28) * 2.5)); \n          if (z &gt; 7) {\n            z = 7;\n          }\n          ledOn(xx, yy, z);\n        }\n      }\n      delay(10);       \n      clearCube();    \n    }\n  }\n}\n\n\n\n\/\/ ************************************* LLUVIA ****************************************\nvoid rain() {\n  for (int k = 0; k &lt; 75; k++) {\n    int myx = random(5);\n    int myy = random(5);\n    cube&#091;myx]&#091;myy]&#091;4] = 1;\n    delay(70);\n    copyDown();\n  }\n  pause();\n}\n\n\/\/ *********************************** CUBO FLASH *************************************\n\/\/ El cubo crece y decrece \nvoid cubeFlash() {\n  for (int k = 0; k &lt; 12; k++) {\n    cubeInCube(0);\n    showCube(11);\n    cubeInCube(1);\n    showCube(8);\n    cubeInCube(2);\n    showCube(15);\n    cubeInCube(1);\n    showCube(8);\n  }\n  pause();\n}\n\/\/ funci\u00f3n que controla el encendido y apagado de los leds.\nvoid cubeInCube(int k) {\n  switch (k) {\n    case 0:   \/\/ encender solo el centro del cubo\n      ledOn(2, 2, 2);\n      break;\n    case 1:    \/\/ encender todas las capas menos las m\u00e1s externas\n      for (int layer = 1; layer &lt; 4; layer++) {\n        for (int column = 1; column &lt; 4; column++) {\n          for (int row = 1; row &lt; 4; row++) {\n            cube&#091;column]&#091;row]&#091;layer] = 1;\n          }\n        }\n      }\n      ledOff(2, 2, 2); \/\/  apaga el centro del cubo\n      break;\n    case 2:  \/\/ enciende todo el cubo\n      for (int layer = 0; layer &lt; 5; layer++) {\n        for (int column = 0; column &lt; 5; column++) {\n          for (int row = 0; row &lt; 5; row++) {\n            cube&#091;column]&#091;row]&#091;layer] = 1;\n          }\n        }\n      }\n      for (int layer = 1; layer &lt; 4; layer++) {  \n        for (int column = 1; column &lt; 4; column++) {\n          for (int row = 1; row &lt; 4; row++) {\n            cube&#091;column]&#091;row]&#091;layer] = 0;\n          }\n        }\n      }\n      break;\n  }\n}\n\n\/\/ Copia en una capa lo que se encuentra en la superior y, a la vez, apaga la capa copiada.\nvoid copyDown() {\n  for (int z = 0; z &lt; 4; z++) {\n    for (int x = 0; x &lt; 5; x++) {\n      for (int y = 0; y &lt; 5; y++) {\n        cube&#091;x]&#091;y]&#091;z] = cube&#091;x]&#091;y]&#091;z + 1];\n      }\n    }\n  }\n  for (int x = 0; x &lt; 5; x++) {\n    for (int y = 0; y &lt; 5; y++) {\n      cube&#091;x]&#091;y]&#091;4] = 0;\n    }\n  }\n}\n\n\/\/ apaga todo el cubo\nvoid clearCube() {\n  memset(cube, 0, 125 * sizeof cube&#091;0]&#091;0]&#091;0]);\n}\n\n\/\/ enciende LED\nvoid ledOn(int x, int y, int z) {\n  cube&#091;x]&#091;y]&#091;z] = 1;\n}\n\/\/ apaga LED\nvoid ledOff(int x, int y, int z) {\n  cube&#091;x]&#091;y]&#091;z] = 0;\n}\n\n\/\/ muestra la animaci\u00f3n durante el tiempo determinado\nvoid showCube(int mytime) {\n  delay(10 * mytime);\n  clearCube();\n}\n\n\/\/ pausa entre las diferentes animaciones\nvoid pause() {  \n  clearCube();\n  delay(500);\n}\n     \n\/\/ *************************** Interrupci\u00f3n del temporizador de refresco *********************\n\/\/ Accedemos directamente a los puertos en lugar de usar digitalWrite para ahorrar tiempo.\nISR(TIMER1_COMPA_vect) {\n  for (int x = 0; x &lt; 5; x++) { \n\n    if (cube&#091;0]&#091;0]&#091;x] == 1)PORTL |= (1 &lt;&lt; PORTL5);  else PORTL &amp;= ~(1 &lt;&lt; PORTL5); \/\/ pin 44\n    if (cube&#091;0]&#091;1]&#091;x] == 1)PORTL |= (1 &lt;&lt; PORTL6);  else PORTL &amp;= ~(1 &lt;&lt; PORTL6); \/\/ pin 43\n    if (cube&#091;0]&#091;2]&#091;x] == 1)PORTL |= (1 &lt;&lt; PORTL7);  else PORTL &amp;= ~(1 &lt;&lt; PORTL7); \/\/ pin 42\n    if (cube&#091;0]&#091;3]&#091;x] == 1)PORTG |= (1 &lt;&lt; PORTG0);  else PORTG &amp;= ~(1 &lt;&lt; PORTG0); \/\/ pin 41\n    if (cube&#091;0]&#091;4]&#091;x] == 1)PORTG |= (1 &lt;&lt; PORTG1);  else PORTG &amp;= ~(1 &lt;&lt; PORTG1); \/\/ pin 40\n\n    if (cube&#091;1]&#091;0]&#091;x] == 1)PORTA |= (1 &lt;&lt; PORTA5);  else PORTA &amp;= ~(1 &lt;&lt; PORTA5); \/\/ pin 27\n    if (cube&#091;1]&#091;1]&#091;x] == 1)PORTD |= (1 &lt;&lt; PORTD7);  else PORTD &amp;= ~(1 &lt;&lt; PORTD7); \/\/ pin 38\n    if (cube&#091;1]&#091;2]&#091;x] == 1)PORTG |= (1 &lt;&lt; PORTG2);  else PORTG &amp;= ~(1 &lt;&lt; PORTG2); \/\/ pin 39\n    if (cube&#091;1]&#091;3]&#091;x] == 1)PORTB |= (1 &lt;&lt; PORTB2);  else PORTB &amp;= ~(1 &lt;&lt; PORTB2); \/\/ pin 51\n    if (cube&#091;1]&#091;4]&#091;x] == 1)PORTB |= (1 &lt;&lt; PORTB3);  else PORTB &amp;= ~(1 &lt;&lt; PORTB3); \/\/ pin 50\n    \n    if (cube&#091;2]&#091;0]&#091;x] == 1)PORTC |= (1 &lt;&lt; PORTC0);  else PORTC &amp;= ~(1 &lt;&lt; PORTC0); \/\/ pin 37\n    if (cube&#091;2]&#091;1]&#091;x] == 1)PORTC |= (1 &lt;&lt; PORTC1);  else PORTC &amp;= ~(1 &lt;&lt; PORTC1); \/\/ pin 36\n    if (cube&#091;2]&#091;2]&#091;x] == 1)PORTC |= (1 &lt;&lt; PORTC2);  else PORTC &amp;= ~(1 &lt;&lt; PORTC2); \/\/ pin 35\n    if (cube&#091;2]&#091;3]&#091;x] == 1)PORTC |= (1 &lt;&lt; PORTC3);  else PORTC &amp;= ~(1 &lt;&lt; PORTC3); \/\/ pin 34\n    if (cube&#091;2]&#091;4]&#091;x] == 1)PORTC |= (1 &lt;&lt; PORTC4);  else PORTC &amp;= ~(1 &lt;&lt; PORTC4); \/\/ pin 33\n\n    if (cube&#091;3]&#091;0]&#091;x] == 1)PORTL |= (1 &lt;&lt; PORTL0);  else PORTL &amp;= ~(1 &lt;&lt; PORTL0); \/\/ pin 49\n    if (cube&#091;3]&#091;1]&#091;x] == 1)PORTL |= (1 &lt;&lt; PORTL1);  else PORTL &amp;= ~(1 &lt;&lt; PORTL1); \/\/ pin 48\n    if (cube&#091;3]&#091;2]&#091;x] == 1)PORTL |= (1 &lt;&lt; PORTL2);  else PORTL &amp;= ~(1 &lt;&lt; PORTL2); \/\/ pin 47\n    if (cube&#091;3]&#091;3]&#091;x] == 1)PORTL |= (1 &lt;&lt; PORTL3);  else PORTL &amp;= ~(1 &lt;&lt; PORTL3); \/\/ pin 46\n    if (cube&#091;3]&#091;4]&#091;x] == 1)PORTL |= (1 &lt;&lt; PORTL4);  else PORTL &amp;= ~(1 &lt;&lt; PORTL4); \/\/ pin 45\n\n    if (cube&#091;4]&#091;0]&#091;x] == 1)PORTC |= (1 &lt;&lt; PORTC5);  else PORTC &amp;= ~(1 &lt;&lt; PORTC5); \/\/ pin 32\n    if (cube&#091;4]&#091;1]&#091;x] == 1)PORTC |= (1 &lt;&lt; PORTC6);  else PORTC &amp;= ~(1 &lt;&lt; PORTC6); \/\/ pin 31\n    if (cube&#091;4]&#091;2]&#091;x] == 1)PORTC |= (1 &lt;&lt; PORTC7);  else PORTC &amp;= ~(1 &lt;&lt; PORTC7); \/\/ pin 30\n    if (cube&#091;4]&#091;3]&#091;x] == 1)PORTA |= (1 &lt;&lt; PORTA7);  else PORTA &amp;= ~(1 &lt;&lt; PORTA7); \/\/ pin 29\n    if (cube&#091;4]&#091;4]&#091;x] == 1)PORTA |= (1 &lt;&lt; PORTA6);  else PORTA &amp;= ~(1 &lt;&lt; PORTA6); \/\/ pin 28\n    digitalWrite(myLayer&#091;x], HIGH);\n    delayMicroseconds(1200);\n    digitalWrite(myLayer&#091;x], LOW);\n  }\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Proyecci\u00f3n en un futuro<\/h2>\n\n\n\n<p>El objetivo de nuestro proyecto ser\u00eda poder extrapolarlo a cubos de leds de tama\u00f1o mucho m\u00e1s grande (32x32x32, por ejemplo), en los que podr\u00edan llegar a representarse hologramas o animaciones mucho m\u00e1s impresionantes y reales. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">V\u00eddeo<\/h2>\n\n\n\n<p>Finalmente, insertamos el v\u00eddeo que recopila toda la informaci\u00f3n necesaria sobre nuestro proyecto (hardware y software), adem\u00e1s de una demostraci\u00f3n de su funcionamiento. <\/p>\n\n\n\n<p>LINK:<\/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<div class=\"video-container\"><iframe loading=\"lazy\" title=\"V\u00eddeo proyecto final empotrados\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/KdCBPQntHWc?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u00c1ngel Hernanz, Javier Mart\u00edn y Yolanda Cobo. Grupo 3 Introducci\u00f3n Cuando se nos asign\u00f3 este proyecto para la asignatura de , comenzamos a pensar y buscar posibles trabajos a realizar que fuesen diferentes y,&#46;&#46;&#46;<\/p>\n","protected":false},"author":22,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5217","post","type-post","status-publish","format-standard","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>Cubo de LEDs - 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\/cubo-de-leds\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cubo de LEDs - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"\u00c1ngel Hernanz, Javier Mart\u00edn y Yolanda Cobo. Grupo 3 Introducci\u00f3n Cuando se nos asign\u00f3 este proyecto para la asignatura de , comenzamos a pensar y buscar posibles trabajos a realizar que fuesen diferentes y,&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-13T15:12:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-13T15:12:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/Vista%20desde%20el%20lado.jpeg?raw=true\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 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\\\/cubo-de-leds\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Cubo de LEDs\",\"datePublished\":\"2022-05-13T15:12:55+00:00\",\"dateModified\":\"2022-05-13T15:12:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/\"},\"wordCount\":1054,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/github.com\\\/AngelHernanzBlanco\\\/FotosPersonas\\\/blob\\\/main\\\/Vista%20desde%20el%20lado.jpeg?raw=true\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/\",\"name\":\"Cubo de LEDs - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/github.com\\\/AngelHernanzBlanco\\\/FotosPersonas\\\/blob\\\/main\\\/Vista%20desde%20el%20lado.jpeg?raw=true\",\"datePublished\":\"2022-05-13T15:12:55+00:00\",\"dateModified\":\"2022-05-13T15:12:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/#primaryimage\",\"url\":\"https:\\\/\\\/github.com\\\/AngelHernanzBlanco\\\/FotosPersonas\\\/blob\\\/main\\\/Vista%20desde%20el%20lado.jpeg?raw=true\",\"contentUrl\":\"https:\\\/\\\/github.com\\\/AngelHernanzBlanco\\\/FotosPersonas\\\/blob\\\/main\\\/Vista%20desde%20el%20lado.jpeg?raw=true\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/cubo-de-leds\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cubo de LEDs\"}]},{\"@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\":\"\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cubo de LEDs - 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\/cubo-de-leds\/","og_locale":"es_ES","og_type":"article","og_title":"Cubo de LEDs - Proyectos con Arduino.","og_description":"\u00c1ngel Hernanz, Javier Mart\u00edn y Yolanda Cobo. Grupo 3 Introducci\u00f3n Cuando se nos asign\u00f3 este proyecto para la asignatura de , comenzamos a pensar y buscar posibles trabajos a realizar que fuesen diferentes y,&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2022-05-13T15:12:55+00:00","article_modified_time":"2022-05-13T15:12:56+00:00","og_image":[{"url":"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/Vista%20desde%20el%20lado.jpeg?raw=true","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"","Tiempo de lectura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/"},"author":{"name":"","@id":""},"headline":"Cubo de LEDs","datePublished":"2022-05-13T15:12:55+00:00","dateModified":"2022-05-13T15:12:56+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/"},"wordCount":1054,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/#primaryimage"},"thumbnailUrl":"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/Vista%20desde%20el%20lado.jpeg?raw=true","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/","name":"Cubo de LEDs - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/#primaryimage"},"thumbnailUrl":"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/Vista%20desde%20el%20lado.jpeg?raw=true","datePublished":"2022-05-13T15:12:55+00:00","dateModified":"2022-05-13T15:12:56+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/#primaryimage","url":"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/Vista%20desde%20el%20lado.jpeg?raw=true","contentUrl":"https:\/\/github.com\/AngelHernanzBlanco\/FotosPersonas\/blob\/main\/Vista%20desde%20el%20lado.jpeg?raw=true"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/cubo-de-leds\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Cubo de LEDs"}]},{"@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":"","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/5217","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\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=5217"}],"version-history":[{"count":13,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/5217\/revisions"}],"predecessor-version":[{"id":5675,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/5217\/revisions\/5675"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=5217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=5217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=5217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}