{"id":2131,"date":"2024-01-28T22:03:21","date_gmt":"2024-01-28T22:03:21","guid":{"rendered":"https:\/\/garikoitz.info\/blog\/?p=2131"},"modified":"2024-12-18T21:44:10","modified_gmt":"2024-12-18T21:44:10","slug":"sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor","status":"publish","type":"post","link":"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/","title":{"rendered":"SINTONIZAR PID CON ARDUINO &#8211; Control de velocidad de un motor"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u00cdndice<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Introduccion\" >Introducci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Componentes\" >Componentes<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Arduino_UNO_R3\" >Arduino UNO R3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Protoboard\" >Protoboard<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Motorreductor_3-6V\" >Motorreductor 3-6V<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Controlador_motor_L298N\" >Controlador motor L298N<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Disco_ranurado\" >Disco ranurado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Encoder_infrarrojo\" >Encoder infrarrojo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Condensador_10_uF\" >Condensador 10 uF<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Cables_dupont\" >Cables dupont<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Fuente_de_alimentacion_externa_de_7-12V\" >Fuente de alimentaci\u00f3n externa de 7-12V<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Esquema_de_conexiones\" >Esquema de conexiones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Montaje\" >Montaje<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Identificacion\" >Identificaci\u00f3n<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Adecuacion_de_la_senal\" >Adecuaci\u00f3n de la se\u00f1al<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Recopilacion_de_datos_en_lazo_abierto\" >Recopilaci\u00f3n de datos en lazo abierto<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Control_PID\" >Control PID<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Esquema_de_control\" >Esquema de control<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Prueba_de_sintonias\" >Prueba de sinton\u00edas<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Conclusiones\" >Conclusiones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Enlaces\" >Enlaces<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/#Libros_y_publicaciones\" >Libros y publicaciones<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Introduccion\"><\/span>Introducci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En esta entrada, exploraremos una implementaci\u00f3n b\u00e1sica y f\u00e1cil de entender del control de velocidad de un motor usando Arduino. Aunque es un ejemplo simple, sirve como un excelente punto de partida hacia implementaciones m\u00e1s avanzadas y profesionales. Para este proyecto, he utilizado un conocido <a href=\"https:\/\/www.amazon.es\/dp\/B096ZH5WQ6?ref=ppx_yo2ov_dt_b_product_details&amp;th=1\" target=\"_blank\" rel=\"noreferrer noopener\">motorreductor<\/a> junto con un <a href=\"https:\/\/www.amazon.es\/dp\/B0817FM4BJ?psc=1&amp;ref=ppx_yo2ov_dt_b_product_details\" target=\"_blank\" rel=\"noreferrer noopener\">encoder infrarrojo<\/a>, elementos comunes en la construcci\u00f3n de maquetas de veh\u00edculos a peque\u00f1a escala.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Componentes\"><\/span>Componentes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Arduino_UNO_R3\"><\/span>Arduino UNO R3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2017\/12\/arduino-uno-r3.png\" alt=\"Figura 5: Arduino UNO R3.\" class=\"wp-image-172\" style=\"width:131px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Yo he usado un Arduino Uno R3 pero os vale cualquier placa Arduino. Si us\u00e1is otra placa fijaros bien en cuales son los pines de las interrupciones para que todo funcione correctamente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Protoboard\"><\/span>Protoboard<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/VTBB3.jpg\" alt=\"\" class=\"wp-image-2144\" style=\"width:202px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Motorreductor_3-6V\"><\/span>Motorreductor 3-6V<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/51WijH7jQTL._SL1100_-1024x1024.jpg\" alt=\"\" class=\"wp-image-2145\" style=\"width:196px;height:auto\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/51WijH7jQTL._SL1100_-1024x1024.jpg 1024w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/51WijH7jQTL._SL1100_-150x150.jpg 150w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/51WijH7jQTL._SL1100_-300x300.jpg 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/51WijH7jQTL._SL1100_-768x768.jpg 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/51WijH7jQTL._SL1100_-270x270.jpg 270w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/51WijH7jQTL._SL1100_.avif 1100w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Controlador_motor_L298N\"><\/span>Controlador motor L298N<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/L298N.jpg\" alt=\"\" class=\"wp-image-2143\" style=\"width:212px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">La placa L298N es un m\u00f3dulo controlador de motores ampliamente utilizado en rob\u00f3tica y proyectos de automatizaci\u00f3n. Su funci\u00f3n principal es controlar la velocidad y la direcci\u00f3n de uno o dos motores de corriente continua (DC). Requiere una fuente de alimentaci\u00f3n externa para los motores, que puede ser de mayor voltaje que la alimentaci\u00f3n del circuito de control.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Disco_ranurado\"><\/span>Disco ranurado<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ROBO-TTMOTOR-ENCODER-04.jpg\" alt=\"\" class=\"wp-image-2146\" style=\"width:162px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Son f\u00e1ciles de conseguir. En ocasiones vienen con el motor o con el encoder incluidos en el mismo pack.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Encoder_infrarrojo\"><\/span>Encoder infrarrojo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/51qpVJw6SL._SL1000_.jpg\" alt=\"\" class=\"wp-image-2137\" style=\"width:171px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Un lado emite una luz infrarroja mientras que el otro tiene un receptor fotoel\u00e9ctrico. Cuando un disco ranurado (solidario al eje del motor) gira, las ranuras permiten que el receptor se active y desactive. Esto es proporcional a la velocidad. La se\u00f1al se limpia a trav\u00e9s del Inversor Schmidt incorporado y luego se env\u00eda a Arduino para su procesamiento.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Condensador_10_uF\"><\/span>Condensador 10 uF<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/51cXbo0QRWL._AC_UF8941000_QL80_.jpg\" alt=\"\" class=\"wp-image-2139\" style=\"width:186px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Usado para atenuar el rebote de la se\u00f1al del encoder.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cables_dupont\"><\/span>Cables dupont<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/61iOz0iJb5L._AC_SL1000_.jpg\" alt=\"\" class=\"wp-image-2141\" style=\"width:209px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Yo he necesitado Macho-Macho y Macho-Hembra.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Fuente_de_alimentacion_externa_de_7-12V\"><\/span>Fuente de alimentaci\u00f3n externa de 7-12V<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Necesaria para el motor. Se pueden usar pilas en su defecto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con todos los componentes, el coste del montaje ronda los 50\u20ac.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Esquema_de_conexiones\"><\/span>Esquema de conexiones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Motor_encoder_v1_bb.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"803\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Motor_encoder_v1_bb-1024x803.png\" alt=\"\" class=\"wp-image-2149\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Motor_encoder_v1_bb-1024x803.png 1024w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Motor_encoder_v1_bb-300x235.png 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Motor_encoder_v1_bb-768x602.png 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Motor_encoder_v1_bb-1536x1205.png 1536w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Motor_encoder_v1_bb-2048x1607.png 2048w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Motor_encoder_v1_bb-344x270.png 344w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Montaje\"><\/span>Montaje<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205339192-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"2170\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205339192-1024x768.jpg\" alt=\"\" class=\"wp-image-2170\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205339192-1024x768.jpg 1024w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205339192-300x225.jpg 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205339192-768x576.jpg 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205339192-1536x1152.jpg 1536w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205339192-2048x1536.jpg 2048w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205339192-360x270.jpg 360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205346879-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"2171\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205346879-1024x768.jpg\" alt=\"\" class=\"wp-image-2171\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205346879-1024x768.jpg 1024w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205346879-300x225.jpg 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205346879-768x576.jpg 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205346879-1536x1152.jpg 1536w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205346879-2048x1536.jpg 2048w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205346879-360x270.jpg 360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205355927-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"2172\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205355927-1024x768.jpg\" alt=\"\" class=\"wp-image-2172\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205355927-1024x768.jpg 1024w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205355927-300x225.jpg 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205355927-768x576.jpg 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205355927-1536x1152.jpg 1536w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205355927-2048x1536.jpg 2048w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/PXL_20240122_205355927-360x270.jpg 360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">He dise\u00f1ado un sencillo soporte donde apoyar el motor para la ocasi\u00f3n. Si dispon\u00e9is de impresora 3D lo ten\u00e9is en la <a href=\"https:\/\/garikoitz.info\/blog\/descargas\/MotorCC\/00%20-%20Modelos%203D\/\" target=\"_blank\" rel=\"noreferrer noopener\">carpeta del proyecto<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Identificacion\"><\/span>Identificaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adecuacion_de_la_senal\"><\/span>Adecuaci\u00f3n de la se\u00f1al<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A\u00fan con el uso del condensador, la se\u00f1al del encoder es muy ruidosa. Por ello implementaremos un filtro EMA (Exponential Moving Average), o media m\u00f3vil exponencial representado por la ecuaci\u00f3n 1.<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>\\begin{align}\nA_{n}=\\alpha M+(1-\\alpha )A_{n}-1\n\\end{align}<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Siendo <strong>An <\/strong>el valor filtrado, <strong>alpha <\/strong>es un factor entre 0 y 1, <strong>M <\/strong>es el valor muestreado de la se\u00f1al a filtrar, y <strong>An-1<\/strong> el valor filtrado anterior.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El filtro EMA da m\u00e1s peso a las lecturas m\u00e1s recientes, haciendo que la salida reaccione m\u00e1s r\u00e1pidamente a los cambios recientes en los datos mientras suaviza las variaciones aleatorias. El valor de alpha determina qu\u00e9 tan r\u00e1pido el filtro reacciona a los cambios en los datos. Un alpha peque\u00f1o hace que el filtro reaccione m\u00e1s lentamente, suavizando m\u00e1s la se\u00f1al, mientras que un alpha grande hace que el filtro reaccione m\u00e1s r\u00e1pidamente a los cambios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n una muestra del efecto de alpha en la se\u00f1al del encoder con un tiempo de muestreo de un segundo. Se aprecia que a partir de 0.4 la se\u00f1al empieza a tener demasiado ruido. Un valor entre 0.2 y 0.4 parece razonable aunque debemos comprobar que el filtro elegido no afecte de manera inapropiada al tiempo de respuesta de la se\u00f1al.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/alpha.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"311\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/alpha-1024x311.png\" alt=\"\" class=\"wp-image-2153\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/alpha-1024x311.png 1024w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/alpha-300x91.png 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/alpha-768x234.png 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/alpha-1536x467.png 1536w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/alpha-604x184.png 604w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/alpha.avif 1549w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"lyte-wrapper fourthree\" style=\"width:420px;max-width:100%;margin:5px;\"><div class=\"lyMe\" id=\"WYL_WHUFHLzo4Hg\"><div id=\"lyte_WHUFHLzo4Hg\" data-src=\"\/\/i.ytimg.com\/vi\/WHUFHLzo4Hg\/hqdefault.jpg\" class=\"pL\"><div class=\"tC\"><div class=\"tT\"><\/div><\/div><div class=\"play\"><\/div><div class=\"ctrl\"><div class=\"Lctrl\"><\/div><div class=\"Rctrl\"><\/div><\/div><\/div><noscript><a href=\"https:\/\/youtu.be\/WHUFHLzo4Hg\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.ytimg.com\/vi\/WHUFHLzo4Hg\/0.jpg\" alt=\"YouTube video thumbnail\" width=\"420\" height=\"295\" \/><br \/>Ver este v\u00eddeo en YouTube<\/a><\/noscript><\/div><\/div><div class=\"lL\" style=\"max-width:100%;width:420px;margin:5px;\"><\/div><figcaption><\/figcaption><\/figure>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Recopilacion_de_datos_en_lazo_abierto\"><\/span>Recopilaci\u00f3n de datos en lazo abierto<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez filtrada correctamente la se\u00f1al del encoder, procedemos a identificar el sistema. El sistema responde de manera <a href=\"https:\/\/garikoitz.info\/blog\/2022\/05\/introduccion-al-algoritmo-pid-y-su-implementacion-en-arduino\/#Respuesta_autorregulada\" target=\"_blank\" rel=\"noreferrer noopener\">autorregulada<\/a>, lo que significa que al cambiar el voltaje, cambiamos la velocidad del motor, que se estabiliza en un nuevo punto de equilibrio. Esto nos permite llevar a cabo un ensayo en <a href=\"https:\/\/garikoitz.info\/blog\/2022\/05\/introduccion-al-algoritmo-pid-y-su-implementacion-en-arduino\/#En_lazo_abierto\" target=\"_blank\" rel=\"noreferrer noopener\">lazo abierto<\/a>, que implica ajustar manualmente el voltaje del motor para observar y registrar c\u00f3mo var\u00eda la velocidad del motor ante estos cambios.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_13_00_03.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"311\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_13_00_03-1024x311.png\" alt=\"\" class=\"wp-image-2164\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_13_00_03-1024x311.png 1024w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_13_00_03-300x91.png 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_13_00_03-768x234.png 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_13_00_03-1536x467.png 1536w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_13_00_03-604x184.png 604w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_13_00_03.avif 1549w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Step Test realizado en lazo abierto<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_12_56_57.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"311\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_12_56_57-1024x311.png\" alt=\"\" class=\"wp-image-2166\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_12_56_57-1024x311.png 1024w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_12_56_57-300x91.png 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_12_56_57-768x234.png 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_12_56_57-1536x467.png 1536w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_12_56_57-604x184.png 604w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/ACP_27_01_2024_12_56_57.avif 1549w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Detalle del salto usado para calcular el sistema<\/figcaption><\/figure>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/calc_sistema.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"296\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/calc_sistema-300x296.png\" alt=\"\" class=\"wp-image-2167\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/calc_sistema-300x296.png 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/calc_sistema-273x270.png 273w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/calc_sistema.avif 399w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Control_PID\"><\/span>Control PID<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Esquema_de_control\"><\/span>Esquema de control<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Esquema_control_motorcc.png\"><img loading=\"lazy\" decoding=\"async\" width=\"134\" height=\"300\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Esquema_control_motorcc-134x300.png\" alt=\"\" class=\"wp-image-2191\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Esquema_control_motorcc-134x300.png 134w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Esquema_control_motorcc-121x270.png 121w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2024\/01\/Esquema_control_motorcc.avif 176w\" sizes=\"auto, (max-width: 134px) 100vw, 134px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">La imagen muestra un esquema b\u00e1sico de un sistema de control de velocidad para un motor de corriente continua. En el diagrama, hay dos componentes principales identificados:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Encoder <\/strong>(SC-1): Este dispositivo se utiliza para capturar la velocidad de rotaci\u00f3n del eje del motor y convertirla en se\u00f1ales el\u00e9ctricas. Cada vez que el eje gira, el encoder genera pulsos que se pueden contar para determinar la velocidad de rotaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Motor de corriente continua<\/strong>: Representado en la parte inferior de la imagen. El motor es la parte del sistema que realiza el trabajo mec\u00e1nico y cuya velocidad se desea controlar. La se\u00f1al de control proveniente del controlador PID modula la energ\u00eda suministrada al motor para mantener la velocidad deseada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El control funciona de la siguiente manera:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El motor se pone en marcha y su velocidad de rotaci\u00f3n es capturada por el encoder. Esta velocidad es enviada al controlador PID, que compara la velocidad real (<strong>variable de proceso o PV<\/strong>) con la velocidad deseada (<strong>punto de consigna o SP<\/strong>). Si hay una diferencia entre la velocidad real y la deseada, el controlador PID calcula una se\u00f1al de control (<strong>OP<\/strong>) adecuada para ajustar la potencia del motor y corregir el error. Esta se\u00f1al de control ajusta la velocidad del motor, ya sea aument\u00e1ndola o disminuy\u00e9ndola para que coincida con el. Este es un proceso continuo y din\u00e1mico donde el controlador PID constantemente ajusta la se\u00f1al de control en respuesta a las variaciones en la velocidad del motor para mantener la velocidad estable. En resumen, este esquema representa un sistema de control en lazo cerrado para mantener una velocidad constante en un motor de corriente continua, utilizando para ello un controlador PID que procesa la informaci\u00f3n del encoder y ajusta la se\u00f1al de potencia al motor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Prueba_de_sintonias\"><\/span>Prueba de sinton\u00edas<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tras la identificaci\u00f3n en lazo abierto, estamos en disposici\u00f3n de calcular una serie de sinton\u00edas que nos dar\u00e1n una respuesta espec\u00edfica de las cuales debemos elegir una en funci\u00f3n del tipo de respuesta que queramos para nuestro sistema. Os recuerdo que estas sinton\u00edas son un punto de partida y que podemos retocarlas para ajustar la respuesta a nuestras necesidades. De la mano de la elecci\u00f3n de las constantes viene la elecci\u00f3n de la <a href=\"https:\/\/garikoitz.info\/blog\/2022\/05\/introduccion-al-algoritmo-pid-y-su-implementacion-en-arduino\/#Ecuaciones\" target=\"_blank\" rel=\"noreferrer noopener\">ecuaci\u00f3n PID<\/a>. En este caso he llegado a la conclusi\u00f3n de que con una ecuaci\u00f3n PI es suficiente, de hecho, en la mayor\u00eda de maquetas sencillas que implement\u00e9is ser\u00e1 as\u00ed y en pocas ocasiones os har\u00e1 falta el t\u00e9rmino derivativo.<\/p>\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"lyte-wrapper fourthree\" style=\"width:420px;max-width:100%;margin:5px;\"><div class=\"lyMe\" id=\"WYL_KG6Sc1nF7P8\"><div id=\"lyte_KG6Sc1nF7P8\" data-src=\"\/\/i.ytimg.com\/vi\/KG6Sc1nF7P8\/hqdefault.jpg\" class=\"pL\"><div class=\"tC\"><div class=\"tT\"><\/div><\/div><div class=\"play\"><\/div><div class=\"ctrl\"><div class=\"Lctrl\"><\/div><div class=\"Rctrl\"><\/div><\/div><\/div><noscript><a href=\"https:\/\/youtu.be\/KG6Sc1nF7P8\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.ytimg.com\/vi\/KG6Sc1nF7P8\/0.jpg\" alt=\"YouTube video thumbnail\" width=\"420\" height=\"295\" \/><br \/>Ver este v\u00eddeo en YouTube<\/a><\/noscript><\/div><\/div><div class=\"lL\" style=\"max-width:100%;width:420px;margin:5px;\"><\/div><figcaption><\/figcaption><\/figure>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusiones\"><\/span>Conclusiones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Me gustar\u00eda resaltar la importancia de utilizar un filtro para adecuar la se\u00f1al del encoder. Este aspecto es fundamental ya que un buen filtrado de la se\u00f1al es esencial para obtener lecturas precisas y fiables. El filtro EMA nos ha permitido suavizar la se\u00f1al de salida del encoder, reduciendo el ruido y mejorando as\u00ed la calidad de los datos para una interpretaci\u00f3n m\u00e1s precisa. Esta mejora en la calidad de la se\u00f1al ha sido crucial para realizar ajustes finos en la sintonizaci\u00f3n de los PIDs, asegurando as\u00ed respuestas del sistema m\u00e1s estables y eficientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otro punto interesante que hemos abordado es la capacidad de realizar ensayos en lazo abierto para calcular las sinton\u00edas de los PIDs. Esta pr\u00e1ctica nos ha permitido evaluar y elegir la respuesta m\u00e1s adecuada seg\u00fan nuestras necesidades espec\u00edficas. El ensayo en lazo abierto es una t\u00e9cnica valiosa porque nos permite ajustar y experimentar con los par\u00e1metros del controlador PID sin la influencia de la retroalimentaci\u00f3n del sistema. Esto facilita una comprensi\u00f3n m\u00e1s clara de c\u00f3mo cada componente del PID afecta al comportamiento general del sistema, permitiendo as\u00ed un ajuste m\u00e1s informado y efectivo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En resumen, el trabajo realizado con la maqueta ha sido enormemente esclarecedor y educativo. Nos ha brindado la oportunidad de profundizar en aspectos t\u00e9cnicos esenciales de la ingenier\u00eda de control, desde la construcci\u00f3n y dise\u00f1o de sistemas b\u00e1sicos hasta el sofisticado ajuste de par\u00e1metros de control. La experiencia adquirida a trav\u00e9s de este proyecto nos proporciona una base s\u00f3lida para futuras investigaciones y desarrollos en este emocionante campo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Enlaces\"><\/span>Enlaces<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/garikoitz.info\/blog\/descargas\/MotorCC\/\" target=\"_blank\" rel=\"noreferrer noopener\">Carpeta del proyecto<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.arduino.cc\/en\/Main\/Software\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino IDE<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/garikoitz.info\/pidlab\/\" target=\"_blank\" rel=\"noreferrer noopener\">PIDLab web<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/garikoitz.info\/blog\/?p=674\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino COM Plotter<\/a><\/li>\n\n\n\n<li>Fritzing [<a href=\"https:\/\/fritzing.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Oficial<\/a>] [<a href=\"https:\/\/arduinofactory.fr\/en\/download-fritzing-for-free\/\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino Factory<\/a>]<\/li>\n\n\n\n<li>Librer\u00eda PID de Brett Beauregard&nbsp;[<a href=\"https:\/\/github.com\/br3ttb\/Arduino-PID-Library\" target=\"_blank\" rel=\"noreferrer noopener\">Github<\/a>]<\/li>\n\n\n\n<li>Funcionamiento de un encoder infrarrojo [<a href=\"https:\/\/sensorestec.com\/otros-sensores\/sensor-infrarrojo-encoder\/\" target=\"_blank\" rel=\"noreferrer noopener\">Sensorstec<\/a>]<\/li>\n\n\n\n<li>Filtro exponencial EMA (Exponential Moving Average) [<a href=\"https:\/\/arduino.cl\/filtro-exponencial-ema-exponential-moving-average\/\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino.cl<\/a>] [<a href=\"https:\/\/www.luisllamas.es\/arduino-paso-bajo-exponencial\/\" target=\"_blank\" rel=\"noreferrer noopener\">Luis Llamas<\/a>]<\/li>\n\n\n\n<li>Introducci\u00f3n al algoritmo PID y su implementaci\u00f3n en Arduino [<a href=\"https:\/\/garikoitz.info\/blog\/2022\/05\/introduccion-al-algoritmo-pid-y-su-implementacion-en-arduino\/\" target=\"_blank\" rel=\"noreferrer noopener\">garikoitz.info<\/a>]<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Libros_y_publicaciones\"><\/span>Libros y publicaciones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-4fc3f8e1 wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">[1] Karl J. Astrom, Tore H\u00e4gglund. Control PID avanzado, Pearson, ISBN: 978-84-8322-511-0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[2] Daniel Chuck. Los sistemas de primer orden y los controladores PID, edici\u00f3n 2012. [<a href=\"https:\/\/garikoitz.info\/blog\/descargas\/ControladoresPID.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Link<\/a>] [<a href=\"http:\/\/dea.unsj.edu.ar\/control2\/ControladoresPID.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Link2<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[3] J.G. Ziegler, N.B. Nichols. Optimum Settings For Automatic Controllers, 1942 edition, American Society of Mechanical Engineers. [<a href=\"https:\/\/garikoitz.info\/blog\/descargas\/Z-N.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Link<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[4] G.H. Cohen, G.A. Coon. Theoretical Consideration of Retarded Control, 1953 edition, American Society of Mechanical Engineers. [<a href=\"https:\/\/garikoitz.info\/blog\/descargas\/Cohen_Coon.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Link<\/a>] [<a href=\"http:\/\/folk.ntnu.no\/skoge\/puublications_others\/Cohen%20and%20Coon%20(1953)%20-%20Theoretical%20Consideration%20of%20Retarded%20Control.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Link2<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[5] Daniel E. Rivera. Internal Model Control: A Comprehensive View, 1999 edition, College of Engineering and Applied Sciences. [<a href=\"https:\/\/garikoitz.info\/blog\/descargas\/IMC_(Rivera).pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Link<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[6] R. Vilanova, A. Visioli. PID Control in the Third Millennium. Chapter 5, The SIMC Method for smooth PID Controller Tuning, Springer. ISBN: 978-1-4471-2424-5.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[7] Morilla Garc\u00eda, Fernando. El controlador PID. Dpto. de Inform\u00e1tica y Autom\u00e1tica UNED. [<a href=\"http:\/\/www.dia.uned.es\/~fmorilla\/MaterialDidactico\/El%20controlador%20PID.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Link<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[8] Aidan O\u2019Dwyer. Handbook of PI and PID controller tuning rules, 3rd edition, Imperial College Press. ISBN: 978-1-84816-242-6<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introducci&oacute;n En esta entrada, exploraremos una implementaci&oacute;n b&aacute;sica y f&aacute;cil de entender del control de velocidad de un motor usando Arduino. Aunque es un ejemplo simple, sirve como un excelente punto de partida hacia implementaciones m&aacute;s avanzadas y profesionales. Para este proyecto, he utilizado un conocido motorreductor junto con un encoder infrarrojo, elementos comunes en la construcci&oacute;n de maquetas de veh&iacute;culos a peque&ntilde;a escala. Componentes Arduino UNO R3 Yo he usado un Arduino Uno R3 pero os vale cualquier placa&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/garikoitz.info\/blog\/2024\/01\/sintonizar-pid-con-arduino-control-de-velocidad-de-un-motor\/\"> Leer m\u00e1s<span class=\"screen-reader-text\">  Leer m\u00e1s<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":2174,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","wpupg_custom_link":[],"wpupg_custom_link_behaviour":[],"wpupg_custom_link_nofollow":[],"wpupg_custom_image":[],"wpupg_custom_image_id":[],"footnotes":""},"categories":[15,213],"tags":[94,16,211,212,143,142,17,101],"class_list":["post-2131","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-pid","tag-acp","tag-arduino","tag-encoder","tag-filtro-ema","tag-i-pd","tag-pi-d","tag-pid","tag-sintonia-pid"],"_links":{"self":[{"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/posts\/2131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/comments?post=2131"}],"version-history":[{"count":41,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/posts\/2131\/revisions"}],"predecessor-version":[{"id":2359,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/posts\/2131\/revisions\/2359"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/media\/2174"}],"wp:attachment":[{"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/media?parent=2131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/categories?post=2131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/tags?post=2131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}