{"id":9089,"date":"2024-12-13T14:21:39","date_gmt":"2024-12-13T13:21:39","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=9089"},"modified":"2024-12-20T13:53:45","modified_gmt":"2024-12-20T12:53:45","slug":"pop-code","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/","title":{"rendered":"Pop &amp; Code"},"content":{"rendered":"\n<p><strong>CONTENIDOS<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>INTRODUCCI\u00d3N<\/li>\n\n\n\n<li>IMPLEMENTACI\u00d3N Y PASOS DADOS<\/li>\n\n\n\n<li>MATERIALES<\/li>\n\n\n\n<li>C\u00d3DIGO<\/li>\n\n\n\n<li>REPARTO DE TAREAS<\/li>\n\n\n\n<li>PROBLEMAS ENCONTRADOS<\/li>\n\n\n\n<li>CASOS DE USOS<\/li>\n\n\n\n<li>VIDEO DEL FUNCIONAMIENTO<\/li>\n\n\n\n<li>AUTORAS<\/li>\n<\/ol>\n\n\n\n<p><strong>INTRODUCCI\u00d3N<\/strong><\/p>\n\n\n\n<p>En esta asignatura se nos ha planteado el desaf\u00edo de desarrollar un proyecto de programaci\u00f3n en Arduino, junto con la elaboraci\u00f3n de un circuito el\u00e9ctrico. Nuestro trabajo final es una palomitera, cuyos elementos principales para asegurar su correcto funcionamiento son: una placa calefactora, un rel\u00e9 que controla la intensidad de la corriente el\u00e9ctrica, un anillo LED que cambia de color seg\u00fan eso estado en el que se encuentra la m\u00e1quina, una pantalla que muestra diversos mensajes, un cron\u00f3metro y un bot\u00f3n para reiniciar el proceso.<\/p>\n\n\n\n<p><strong>IMPLEMENTACI\u00d3N Y PASOS DADOS <\/strong><\/p>\n\n\n\n<p>El proceso de construcci\u00f3n de la maqueta de la palomitera se dividi\u00f3 en tres m\u00f3dulos clave: la programaci\u00f3n en Arduino, la interconexi\u00f3n de los componentes y la fabricaci\u00f3n de la estructura. En la programaci\u00f3n, se utiliz\u00f3 una pantalla LCD de 16&#215;2 para mostrar mensajes que indicaban el estado del proceso, como \u00abCOMPILANDO&#8230;\u00bb durante el calentamiento, \u00abEJECUTANDO&#8230;\u00bb mientras las palomitas se cocinaban, y \u00abLISTO!!!\u00bb al finalizar. Adem\u00e1s, se emple\u00f3 una tira de LEDs controlada por la biblioteca Adafruit_NeoPixel para mostrar visualmente el progreso, cambiando de blanco a rojo\/naranja y finalmente a verde cuando las palomitas estaban listas. El cron\u00f3metro, implementado con un display de 7 segmentos y gestionado por la biblioteca TM1637Display, mostraba una cuenta regresiva sincronizada con cada etapa del proceso. La placa calefactora, controlada por un rel\u00e9, se activaba y desactivaba en funci\u00f3n del estado del proceso, evitando el sobrecalentamiento.<\/p>\n\n\n\n<p>La interconexi\u00f3n de los componentes a la placa Arduino fue esencial para garantizar el correcto funcionamiento de la palomitera. El rel\u00e9, conectado al pin digital 10 del Arduino, controlaba la placa calefactora, permitiendo que esta se encendiera y apagara de manera segura. El pulsador, conectado al pin digital 2 con una resistencia pull-up interna, permit\u00eda al usuario reiniciar el proceso al ser presionado. La pantalla LCD se conect\u00f3 a los pines 8, 9, 4, 5, 6 y 7 del Arduino, y se configur\u00f3 para mostrar mensajes en tiempo real sobre el estado del proceso de las palomitas. El cron\u00f3metro, controlado por el m\u00f3dulo TM1637 y conectado a los pines 13 y 12, proporcionaba una cuenta regresiva precisa. Los LEDs se conectaron al pin digital 11 y se programaron para cambiar de color seg\u00fan la fase de la cocci\u00f3n.<\/p>\n\n\n\n<p>Cada uno de los componentes fue cuidadosamente integrado en el c\u00f3digo y el hardware. El rel\u00e9 garantizaba que la placa calefactora solo estuviera activa durante el tiempo necesario, mientras que los LEDs y la pantalla LCD ofrec\u00edan retroalimentaci\u00f3n visual clara sobre el estado del proceso. El cron\u00f3metro no solo mostraba el tiempo restante, sino que tambi\u00e9n ayudaba a coordinar las diferentes fases, como los 2 minutos de precalentamiento y los 4 minutos de cocci\u00f3n. El pulsador proporcionaba una forma sencilla y segura de reiniciar el ciclo en caso de ser necesario.<\/p>\n\n\n\n<p>De forma paralela a la creaci\u00f3n del software y el circuito, fuimos realizando la maqueta, utilizando diversos materiales como cajas, cart\u00f3n, papel para envolver&#8230; El resultado final es el que se puede ver en la siguiente foto. Adem\u00e1s, incluimos el Tinkercad del circuito con el objetivo de aportar una imagen m\u00e1s clara y visual de este.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"839\" height=\"809\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/TinkerCad.jpg\" alt=\"\" class=\"wp-image-9099\" style=\"width:273px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/TinkerCad.jpg 839w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/TinkerCad-300x289.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/TinkerCad-768x741.jpg 768w\" sizes=\"auto, (max-width: 839px) 100vw, 839px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><img loading=\"lazy\" decoding=\"async\" width=\"1038\" height=\"1898\" class=\"wp-image-9094\" style=\"width: 150px\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740.jpg\" alt=\"\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740.jpg 1038w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-164x300.jpg 164w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-560x1024.jpg 560w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-768x1404.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-840x1536.jpg 840w\" sizes=\"auto, (max-width: 1038px) 100vw, 1038px\" \/><\/p>\n\n\n\n<p class=\"has-text-align-left\"><strong>MATERIALES<\/strong><\/p>\n\n\n\n<p>En este apartado se detallan los materiales utilizados para la construcci\u00f3n de la palomitera programada, tanto a nivel de componentes electr\u00f3nicos como de elementos f\u00edsicos. Cada material fue seleccionado cuidadosamente para asegurar una integraci\u00f3n eficiente entre el hardware y el software, garantizando la funcionalidad y durabilidad del proyecto.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Kit de material dado por la universidad<\/strong><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cron\u00f3metro<\/strong>: para poder indicar el tiempo que necesitan las palomitas para calentarse.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Placa calefactora 12V<\/strong>: fue la primera placa que probamos y que tuvimos que sustituir, ya que no ten\u00eda la energ\u00eda suficiente para cumplir  con los objetivos de nuestro proyecto.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Placa calefactora 200V<\/strong>: segunda placa y final. Permite calentar el ma\u00edz para que explote y se hagan las palomitas.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pilas de petaca<\/strong>: hemos usado cuatro para alimentar el circuito.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Anillo de 24 LEDs<\/strong>: LEDs para iluminar el logo en indicar mediante colores el estado de las palomitas.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Recipiente<\/strong><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ma\u00edz para palomitas<\/strong><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Material para la maqueta<\/strong>: en este apartado incluimos cajas, cartones, pegamento de silicona, cartulinas, papel de distintas texturas y colores\u2026<\/li>\n<\/ul>\n\n\n\n<p><strong>C\u00d3DIGO<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>A continuaci\u00f3n, insertamos el c\u00f3digo de Arduino que hace que funcione correctamente la maqueta y sus diversas operaciones.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/CON RELE CON BOTON\n#include &lt;LiquidCrystal.h&gt;\n#include &lt;Adafruit_NeoPixel.h&gt;\n#include &lt;TM1637Display.h&gt;\n\n\/\/Configuraci\u00f3n de pines para el TM1637\n#define CLK 13 \/\/ Pin CLK conectado al TM1637\n#define DIO 12\/\/ Pin DIO conectado al TM1637\n\n\/\/Pines de la placa de Arduino\n#define PIN_BOTON 2\n#define PIN_RELE 10\n#define PIN_LED 11\n#define NUMPIXELS 24\n\nconst int rs = 8;\nconst int en = 9;\nconst int d4 = 4;\nconst int d5 = 5;\nconst int d6 = 6;\nconst int d7 = 7;\n\n\/\/Mensajes que van a ir apareciendo en la pantalla\nString mensaje0 = \"PULSA EL BOTON\";\nString mensaje1 = \"COMPILANDO...\";\nString mensaje2 = \"EJECUTANDO...\";\nString mensaje3 = \"LISTO!!!\";\n\n\/\/Declaraci\u00f3n v\u00eddeo leds\nAdafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN_LED, NEO_GRB + NEO_KHZ800);\n\n\/\/ Crear objeto para el display (el cron\u00f3metro)\nTM1637Display display(CLK, DIO);\n\n\/\/ Crear una instancia de la clase LiquidCrystal (la pantalla)\nLiquidCrystal lcd(rs, en, d4, d5, d6, d7);\n\n\/\/Variables que vamos a utilizar dentro del c\u00f3digo\nint etapa = 0; \/\/ 0: Blanco, 1: Rojo, 2: Verde\n\n\/\/La ruleta de colores comienza en el led 0\nint currentLED = 0;     \/\/ LED actual que encabeza el movimiento\n\n\n\/\/El contador que permite que el bot\u00f3n se active en la primera iteraci\u00f3n tras pulsarlo\nint cont=0;\n\nvoid setup() {\n   \/\/BOTON RELE\npinMode(PIN_RELE, OUTPUT);   \/\/Configuramos el pin como entrada con resistencia output\n\n   \/\/BOTON RESET\npinMode(PIN_BOTON, INPUT_PULLUP); \/\/Configuramos el pin como entrada con resistencia pull-up\n      Serial.begin(9600);\n\n   \/\/PANTALLA\n      \/\/Configurar la pantalla LCD con 14 columnas y 2 filas\n      lcd.begin(14, 2);\n      \/\/Borrar la pantalla por si hubiera algo anteriormente\n      lcd.clear();\n      \/\/Inicializar el display\n      display.setBrightness(7); \/\/ Ajusta el brillo (0 a 7)\n      \/\/Mostrar la primera parte del mensaje en la primera l\u00ednea\n      lcd.setCursor(0, 0);\n      analogWrite(PIN_LED, 100);\n      lcd.print(mensaje0.substring(0, 14));\n\n   \/\/LEDS\n      pixels.begin();\n      \/\/Configura todos los LEDs al color blanco\n      for (int i = 0; i &lt; NUMPIXELS; i++) {\n   pixels.setPixelColor(i, pixels.Color(10, 0, 10)); \/\/Morado\n      }\n      pixels.show();\n}\n\nvoid loop() {\n\n  int segundosCompilando=120;\n  int segundosEjecutando=240;\n  \/\/Control de las etapas basado en el tiempo transcurrido\n\n  switch (etapa) {\n    case 0: \/\/Primera etapa: BLANCO\n        if(cont==0){\n          \/\/BOTON RESETEAR\n             \/\/Leemos el estado del bot\u00f3n\n       while(!digitalRead(PIN_BOTON)){ \/\/mientras sea LOW\n               \/\/esperamos hasta que pulsen el bot\u00f3n\n            }\n if (digitalRead(PIN_BOTON)) { \/\/cuando lo hayan pulsado\n                cont++;\n                delay(1000);\n                break;\n               }\n        }else{\n            \/\/BOTON RELE\n               digitalWrite(PIN_RELE, HIGH);\n            \n            \/\/PANTALLA\n               \/\/Borrar la pantalla\n               lcd.clear();\n \/\/Mostrar la primera parte del mensaje en la   primera l\u00ednea\n               lcd.setCursor(0, 0);\n               lcd.print(mensaje1.substring(0, 14));\n\n           \/\/LEDS\n              pixels.begin();\n\n                \/\/Configura todos los LEDs al color blanco\n                for (int i = 0; i &lt; NUMPIXELS; i++) {\n                  \npixels.setPixelColor(i, pixels.Color(10, 10, 10)); \/\/Blanco\n                  \n                }\n                pixels.show();\n\n           \/\/CRON\u00d3METRO\n                while (segundosCompilando &gt;= 0) {\n                    \/\/Calcular minutos y segundos actuales\n                    int min = segundosCompilando \/ 60;\n                    int seg = segundosCompilando % 60;\n\n\/\/Formatear y mostrar el tiempo en el display\nint numeroDisplay = (min * 100) + seg; \/\/Formato MM:SS\ndisplay.showNumberDecEx(numeroDisplay, 0b01000000,  true); \/\/Mostrar MM:SS con el \":\" encendido\n\n\/\/Decrementar el valor de la cuenta atr\u00e1s\n                    segundosCompilando--;\n\n                    \/\/Esperar un segundo casi exacto\n                    delay(980);\n                                \n                    if (segundosCompilando == -1){ \n                       etapa=1;\n                       break;\n                   }\n               }\n          } \n        \n    case 1: \/\/ Segunda etapa: ROJO\n        \n   \/\/LEDS\n         for (int i = 0; i &lt; NUMPIXELS; i++) {\n            pixels.setPixelColor(i, pixels.Color(0, 0, 0));\n         }\n\n        \/\/PANTALLA\n            \/\/Borrar la pantalla\n            lcd.clear();\n\/\/Mostrar la primera parte del mensaje en la primera l\u00ednea\n             lcd.setCursor (0, 0);\n             lcd.print(mensaje2.substring(0, 14));\n\n        \/\/CRONOMETRO + PANTALLA\n         while (segundosEjecutando &gt;= 0) {\n\n             \/\/CRONOMETRO\n                \/\/Calcular minutos y segundos actuales\n                int min = segundosEjecutando \/ 60;\n                int seg = segundosEjecutando % 60;\n\n                \/\/Formatear y mostrar el tiempo en el display\n int numero = (min * 100) + seg; \/\/Formato MM:SS                      display.showNumberDecEx(numero, 0b01000000, true); \/\/Mostrar MM:SS con el \":\" encendido\n\n                \/\/Esperar medio segundo casi aproximado\n                delay(480);\n\n             \/\/LEDS\n              \/\/Encender 12 LEDs alternos basados en el  \u00edndice actual\n               for (int i = 0; i &lt; NUMPIXELS; i++) {\n if ((i + currentLED) % 2 == 0) { \/\/Solo   LEDs alternos (uno s\u00ed, uno no)\npixels.setPixelColor(i, pixels.Color(20, 0, 0)); \/\/Rojo\n                  }else{ \/\/Solo LEDs alternos (uno s\u00ed, uno no)\npixels.setPixelColor(i, pixels.Color(10, 5, 0)); \/\/NARANJA\n                 }\n               }\n               pixels.show(); \/\/Mostrar los cambio\n               \/\/Avanzar al siguiente LED\n               currentLED = (currentLED + 1) % NUMPIXELS;\n\n             \/\/GESTION DEL TIEMPO\n               \/\/Esperar medio segundo\n               delay(480);\n               segundosEjecutando--;\n\n             \/\/LEDS\n               \/\/Avanzar al siguiente LED\n               currentLED = (currentLED + 1) % NUMPIXELS;\n               \/\/Decrementar el valor de la cuenta atr\u00e1s\n               pixels.show(); \/\/Mostrar los cambios\n               \/\/Avanzar al siguiente LED\n               currentLED = (currentLED + 1) % NUMPIXELS;\n          }\n\n          display.showNumberDec(0, false); \/\/Mostrar 0000 al terminar\n          etapa=2;\n\n      break;\n\n      case 2: \/\/Tercera etapa:  \/\/VERDE\n\n        \/\/BOTON RELE\n            digitalWrite(PIN_RELE, LOW);\n\n        \/\/PANTALLA\n            \/\/Borrar la pantalla\n            lcd.clear();\n\/\/Mostrar la primera parte del mensaje en la primera l\u00ednea\n            lcd.setCursor(0, 0);\n            lcd.print(mensaje3.substring(0, 14));\n\n        \/\/LEDS\n            \/\/Cambia los LEDs a verde\n            for (int i = 0; i &lt; NUMPIXELS; i++) {\n  pixels.setPixelColor(i, pixels.Color(0, 5, 0)); \/\/Verde\n            }\n            pixels.show();\n\n        \/\/BOTON RESETEAR\n            \/\/Leemos el estado del bot\u00f3n\n            while(!digitalRead(PIN_BOTON)){\n   \n            }\n            if (digitalRead(PIN_BOTON)) {\n              etapa=0;\n              delay(1000);\n              break;\n          }\n     }\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>REPARTO DE TAREAS<\/strong><\/p>\n\n\n\n<p>En nuestro proyecto, las tres hemos participado en cada etapa del desarrollo, trabajando juntas para asegurar un buen resultado. No obstante, cada una se ha centrado principalmente en un \u00e1rea espec\u00edfica para aprovechar mejor nuestras habilidades individuales. Una de nosotras se encarg\u00f3 del dise\u00f1o f\u00edsico y la maqueta, asegurando que todos los elementos estuvieran bien integrados visual y funcionalmente. Otra se enfoc\u00f3 en el desarrollo del software, programando el c\u00f3digo necesario para el funcionamiento de los componentes electr\u00f3nicos. Finalmente, la tercera se especializ\u00f3 en el hardware, conectando y configurando los elementos para que trabajaran al un\u00edsono.<\/p>\n\n\n\n<p><strong>PROBLEMAS ENCONTRADOS<\/strong><\/p>\n\n\n\n<p>Durante la construcci\u00f3n de la maqueta de una palomitera, surgieron varios desaf\u00edos que requirieron ajustes en el dise\u00f1o original. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Placa calefactora: <\/strong>el principal problema fue calentar r\u00e1pidamente una cantidad significativa de palomitas. La placa calefactora de 12V inicialmente seleccionada no alcanzaba las temperaturas necesarias, resultando en un tiempo de calentamiento excesivo y una producci\u00f3n m\u00ednima de palomitas. Para solucionar esto, se reemplaz\u00f3 la placa por una de 200V, lo que permiti\u00f3 una distribuci\u00f3n m\u00e1s eficiente del calor, mejorando significativamente el rendimiento.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Conexi\u00f3n de la placa con la corriente alterna:<\/strong> este problema fue crucial, ya que al conectarla directamente, provocaba cortes de luz. Esto se resolvi\u00f3 utilizando un transformador de 220V a 12V. Sin embargo, se concluy\u00f3 que la placa original no ten\u00eda suficiente potencia y se reemplaz\u00f3 por una de 200V y 600W. Para integrar este nuevo sistema, se implement\u00f3 un rel\u00e9 controlado por Arduino, que permiti\u00f3 operar dos circuitos: uno de baja potencia para Arduino y otro de alta potencia para la placa calefactora.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sincronizaci\u00f3n de componentes:<\/strong> finalmente, surgieron problemas a la hora de sincronizar ciertos elementos, como el pulsador, el cron\u00f3metro y la pantalla LCD, que no funcionaban de manera coordinada. Tras una depuraci\u00f3n del c\u00f3digo, se ajustaron los tiempos de respuesta del bot\u00f3n y se optimiz\u00f3 el c\u00f3digo del cron\u00f3metro, logrando una sincronizaci\u00f3n adecuada de todos los elementos.<\/li>\n<\/ul>\n\n\n\n<p><strong>CASOS DE USO<\/strong><\/p>\n\n\n\n<p>La m\u00e1quina de palomitas que desarrollamos tiene cuatro casos de uso principales, que representan los diferentes estados de su funcionamiento. <\/p>\n\n\n\n<p>1. El primer caso es \u00abIniciar el Proceso\u00bb, que se activa al pulsar un bot\u00f3n cuando las luces est\u00e1n en color morado y la pantalla LCD indica \u00abPulsar el bot\u00f3n\u00bb. Al hacerlo, las luces cambian a blanco, el cron\u00f3metro inicia una cuenta regresiva de 2 minutos y la placa calefactora empieza a calentar el aceite, finalizando cuando el cron\u00f3metro llega a cero.<\/p>\n\n\n\n<p>2. El segundo caso es \u00abCalentar y Preparar el Ma\u00edz\u00bb, que comienza cuando finaliza el estado anterior. En este punto, las luces alternan entre rojo y amarillo, el cron\u00f3metro se reinicia con una cuenta regresiva de 4 minutos y la pantalla muestra \u201cEjecutando\u2026\u201d. Durante este estado, el ma\u00edz se calienta hasta que el cron\u00f3metro llega a cero y la m\u00e1quina avanza al siguiente estado.<\/p>\n\n\n\n<p>3. El tercer caso es \u00abPalomitas Listas\u00bb, que se activa cuando el tiempo de \u00abEjecutando\u00bb termina. En este estado, las luces cambian a verde y la pantalla LCD muestra \u00abListo!!!\u00bb, indicando que las palomitas est\u00e1n listas para disfrutarse.<\/p>\n\n\n\n<p>4. Finalmente, el cuarto caso es \u00abReiniciar el Proceso\u00bb, que permite al usuario comenzar nuevamente desde el estado \u00abCompilando\u00bb. Al pulsar el bot\u00f3n, las luces blancas se encienden, el cron\u00f3metro se reinicia a 2 minutos y el ciclo de preparaci\u00f3n se repite.<\/p>\n\n\n\n<p>A continuaci\u00f3n, hemos elaborado un diagrama de estados que representa cada uno de estos casos de uso y c\u00f3mo se realiza la transici\u00f3n de unos a otros. De esta manera, conseguimos un planteamiento m\u00e1s visual del funcionamiento de la maqueta.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"532\" height=\"233\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/image.png\" alt=\"\" class=\"wp-image-9101\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/image.png 532w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/image-300x131.png 300w\" sizes=\"auto, (max-width: 532px) 100vw, 532px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>VIDEO DEL FUNCIONAMIENTO<\/strong><\/p>\n\n\n\n<p>Adjuntamos un v\u00eddeo a c\u00e1mara r\u00e1pida del funcionamiento de la maqueta, pasando por los cuatro estados, hasta hacer las palomitas.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1398\" style=\"aspect-ratio: 1008 \/ 1398;\" width=\"1008\" controls src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/videoPalomitera.mov\"><\/video><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>AUTORAS<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Elena Gallego-Nicasio Maroto<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Paula Marcela Barroso Robleda<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Marta Sacrist\u00e1n Villalba<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>CONTENIDOS INTRODUCCI\u00d3N En esta asignatura se nos ha planteado el desaf\u00edo de desarrollar un proyecto de programaci\u00f3n en Arduino, junto con la elaboraci\u00f3n de un circuito el\u00e9ctrico. Nuestro trabajo final es una palomitera, cuyos&#46;&#46;&#46;<\/p>\n","protected":false},"author":243,"featured_media":9343,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9089","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>Pop &amp; Code - 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\/pop-code\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pop &amp; Code - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"CONTENIDOS INTRODUCCI\u00d3N En esta asignatura se nos ha planteado el desaf\u00edo de desarrollar un proyecto de programaci\u00f3n en Arduino, junto con la elaboraci\u00f3n de un circuito el\u00e9ctrico. Nuestro trabajo final es una palomitera, cuyos&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-13T13:21:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-20T12:53:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1038\" \/>\n\t<meta property=\"og:image:height\" content=\"1898\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"dse2425g14\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"dse2425g14\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 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\\\/pop-code\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/\"},\"author\":{\"name\":\"dse2425g14\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/7ddf89e61caa3f835c221c2bd3e6f717\"},\"headline\":\"Pop &amp; Code\",\"datePublished\":\"2024-12-13T13:21:39+00:00\",\"dateModified\":\"2024-12-20T12:53:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/\"},\"wordCount\":1430,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/12\\\/IMG-20241202-WA0044-e1734030116740-1.jpg\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/\",\"name\":\"Pop &amp; Code - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/12\\\/IMG-20241202-WA0044-e1734030116740-1.jpg\",\"datePublished\":\"2024-12-13T13:21:39+00:00\",\"dateModified\":\"2024-12-20T12:53:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/12\\\/IMG-20241202-WA0044-e1734030116740-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/12\\\/IMG-20241202-WA0044-e1734030116740-1.jpg\",\"width\":1038,\"height\":1898},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/pop-code\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pop &amp; Code\"}]},{\"@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\\\/7ddf89e61caa3f835c221c2bd3e6f717\",\"name\":\"dse2425g14\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1371f40667b726c82e43af801837f1940e67c761840b061a53ba13488a2f3f91?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1371f40667b726c82e43af801837f1940e67c761840b061a53ba13488a2f3f91?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1371f40667b726c82e43af801837f1940e67c761840b061a53ba13488a2f3f91?s=96&d=mm&r=g\",\"caption\":\"dse2425g14\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/dse2425g14\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pop &amp; Code - 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\/pop-code\/","og_locale":"es_ES","og_type":"article","og_title":"Pop &amp; Code - Proyectos con Arduino.","og_description":"CONTENIDOS INTRODUCCI\u00d3N En esta asignatura se nos ha planteado el desaf\u00edo de desarrollar un proyecto de programaci\u00f3n en Arduino, junto con la elaboraci\u00f3n de un circuito el\u00e9ctrico. Nuestro trabajo final es una palomitera, cuyos&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2024-12-13T13:21:39+00:00","article_modified_time":"2024-12-20T12:53:45+00:00","og_image":[{"width":1038,"height":1898,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-1.jpg","type":"image\/jpeg"}],"author":"dse2425g14","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"dse2425g14","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/"},"author":{"name":"dse2425g14","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/7ddf89e61caa3f835c221c2bd3e6f717"},"headline":"Pop &amp; Code","datePublished":"2024-12-13T13:21:39+00:00","dateModified":"2024-12-20T12:53:45+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/"},"wordCount":1430,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-1.jpg","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/","name":"Pop &amp; Code - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-1.jpg","datePublished":"2024-12-13T13:21:39+00:00","dateModified":"2024-12-20T12:53:45+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/12\/IMG-20241202-WA0044-e1734030116740-1.jpg","width":1038,"height":1898},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/pop-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Pop &amp; Code"}]},{"@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\/7ddf89e61caa3f835c221c2bd3e6f717","name":"dse2425g14","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/1371f40667b726c82e43af801837f1940e67c761840b061a53ba13488a2f3f91?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1371f40667b726c82e43af801837f1940e67c761840b061a53ba13488a2f3f91?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1371f40667b726c82e43af801837f1940e67c761840b061a53ba13488a2f3f91?s=96&d=mm&r=g","caption":"dse2425g14"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/dse2425g14\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/9089","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\/243"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=9089"}],"version-history":[{"count":9,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/9089\/revisions"}],"predecessor-version":[{"id":9105,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/9089\/revisions\/9105"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/9343"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=9089"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=9089"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=9089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}