{"id":6583,"date":"2023-05-05T23:35:58","date_gmt":"2023-05-05T21:35:58","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=6583"},"modified":"2023-05-05T23:53:45","modified_gmt":"2023-05-05T21:53:45","slug":"dispensador-de-pastillas","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/","title":{"rendered":"Dispensador de pastillas"},"content":{"rendered":"\n<p>AUTORES: Alonso Callejo Bl\u00e1zquez, Luc\u00eda Jim\u00e9nez Garc\u00eda y Rodrigo Delgado Romero<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472-660x1024.jpeg\" alt=\"\" class=\"wp-image-6674\" width=\"238\" height=\"370\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472-660x1024.jpeg 660w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472-193x300.jpeg 193w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472-768x1191.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472.jpeg 828w\" sizes=\"auto, (max-width: 238px) 100vw, 238px\" \/><\/figure>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color\" style=\"font-size:30px\">OBJETIVOS DEL PROYECTO<\/p>\n\n\n\n<p style=\"font-size:18px\">El pastillero es un objeto muy pr\u00e1ctico y \u00fatil para aquellas personas que deben seguir un tratamiento farmacol\u00f3gico que implica tomar una cantidad definida de pastillas al d\u00eda. En particular; para personas mayores o que toman m\u00faltiples medicamentos, el pastillero es esencial para garantizar la adherencia efectiva al tratamiento prescrito.<\/p>\n\n\n\n<p style=\"font-size:18px\">El objetivo del proyecto es que el uso de un pastillero haga m\u00e1s f\u00e1cil para el paciente realizar una toma correcta de los medicamentos o f\u00e1rmacos que debe ingerir en su d\u00eda a d\u00eda. Esto puede ayudar a asegurar que el tratamiento sea efectivo y que la enfermedad est\u00e9 bajo control.<\/p>\n\n\n\n<p style=\"font-size:18px\">En general, los beneficios de usar un pastillero incluyen evitar confusiones en cuanto a cu\u00e1ndo tomar tus medicamentos y cu\u00e1ntos debes tomar; reducir el riesgo de errores de dosificaci\u00f3n y de toma de medicamentos incorrectos y adem\u00e1s mantener tus medicinas organizadas y separadas seg\u00fan su horario de toma para aumentar la adherencia al tratamiento.<\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color\" style=\"font-size:30px\">IMPLEMENTACI\u00d3N DEL PROYECTO<\/p>\n\n\n\n<p style=\"font-size:18px\">El paso inicial fue elegir el tema del proyecto. Quer\u00edamos algo que nos motivara y para ello buscamos algo \u00fatil y cercano que nosotros mismos pudi\u00e9semos llegar a dar uso. Como no encontramos una idea com\u00fan pensamos en nuestros familiares y llegamos a la conclusi\u00f3n de que un pastillero ser\u00eda una gran opci\u00f3n para que nuestros mayores pudiesen tomarse la gran cantidad de sus medicamentos diarios con seguridad y de forma organizada. De esta manera ninguno tendr\u00eda excusa para tomarse correctamente todas sus pastillas.<\/p>\n\n\n\n<p style=\"font-size:18px\">Una vez elegido el proyecto a desarrollar valoramos que funciones esenciales deber\u00eda desarrollar y as\u00ed ideamos los diferentes casos de uso a implementar.<\/p>\n\n\n\n<p style=\"font-size:18px\">Con todo esto en mente procedimos a pensar en la estructura final y concluimos que el pastillero tendr\u00eda una tapa fija con una puerta que diese acceso a uno de sus sietes compartimentos, seg\u00fan el requerido, y este tendr\u00eda que ir rotando.<\/p>\n\n\n\n<p style=\"font-size:18px\">Nos pusimos manos a la obra, determinamos los materiales que \u00edbamos a necesitar, nos hicimos con ellos y poco a poco fuimos montando el circuito. Primero probamos los componentes individualmente y luego fuimos junt\u00e1ndolos de dos en dos hasta llegar al circuito final. As\u00ed lo hicimos tambi\u00e9n de manera paralela con el c\u00f3digo.<\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color\" style=\"font-size:30px\">MATERIALES Y COSTES<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>COMPONENTE<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>USO<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Motor paso a paso<\/td><td class=\"has-text-align-center\" data-align=\"center\">Giro del pastillero<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Servo motor<\/td><td class=\"has-text-align-center\" data-align=\"center\">Movimiento de apertura y cierre de la puerta del pastillero<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Sensor ultras\u00f3nico<\/td><td class=\"has-text-align-center\" data-align=\"center\">Medir la distancia que hay hasta el pastillero: cada vez que acercamos la mano se abrir\u00e1 la puerta<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Led verde<\/td><td class=\"has-text-align-center\" data-align=\"center\">Se enciende cuando la puerta est\u00e1 abierta del todo<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Led rojo<\/td><td class=\"has-text-align-center\" data-align=\"center\">Se enciende cuando la puerta est\u00e1 cerrada<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Pulsador<\/td><td class=\"has-text-align-center\" data-align=\"center\">Activar el modo de recarga<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">M\u00f3dulo RTC<\/td><td class=\"has-text-align-center\" data-align=\"center\">Detectar la hora local del sistema<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Placa UNO arduino<\/td><td class=\"has-text-align-center\" data-align=\"center\">&#8211;<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Cable USB arduino<\/td><td class=\"has-text-align-center\" data-align=\"center\">&#8211;<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">3 resistencias de 1k\u03a9<\/td><td class=\"has-text-align-center\" data-align=\"center\">Usadas para los dos leds y el pulsador<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">2 protoboard + 1 mini protoboard<\/td><td class=\"has-text-align-center\" data-align=\"center\">&#8211;<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Cables dupont femenino a femenino, masculino a femenino y masculino a masculino<\/td><td class=\"has-text-align-center\" data-align=\"center\">&#8211;<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">1 bisagra y 1 l\u00e1mina de contrachapado<\/td><td class=\"has-text-align-center\" data-align=\"center\">Para hacer la tapa del pastillero<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">1 pastillero de 7 compartimentos<\/td><td class=\"has-text-align-center\" data-align=\"center\">Depositar las pastillas<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Cinta aislante<\/td><td class=\"has-text-align-center\" data-align=\"center\">&#8211;<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Sierra de calar, c\u00fater, taladro y pistola termofusible<\/td><td class=\"has-text-align-center\" data-align=\"center\">Herramientas usadas para realizar la estructura del proyecto<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p style=\"font-size:18px\">El coste de materiales se puede resumir en: 23,50\u20ac (2 servomotores + pastillero), 6,5\u20ac (bisagras + contrachapado), 8,50\u20ac (m\u00f3dulo RTC), 2,5\u20ac (cables extra), 6,5\u20ac (materiales como pegamento para pistola termofusible, cinta aislante\u2026). En total nos gastamos unos <strong>16\u20ac<\/strong> por cabeza aproximadamente al ser 3 los componentes del grupo ya que cont\u00e1bamos con gran parte del material en casa o gracias al kit que nos proporcionaron.<\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color\" style=\"font-size:30px\">CASOS DE USO<\/p>\n\n\n\n<p style=\"font-size:18px\">Nuestro sistema implementa tres casos de uso diferentes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"font-size:19px\"><strong>Coger la pastilla correspondiente del pastillero:<\/strong><\/li>\n<\/ul>\n\n\n\n<p style=\"font-size:18px\">Gracias al sensor ultras\u00f3nico, el sistema detectar\u00e1 que el paciente quiere recoger su pastilla cada vez que acerque la mano a la tapa y la abrir\u00e1.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"font-size:19px\"><strong>Programar una hora para coger la pastilla:<\/strong><\/li>\n<\/ul>\n\n\n\n<p style=\"font-size:18px\">El paciente tiene la opci\u00f3n de elegir la hora a la que necesita coger su pastilla. Podr\u00e1 programar hasta 7 horas. Esta opci\u00f3n es muy \u00fatil cuando se necesita tomar una serie de medicamentos diarios a una hora espec\u00edfica.<br>Para ello el pastillero abrir\u00e1 la puerta en el compartimento necesario a la hora especificada para que la pastilla requerida pueda ser recogida.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"font-size:19px\"><strong>Modo de recarga:<\/strong><\/li>\n<\/ul>\n\n\n\n<p style=\"font-size:18px\">Si se pulsa el bot\u00f3n del pastillero, este permitir\u00e1 recargar sus 7 compartimentos con las pastillas correspondientes. Para ello el pastillero ir\u00e1 girando y abrir\u00e1 la puerta cuando est\u00e9 en la posici\u00f3n adecuada para que se depositen los f\u00e1rmacos. La puerta permanecer\u00e1 abierta el tiempo suficiente para introducir los medicamentos y se cerrar\u00e1 para que el pastillero gire a la siguiente posici\u00f3n. As\u00ed se llevar\u00e1 a cabo para sus 7 huecos de manera que quede completamente recargado.<\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color\" style=\"font-size:30px\">C\u00d3DIGO DEL PROYECTO<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:16px\"><code>#include &lt;Servo.h&gt; \n#include &lt;Wire.h&gt;\n#include &lt;RTClib.h&gt;\n#include &lt;Stepper.h&gt;\nServo myservo;\nRTC_DS3231 rtc;\nStepper motor1(2048,8,10,9,11);\n#define servoPin 5 \nint angle = 0;\nint trigPin = 12; \/\/Disparador (Trigger)\nint echoPin = 13; \/\/Eco (Echo)\nlong duration, cm;\nconst int ledRojo = 7; \/\/Led Rojo\nconst int ledVerde = 6; \/\/Led Verde\nconst int buttonPin = 2; \/\/Pin del boton\nint buttonState = 0; \/\/ variable para saber el estado del bot\u00f3n\n\nvoid setup(){\n  Serial.begin(9600); \/\/Inicia el serial port\n  myservo.attach(servoPin); \/\/Attach the Servo variable to a pin\n  myservo.write(0);\n  motor1.setSpeed(2);\n  if (! rtc.begin()){\n    Serial.println(\"M\u00f3dulo RTC no encontrado !\");\n    while (1);\n  }\n  rtc.adjust(DateTime(__DATE__, __TIME__));\n  pinMode(trigPin, OUTPUT);\n  pinMode(echoPin, INPUT);\n  pinMode(ledRojo, OUTPUT); \n  pinMode(ledVerde, OUTPUT); \n  pinMode(buttonPin, INPUT); \/\/ Se define buttonPin como puerto de entrada \n}\n\nvoid loop(){\n\n  buttonState = digitalRead(buttonPin); \/\/ Se lee el estado del bot\u00f3n \n  if (buttonState == HIGH){\n    for(int i= 0; i&lt;=6; i++){\n      for(angle=0;angle&lt;=25;angle+=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(10000);\n      motor1.step(300);\n      delay(10000);\n      for(angle=25;angle&lt;=0;angle-=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(5000);\n    }\n  }else{\n    \/\/El sensor se activa con un pulso ALTO de 10 microsegundos o m\u00e1s\n    \/\/Emite un breve pulso BAJO antes para asegurar un pulso ALTO\n    digitalWrite(trigPin, LOW);\n    delayMicroseconds(5);\n    digitalWrite(trigPin, HIGH);\n    delayMicroseconds(10);\n    digitalWrite(trigPin, LOW);\n\n    \/\/Lee la se\u00f1al del sensor: un pulso ALTO cuya duracion \n    \/\/es el tiempo (en microsegundos) desde el env\u00edo del \n    \/\/ping hasta la recepcion del de su eco en un objeto\n    pinMode(echoPin, INPUT);\n    duration = pulseIn(echoPin, HIGH);\n\n    \/\/Convierte el tiempo en distancia\n    cm = (duration\/2) \/ 29.1;\n  \n    Serial.print(cm);\n    Serial.print(\" cm\");\n    Serial.println();\n    delay(10000);\n\n    if(cm&lt;5){\n      for(angle=0;angle&lt;=25;angle+=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(10000);\n      for(angle=25;angle&gt;=0;angle-=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n    }\n\n    DateTime fecha = rtc.now();\n    int hora = fecha.hour();\n    int minuto = fecha.minute();\n\n    if((hora == 15)&amp;&amp;(minuto==45)){\n      motor1.step(292);\n      delay(2000);\n      for(angle=0;angle&lt;=25;angle+=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(60000);\n      for(angle=25;angle&gt;=0;angle-=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n    }\n\n    if((hora == 15)&amp;&amp;(minuto==46)){\n      motor1.step(292);\n      delay(2000);\n      for(angle=0;angle&lt;=25;angle+=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(60000);\n      for(angle=25;angle&gt;=0;angle-=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n    }\n\n    if((hora == 21)&amp;&amp;(minuto==13)){\n      motor1.step(300);\n      delay(2000);\n      for(angle=0;angle&lt;=25;angle+=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(60000);\n      for(angle=25;angle&gt;=0;angle-=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n    }\n\n    if((hora == 18)&amp;&amp;(minuto==45)){\n      motor1.step(292);\n      delay(2000);\n      for(angle=0;angle&lt;=25;angle+=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(60000);\n      for(angle=25;angle&gt;=0;angle-=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n    }\n\n    if((hora == 20)&amp;&amp;(minuto==20)){\n      motor1.step(292);\n      delay(2000);\n      for(angle=0;angle&lt;=25;angle+=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(60000);\n      for(angle=25;angle&gt;=0;angle-=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n    }\n\n    if((hora == 20)&amp;&amp;(minuto==44)){\n      motor1.step(300);\n      delay(2000);\n      for(angle=0;angle&lt;=25;angle+=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(60000);\n      for(angle=25;angle&gt;=0;angle-=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n    }\n\n    if((hora == 11)&amp;&amp;(minuto==10)){\n      motor1.step(292);\n      delay(2000);\n      for(angle=0;angle&lt;=25;angle+=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n      delay(60000);\n      for(angle=25;angle&gt;=0;angle-=1){\n        myservo.write(angle);\n        if(angle&gt;=25){\n          digitalWrite(ledVerde, HIGH);\n          digitalWrite(ledRojo, LOW);\n        }\n        else{\n          digitalWrite(ledRojo, HIGH);\n          digitalWrite(ledVerde, LOW);\n        }\n        delay(50);\n      }\n    }\n  }\n}\n<\/code><\/pre>\n\n\n\n<p style=\"font-size:18px\">Empezamos a\u00f1adiendo las librer\u00edas pertinentes como que sirve para controlar el servo motor, para manejar el m\u00f3dulo RTC y la para manejar el motor paso a paso. Despu\u00e9s procedimos a declarar las diferentes variables a utilizar y definir los pines a los que van los diferentes componentes usados.<\/p>\n\n\n\n<p style=\"font-size:18px\">En el setup a\u00f1adimos los diferentes pines de entrada y de salida y alg\u00fan otro detalle como poner el servo motor a 0 para que no realice movimientos agresivos cuando se conecta con arduino (myservo.write(0);).<\/p>\n\n\n\n<p style=\"font-size:18px\">Y finalmente en el loop definimos los casos de uso:<br>Un primer caso donde comprobamos si se ha pulsado el bot\u00f3n ( if (buttonState == HIGH)). En caso de ser as\u00ed se activa el modo recarga y en caso contrario se comprueba si el sensor ultras\u00f3nico ha percibido movimiento.<br>De esta manera, cuando recibe movimiento a menos de 5 cm se abre el pastillero y se enciende el led verde, espera en esa posici\u00f3n unos segundos y luego se cierra y se enciende el led rojo(if(cm&lt;5)).<br>Para terminar, determinamos la hora a la que queremos que el pastillero se abra (if((hora == xx)&amp;&amp;(minuto = xx))). Se pueden programar hasta 7 horas.<\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color\" style=\"font-size:30px\">PROBLEMAS Y POSIBLES SOLUCIONES<\/p>\n\n\n\n<p style=\"font-size:18px\">Una posible mejora del proyecto podr\u00eda ser incorporar al sistema la opci\u00f3n de que el usuario seleccione f\u00edsicamente la hora a la que desea programar la apertura del pastillero sin necesidad de hacerlo directamente desde el software de arduino. Otra opci\u00f3n podr\u00eda ser desarrollar un programa externo desde el cu\u00e1l poder seleccionarla, como si fuese una aplicaci\u00f3n.<\/p>\n\n\n\n<p style=\"font-size:18px\">Un aspecto que nos ha resultado laborioso ha sido implementar todas las conexiones necesarias para que los distintos componentes del sistema funcionen correctamente y empotrarlos en una estructura com\u00fan. Otra posible mejora podr\u00eda ser que estos est\u00e9n est\u00e9ticamente mejor colocados pero que sigan cumpliendo con su funci\u00f3n. Por ejemplo, que los cables sean menos visibles o que la estructura de la tapa sea m\u00e1s uniforme.<\/p>\n\n\n\n<p style=\"font-size:18px\">Adem\u00e1s, en el c\u00f3digo tuvimos que implementar bastantes \u201cdelays\u201d para que la puerta se abriese y cerrase una \u00fanica vez a la hora seleccionada. Esto hizo que el tiempo de espera hasta que se abriese fuese m\u00e1s del realmente deseado. Otra posible mejora podr\u00eda ser cuadrar mejor los \u201cdelays\u201d para que el sistema funcione m\u00e1s eficientemente en su totalidad.<\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color\" style=\"font-size:30px\">V\u00cdDEO DEL FUNCIONAMIENTO<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/drive.google.com\/file\/d\/10tMFzOpPMFcdJLtZnu21Q159P3mWHwPz\/view?usp=share_link\"><\/video><\/figure>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/10tMFzOpPMFcdJLtZnu21Q159P3mWHwPz\/view?usp=share_link\">https:\/\/drive.google.com\/file\/d\/10tMFzOpPMFcdJLtZnu21Q159P3mWHwPz\/view?usp=share_link<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>AUTORES: Alonso Callejo Bl\u00e1zquez, Luc\u00eda Jim\u00e9nez Garc\u00eda y Rodrigo Delgado Romero OBJETIVOS DEL PROYECTO El pastillero es un objeto muy pr\u00e1ctico y \u00fatil para aquellas personas que deben seguir un tratamiento farmacol\u00f3gico que implica&#46;&#46;&#46;<\/p>\n","protected":false},"author":8,"featured_media":6677,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6583","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.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dispensador de pastillas - 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\/dispensador-de-pastillas\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dispensador de pastillas - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"AUTORES: Alonso Callejo Bl\u00e1zquez, Luc\u00eda Jim\u00e9nez Garc\u00eda y Rodrigo Delgado Romero OBJETIVOS DEL PROYECTO El pastillero es un objeto muy pr\u00e1ctico y \u00fatil para aquellas personas que deben seguir un tratamiento farmacol\u00f3gico que implica&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-05T21:35:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-05T21:53:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"828\" \/>\n\t<meta property=\"og:image:height\" content=\"1284\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"gdhwsw2\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"gdhwsw2\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 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\\\/dispensador-de-pastillas\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/\"},\"author\":{\"name\":\"gdhwsw2\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/7491e54afbe5e7fd53467fccb9c7ce44\"},\"headline\":\"Dispensador de pastillas\",\"datePublished\":\"2023-05-05T21:35:58+00:00\",\"dateModified\":\"2023-05-05T21:53:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/\"},\"wordCount\":1247,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/05\\\/IMG_0472.jpg\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/\",\"name\":\"Dispensador de pastillas - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/05\\\/IMG_0472.jpg\",\"datePublished\":\"2023-05-05T21:35:58+00:00\",\"dateModified\":\"2023-05-05T21:53:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/05\\\/IMG_0472.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/05\\\/IMG_0472.jpg\",\"width\":828,\"height\":1284},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/dispensador-de-pastillas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dispensador de pastillas\"}]},{\"@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\\\/7491e54afbe5e7fd53467fccb9c7ce44\",\"name\":\"gdhwsw2\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g\",\"caption\":\"gdhwsw2\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/gdhwsw2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dispensador de pastillas - 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\/dispensador-de-pastillas\/","og_locale":"es_ES","og_type":"article","og_title":"Dispensador de pastillas - Proyectos con Arduino.","og_description":"AUTORES: Alonso Callejo Bl\u00e1zquez, Luc\u00eda Jim\u00e9nez Garc\u00eda y Rodrigo Delgado Romero OBJETIVOS DEL PROYECTO El pastillero es un objeto muy pr\u00e1ctico y \u00fatil para aquellas personas que deben seguir un tratamiento farmacol\u00f3gico que implica&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2023-05-05T21:35:58+00:00","article_modified_time":"2023-05-05T21:53:45+00:00","og_image":[{"width":828,"height":1284,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472.jpg","type":"image\/jpeg"}],"author":"gdhwsw2","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"gdhwsw2","Tiempo de lectura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/"},"author":{"name":"gdhwsw2","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/7491e54afbe5e7fd53467fccb9c7ce44"},"headline":"Dispensador de pastillas","datePublished":"2023-05-05T21:35:58+00:00","dateModified":"2023-05-05T21:53:45+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/"},"wordCount":1247,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472.jpg","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/","name":"Dispensador de pastillas - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472.jpg","datePublished":"2023-05-05T21:35:58+00:00","dateModified":"2023-05-05T21:53:45+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/IMG_0472.jpg","width":828,"height":1284},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/dispensador-de-pastillas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Dispensador de pastillas"}]},{"@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\/7491e54afbe5e7fd53467fccb9c7ce44","name":"gdhwsw2","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g","caption":"gdhwsw2"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/gdhwsw2\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/6583","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=6583"}],"version-history":[{"count":5,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/6583\/revisions"}],"predecessor-version":[{"id":6678,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/6583\/revisions\/6678"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/6677"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=6583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=6583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=6583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}