{"id":1166,"date":"2012-02-27T18:11:15","date_gmt":"2012-02-27T17:11:15","guid":{"rendered":"http:\/\/www.diarioelectronicohoy.com\/blog\/?p=1166"},"modified":"2019-06-13T19:38:10","modified_gmt":"2019-06-13T17:38:10","slug":"control-de-motores-cc","status":"publish","type":"post","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-cc","title":{"rendered":"Control de motores CC"},"content":{"rendered":"<h1><span style=\"color: #000080;\">Prologo.<\/span><\/h1>\n<p><a name=\"inici\"><\/a><\/p>\n<p style=\"text-align: justify;\">Este art\u00edculo, se puede considerar como una aplicaci\u00f3n que puede ser puesta en pr\u00e1ctica, de la teor\u00eda que se describe, en la que se emplean dos motores de corriente continua cuya aplicaci\u00f3n puede responder a la necesidad de un proyecto, utilizando su propia placa PCB o si se prefiere a un peque\u00f1o robot, en la que adquirir cierta experiencia en esta materia.<\/p>\n<p style=\"text-align: justify;\">Tambi\u00e9n se puede aplicar, sobre la placa de utilidad que, se encuentra en este mismo sitio, con el nombre <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/crea-tu-escudo-sheeld\">escudo Arduino<\/a>, principalmente debido a que est\u00e1 basado en la creaci\u00f3n de una tarjeta con los conectores dispuestos de tal manera que \u00e9sta tarjeta, se pueda conectar directamente en el soporte del propio Arduino, digamos a lomos del mismo.<!--more--><\/p>\n<h1><span style=\"color: #000080;\">El Circuito L2193.<\/span><\/h1>\n<p style=\"text-align: justify;\">El circuito integrado en el que nos basaremos es el <a href=\"http:\/\/www.hispavila.com\/3ds\/atmega\/motorescc_files\/l293d.zip\"><strong>L293d<\/strong><\/a>, en sus hojas de datos, podemos ver que, est\u00e1 compuesto por cuatro amplificadores con salida triestado, capaz de proporcionar una corriente de salida de hasta 1A por canal a tensiones de alimentaci\u00f3n desde 4&#8217;5V a 36V y con una entrada habilitable (chip Enable) que permite un control de salida dos de los amplificadores. Todas sus entradas son compatibles TTL. En el L293b, se deben utilizar diodos de alta velocidad externos, en la salida, para la supresi\u00f3n de transitorios inductivos. En la figura que sigue, se puede apreciar la tabla de la verdad, con la cual debe familiarizarse para tener un conocimiento m\u00e1s amplio de como se comporta este circuito.<\/p>\n<p style=\"text-align: justify;\">Seg\u00fan las especificaciones el L293b es un integrado monol\u00edtico de alta tensi\u00f3n, controlador de 4 canales, de alta corriente. B\u00e1sicamente esto significa que utilizando este chip, puede utilizar motores de corriente continua y fuentes de alimentaci\u00f3n de hasta 36 voltios, esos son motores muy grandes y el chip puede suministrar una corriente m\u00e1xima de 1A por canal. El chip L293b es tambi\u00e9n lo que se conoce como un tipo de puente H (H-Bridge).<\/p>\n<div id=\"gallery-1\" class=\"gallery galleryid-76 gallery-columns-2 gallery-size-thumbnail\" style=\"text-align: center;\">\n<dl class=\"gallery-item\">\n<dt class=\"gallery-icon\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/bloques_l293b\" target=\"_blank\" rel=\"attachment wp-att-4009 noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4009 alignnone\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/bloques_l293b-270x300.gif\" alt=\"\" width=\"203\" height=\"226\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/bloques_l293b-270x300.gif 270w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/bloques_l293b-45x50.gif 45w\" sizes=\"auto, (max-width: 203px) 100vw, 203px\" \/><\/a><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/l293b-2\" target=\"_blank\" rel=\"attachment wp-att-4011 noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4011 alignnone\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/l293b-e1492617963572-273x300.gif\" alt=\"\" width=\"150\" height=\"165\" \/><\/a><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/tabla-1\" target=\"_blank\" rel=\"attachment wp-att-4010 noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-4010 alignnone\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/tabla-1-300x102.gif\" alt=\"\" width=\"300\" height=\"102\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/tabla-1-300x102.gif 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/tabla-1-50x17.gif 50w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/l293b-2\" target=\"_blank\" rel=\"attachment wp-att-4011 noopener noreferrer\"><br \/>\n<\/a><\/dt>\n<\/dl>\n<\/div>\n<p style=\"text-align: center;\">Fig. 1<\/p>\n<p style=\"text-align: justify;\">Seg\u00fan el diagrama, este chip pone a nuestra disposici\u00f3n dos brazos id\u00e9nticos e independientes, cada uno, consta de dos amplificadores comandados por una l\u00ednea de control (EN), con la cual habilitamos el par de amplificadores que nos interese en cada momento. Esta disposici\u00f3n, permite distintos montajes para un motor o m\u00e1s motores, como veremos. Es necesario resaltar la existencia en el mercado de dos versiones <strong>L293B<\/strong> y <strong>L293D<\/strong>, dos diferencias entre ambas, en la <strong>versi\u00f3n B<\/strong>, no lleva diodos &#8216;clamp&#8217; internos (se puede utilizar un peque\u00f1o puente en los terminales del motor), sin embargo, admite hasta 1Amperio de consumo, en el caso de la <strong>versi\u00f3n D<\/strong>, s\u00f3lo entrega 600mA, llevando los diodos internos. El usuario debe tomar la decisi\u00f3n de cual utilizar.<\/p>\n<p style=\"text-align: justify;\">El esquema que utilizaremos, est\u00e1 basado en la aplicaci\u00f3n del circuito integrado L293b, que como se aprecia en las hojas del fabricante, es un driver de 4 canales, con \u00e9l y unos pocos componentes m\u00e1s, podemos controlar f\u00e1cilmente el giro de un motor o dos motores de corriente continua, con distintos circuitos de montaje. Adem\u00e1s, tambi\u00e9n se puede controlar un motor bipolar paso a paso.<\/p>\n<p><span style=\"color: #000080;\"><strong>No debemos olvidar<\/strong>:<\/span><\/p>\n<p><strong>1)-<\/strong> Refrigerar en lo posible este circuito integrado, ya que puede adquirir bastante temperatura, compruebe este dato, si va a aplicar de forma continuada este chip.<\/p>\n<p><strong>2)-<\/strong> Utilice un peque\u00f1o puente tipo <strong>W01F<\/strong>, para evitar disgustos con las tensiones inducidas del motor.<\/p>\n<h1><span style=\"color: #000080;\">El esquema el\u00e9ctrico.<\/span><\/h1>\n<p style=\"text-align: justify;\">El circuito el\u00e9ctrico en el que nos basaremos es el recomendado por el fabricante del IC y que es mostrado en la siguiente figura. Podemos distinguir dos pares de amplificadores con salidas triestado, con un control habilitador (EN) com\u00fan para ambos, cuyas propiedades descubriremos m\u00e1s adelante. Por el momento nos ocuparemos de la parte sencilla.<\/p>\n<div align=\"center\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/aplicar_l293\" rel=\"attachment wp-att-4012\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4012\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/aplicar_l293-300x196.gif\" alt=\"\" width=\"300\" height=\"196\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/aplicar_l293-300x196.gif 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/aplicar_l293-50x33.gif 50w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 2<\/div>\n<h1><span style=\"color: #000080;\">Inicio sencillo.<\/span><\/h1>\n<p style=\"text-align: justify;\">La figura anterior es bastante explicita. Muestra dos montajes distintos como ya he mencionado. Vamos a empezar por el control de un motor de juguete <strong>M1<\/strong>. En este ejercicio, he supuesto que no es necesario utilizar el chip L293, ya que, en muchos casos, no tendremos que desembolsar el costo del circuito integrado, peque\u00f1o transistor podemos salir al paso.<\/p>\n<p style=\"text-align: justify;\">Las salidas de Arduino, sus pines son ideales para controlar directamente los peque\u00f1os elementos el\u00e9ctricos, como los LED. Sin embargo, cuando se trata de dispositivos de consumos m\u00e1s grandes (como un motor de juguete o el de una m\u00e1quina de lavar), es necesario un transistor externo. Un transistor es incre\u00edblemente \u00fatil. Se obtiene una gran cantidad de corriente con una, mucho menor. Un transistor tipo NPN, conectaremos la carga (M1) al colector del transistor y el emisor al negativo o masa. As\u00ed, cuando la se\u00f1al alta del pin de nuestro Arduino alcance la base, fluir\u00e1 una peque\u00f1a corriente de la base al emisor y la corriente a trav\u00e9s del transistor fluir\u00e1 y el motor girar\u00e1.<\/p>\n<div align=\"center\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/motorcc_tr\" rel=\"attachment wp-att-4013\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4013\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motorcc_tr.gif\" alt=\"\" width=\"243\" height=\"175\" \/><\/a>Fig. 3<\/div>\n<p style=\"text-align: justify;\">Hay miles de transistores del tipo NPN, que se adaptan perfectamente a todas las situaciones. Como voy a utilizar la tensi\u00f3n de 6V de un cargador que tengo a mano, he elegido el <a href=\"http:\/\/www.hispavila.com\/3ds\/ic\/bc337.zip\">BC337<\/a> un transistor com\u00fan de uso general. Los factores m\u00e1s relevantes en nuestro caso es que la tensi\u00f3n m\u00e1xima (45 V) y su corriente media (600 mA) son lo suficientemente alta para nuestro motor de juguete. En cuanto al diodo 1N4001 est\u00e1 actuando como un diodo de seguridad.<\/p>\n<div align=\"center\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/motorcctr\" rel=\"attachment wp-att-1234\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1234\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motorcctr-300x158.gif\" alt=\"\" width=\"235\" height=\"124\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motorcctr-300x158.gif 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motorcctr-500x263.gif 500w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motorcctr.gif 567w\" sizes=\"auto, (max-width: 235px) 100vw, 235px\" \/><\/a>Fig.\u00a04<\/div>\n<p style=\"text-align: justify;\">Veamos una aplicaci\u00f3n sencilla, en la que utilizaremos un c\u00f3digo de los muchos que existen en la red. Esto es un programa r\u00e1pido para probar el circuito:<\/p>\n<pre lang=\"php\">\/\/\r\n\/\/ motorcc.pde\r\n\/\/\r\n\r\nconst int transistorPin = 9; \/\/ connected to the base of transistor\r\n\r\nvoid setup() {\r\n\/\/ set the transistor pin as output:\r\n   pinMode(transistorPin, OUTPUT);\r\n}\r\nvoid loop() {\r\n\r\n digitalWrite(transistorPin, HIGH);\r\n delay(1000);\r\n digitalWrite(transistorPin, LOW);\r\n delay(1000);\r\n}<\/pre>\n<p style=\"text-align: justify;\">En este ejemplo, vemos que pertenece a un circuito sencillo, con el cual hacemos girar un motor de corriente continua, con intervalos de parada. Debido a lo sencillo del mismo, observamos que no se tiene ning\u00fan control sobre el motor. Tendr\u00eda m\u00e1s aplicaciones si pudi\u00e9ramos, poner en marcha con un interruptor, modificar la direcci\u00f3n de giro y poder variar la velocidad de giro.<\/p>\n<pre lang=\"php\">\/\/\r\n\/\/ motordc.pde\r\n\/\/\r\n\r\nint pot = 2;         \/\/ asigna pin anal\u00f3gico 2 para el pot\r\nint motorPin = 9;    \/\/ motor en el pin 9 PWM\r\n\r\nvoid setup()         \/\/ ejecutar una vez, cuando empieza\r\n{\r\n Serial.begin(9600);  \/\/ establecer la librer\u00eda serie a 9600 bps\r\n pinMode(pot, INPUT);\r\n pinMode(motorPin, OUTPUT);\r\n}\r\n\r\nint getPot() {\r\n int v;\r\n v = analogRead(pot);\r\n v \/= 4;\r\n v = max(v, 50);\r\n v = min(v, 255);\r\n return v;\r\n}\r\n\r\nint motorFoward() {\r\n analogWrite(motorPin, getPot());\r\n delay(10);\r\n digitalWrite(motorPin, LOW);\r\n}\r\n\r\nvoid loop() {            \/\/ ejecutar una y otra vez\r\n  motorFoward();\r\n}<\/pre>\n<p style=\"text-align: justify;\">Para controlar esto desde el exterior, se puede utilizar un pot. en un puerto anal\u00f3gico para variar el n\u00famero de grados e incrementar su barrido. Puede hacer la pr\u00e1ctica, copie el c\u00f3digo o b\u00e1jelo de aqu\u00ed y c\u00e1rguelo en el IDE, para ver su efectividad.<\/p>\n<p style=\"text-align: justify;\">Qu\u00e9 ocurre. El motor gira desde un m\u00ednimo de velocidad hasta el m\u00e1ximo seg\u00fan giremos el pot, sin embargo, se observa que el motor pierde fuerza de torsi\u00f3n (par motor, torque en ingl\u00e9s), esto puede ser debido en parte, al transistor que utilicemos, pero es m\u00e1s propio que sea debido al c\u00f3digo del programa que no se adecua a lo que esper\u00e1bamos. Debemos pensar en otro m\u00e9todo para lograr nuestro prop\u00f3sito.<\/p>\n<p style=\"text-align: justify;\">Este es un c\u00f3digo bastante bueno, para el control de un motor de corriente continua que, se comporta muy parecido al c\u00f3digo anterior.<\/p>\n<pre lang=\"php\">\/\/\r\n\/\/    Funccion: CC_motor_control_pot\r\n\/\/\r\n\/\/ Utilizar un potenciometro para controlar motor CC\r\n\/\/ \r\n\r\n int sensor_pin = 2; \/\/ debe ser una entrada anal\u00f3gica\r\n int motor_pin = 9;  \/\/ debe ser una salida digital PWM.\r\n\r\nvoid setup() {\r\n Serial.begin(9600);\r\n pinMode(motor_pin, OUTPUT)\r\n}\r\n\r\nvoid loop() {\r\n int pot_val, motor_speed;\r\n pot_val = analogRead( sensor_pin );\r\n motor_speed = pot_val*255.0\/1024.0; \/\/ Incluir decimal\r\n \/* Sutil: No utilice valores enteros como 255 y\r\n 1024 aqu\u00ed. Compiladores agresivo pre-c\u00e1lculo\r\n la divisi\u00f3n entera del 255\/1024 como cero.\r\n *\/\r\nanalogWrite( motor_pin, motor_speed); \/\/ hacer cosas \u00fatiles\r\n}<\/pre>\n<p style=\"text-align: justify;\">Indagando sobre el tema, he llegado a encontrar una funci\u00f3n reutilizable para actualizar la velocidad del motor, veamos unas cuestiones a tener en cuenta. El ajuste de la velocidad del motor se establece dentro del lazo loop(), en realidad la parte m\u00e1s relevante se encuentra en el llamado map(), donde los valores le\u00eddos del potenci\u00f3metro se escalan a la salida.<\/p>\n<p>As\u00ed pues, necesitamos &#8230;<\/p>\n<h2><span style=\"color: #000080;\">Una funci\u00f3n para traducir las escalas lineales.<\/span><\/h2>\n<table border=\"0\" width=\"73%\" cellspacing=\"4\" cellpadding=\"4\">\n<tbody>\n<tr>\n<td align=\"left\" bgcolor=\"#ffffff\" width=\"61%\" height=\"1\">El escalado lineal de los valores de x para valores de y:y = f(x)donde f es un mapeado lineal.<\/td>\n<td align=\"center\" bgcolor=\"#ffffff\" width=\"38%\" height=\"1\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/trazolineal\" rel=\"attachment wp-att-4014\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4014\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/trazolineal.gif\" alt=\"\" width=\"131\" height=\"101\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" align=\"center\" bgcolor=\"#ffffff\" width=\"95%\" height=\"1\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/formula1\" rel=\"attachment wp-att-4015\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4015\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/formula1-300x65.gif\" alt=\"\" width=\"300\" height=\"65\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/formula1-300x65.gif 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/formula1-50x11.gif 50w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 6<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" align=\"left\" bgcolor=\"#ffffff\" width=\"100%\" height=\"1\">Es decir, dados: x, xmin, xmax, ymin e ymax. Calcular <strong>y<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h1><span style=\"color: #000080;\">Una funci\u00f3n para traducir las escalas lineales.<\/span><\/h1>\n<p style=\"text-align: justify;\">Entradas que necesitamos: <strong>pin de potenci\u00f3metro sensor<\/strong>, <strong>pin de salida del motor<\/strong>.<\/p>\n<p>Que tareas vamos a abordar:<\/p>\n<ul>\n<li>Leer tensi\u00f3n del potenci\u00f3metro.<\/li>\n<li>Convertir voltaje con escalas de 10 bits a 8 bits PWM y<\/li>\n<li>Cambiar la velocidad del motor.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Introduzca el c\u00f3digo de la parte inferior en su boceto. Observe que, el c\u00f3digo no est\u00e1 dentro de ning\u00fan bloque de otro programa (como <strong>setup()<\/strong> o <strong>void()<\/strong>), es parte de una funci\u00f3n. \u00bfC\u00f3mo comprobar que esta funci\u00f3n est\u00e1 funcionando?<\/p>\n<p>int int_scale(int x, int xmin, int xmax, int ymin, int ymax) {<\/p>\n<p>int y; y = ymin + float(ymax &#8211; ymin)*float( x &#8211; xmin )\/float(xmax &#8211; xmin);<\/p>\n<p>return(y);<\/p>\n<p>}<\/p>\n<p style=\"text-align: justify;\">Este c\u00f3digo, es esencialmente una reimplementaci\u00f3n integrada de la funci\u00f3n <strong>map<\/strong>, por los creadores del Arduino. Ver <span style=\"color: #3366ff;\">http:\/\/arduino.cc\/en\/Reference\/Map<\/span><\/p>\n<p style=\"text-align: justify;\"><strong>Nota.-<\/strong> <span style=\"color: #cc3300;\"><em>int<\/em><\/span> Devuelve un entero. <span style=\"color: #000000;\"><em>int_scale<\/em><\/span> Es el nombre de la funci\u00f3n. <span style=\"color: #000000;\"><em>int x<\/em><\/span> Es la primera entrada llamada x. <span style=\"color: #000000;\"><em>float<\/em><\/span> Se usa float para una mejor precisi\u00f3n. <span style=\"color: #000000;\"><em>return(y)<\/em><\/span> Devuelve el valor almacenado en y.<\/p>\n<p style=\"text-align: justify;\">Funciones que llaman a otras funciones: <em>(int x, int xmin, int xmax, int ymin, int ymax);<\/em><\/p>\n<p><span style=\"color: #000000;\"><em>motor_speed = int_scale(int x<\/em><\/span> = pot_val, <span style=\"color: #000000;\"><em>int xmin<\/em><\/span> = 0, <span style=\"color: #000000;\"><em>int xmax<\/em><\/span> = 1024, <span style=\"color: #000000;\"><em>int ymin<\/em><\/span> = 0, <span style=\"color: #000000;\"><em>int ymax<\/em><\/span> = 255);<\/p>\n<p>Donde: <span style=\"color: #000000;\"><em>return(y)<\/em><\/span> = <span style=\"color: #000000;\"><em>motor_speed<\/em><\/span><\/p>\n<p style=\"text-align: justify;\">A continuaci\u00f3n, a modo de ejemplo, veremos un c\u00f3digo que usa la funci\u00f3n <em>int_scale<\/em>.<\/p>\n<pre lang=\"php\">\/\/\r\n\/\/ Funccion: CC_motor_control_pot\r\n\/\/\r\n\/\/ Utilizar un potenciometro para controlar motor CC\r\n\r\nint sensor_pin = 2;   \/\/ debe ser una entrada anal\u00f3gica\r\nint motor_pin = 9;    \/\/ debe ser una salida digital PWMt\r\n\r\nvoid setup() {\r\n Serial.begin(9600);\r\n pinMode(motor_pin, OUTPUT)\r\n}\r\n\r\nvoid loop() {\r\n\r\n int pot_val, motor_speed;\r\n pot_val = analogRead( sensor_pin );\r\n motor_speed = int_scale( pot_val, 0, 1024, 0, 255;\r\n analogWrite( motor_pin, motor_speed);\r\n}\r\n\r\nint int_scale(int x, int xmin, int xmax, int ymin, int ymax) {\r\n int y; y = ymin + float(ymax - ymin)*float( x - xmin )\/float(xmax - xmin);\r\n return(y);\r\n}<\/pre>\n<p style=\"text-align: justify;\">Si comprueba este c\u00f3digo, observar\u00e1 que el incremento de velocidad propuesta por el potenci\u00f3metro, se percibe como una continuidad lineal. Esta es la mejora esperada.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 6px; margin-right: 5px; text-align: right; margin-bottom: -5px;\" align=\"right\"><a href=\"#inici\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" src=\"http:\/\/s3.subirimagenes.com:81\/privadas\/previo\/thump_1251680uparrowsmall.gif\" alt=\"\" width=\"25\" height=\"19\" \/><\/a><\/p>\n<h1><span style=\"color: #000080;\">Control el circuito integrado L293.<\/span><\/h1>\n<p style=\"text-align: justify;\">Hemos probado a utilizar un transistor a la salida de un pin de Arduino y no hemos quedado satisfechos con los resultados. Cabe la posibilidad de utilizar dos transistores en sendos pines, cada cual conducir\u00eda un borne del motor, como dir\u00eda, el motor entre dos pines, pero no quiero perder m\u00e1s tiempo. Es el momento de utilizar el L293, en una de las aplicaciones que vienen en las hojas de especificaciones.<\/p>\n<p style=\"text-align: justify;\">Adem\u00e1s con el L293, no tiene que preocuparse por la regulaci\u00f3n de una tensi\u00f3n mayor, ya que permite dos fuentes de energ\u00eda &#8211; una fuente directa, hasta 36 V para los motores y otra de 5V, para controlar el CI que, puede ser conectada a la fuente de alimentaci\u00f3n ya que el suministro de alimentaci\u00f3n del motor proviene es independiente. En el circuito de abajo, se supone una alimentaci\u00f3n superior para el motor. A continuaci\u00f3n se puede ver la disposici\u00f3n de las conexiones para el chip y el motor. La tabla de verdad muestra la l\u00f3gica de la salida.<\/p>\n<p><center><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1236\" title=\"motordcbidir\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir1-300x117.jpg\" alt=\"\" width=\"300\" height=\"117\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir1-300x117.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir1-500x196.jpg 500w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir1.jpg 616w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 7<\/center><\/p>\n<p style=\"text-align: justify;\">El puente H, es normalmente un circuito el\u00e9ctrico que permite aplicar un voltaje a trav\u00e9s de una carga en cualquier direcci\u00f3n a una salida, por ejemplo, motor. Esto significa que esencialmente puede invertir la direcci\u00f3n de la corriente y por lo tanto invertir la direcci\u00f3n del motor. Lo \u00fanico que a de recordar es que, la conexi\u00f3n a tierra debe ser compartida, com\u00fan para ambas fuentes.<\/p>\n<p style=\"text-align: justify;\">En este circuito que sigue, no se trata m\u00e1s que de un control bidireccional, por lo tanto, no se hace necesario el puente H, lo que resulta m\u00e1s sencillo en todos los sentidos. Si nos fijamos en la tabla de verdad que aparece arriba, quedan claras las opciones que nos presenta, he de resaltar que la entrada EN (patilla 1), puede ser definitoria.<\/p>\n<p style=\"text-align: justify;\">Veamos c\u00f3mo es esto, en cualquier momento. Si se aplica un 1 l\u00f3gico sobre A1, en la entrada A2, tenemos que aplicar un 0 l\u00f3gico, esto har\u00e1 girar el motor en un sentido predeterminado. Para cambiar el sentido de giro, y respetando las reglas de la mec\u00e1nica, primero pondremos A1 y A2 en un mismo estado l\u00f3gico y acto seguido invertiremos el estado inicial, es decir, A1 en 0 l\u00f3gico y A2 en 1 l\u00f3gico.<\/p>\n<p style=\"text-align: justify;\">Con independencia del estado l\u00f3gico de las entradas A1 y A2, si es necesario detener el motor, simplemente enviamos un estado l\u00f3gico bajo (0) a la patilla EN y el motor se para de inmediato. En estas condiciones no es posible mover el motor, no hasta que, a dicha entrada EN, le enviemos un 1 l\u00f3gico, en ese momento, podemos decidir el sentido de giro o la parada del mismo con los valores l\u00f3gicos que apliquemos a las patillas A1 y A2. Aunque, lo esencial de esta entrada EN, es que si aplicamos una salida PWM a ella, simplemente podremos regular la velocidad del motor, esta es su funcionalidad. Ver el esquema el\u00e9ctrico.<\/p>\n<p><center><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir_fz2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1237\" title=\"motordcbidir_fz\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir_fz2-300x159.jpg\" alt=\"\" width=\"300\" height=\"159\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir_fz2-300x159.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir_fz2-500x265.jpg 500w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/motordcbidir_fz2.jpg 617w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 8<\/center><\/p>\n<p style=\"text-align: justify;\">Por seguridad, recomiendo que, conecte una fuente externa de alimentaci\u00f3n de corriente continua a la entrada de alimentaci\u00f3n externa de Arduino, as\u00ed, puede alimentar el motor y el Arduino. Adem\u00e1s, puede dejar conectado el cable USB, para una f\u00e1cil y r\u00e1pida reprogramaci\u00f3n, si fuera necesaria. De esta forma, cualquiera que sea el motor que utilice, se asegura que la fuente de alimentaci\u00f3n es compatible, naturalmente, no utilice un motor de 5V con una alimentaci\u00f3n de 12V.<\/p>\n<h1><span style=\"color: #000080;\">El c\u00f3digo.<\/span><\/h1>\n<p style=\"text-align: justify;\">La teor\u00eda es bastante sencilla. Se trata de poner, un estado l\u00f3gico 1 en la entrada A1, al mismo tiempo que en la A2 ponemos un 0 l\u00f3gico. El c\u00f3digo para este caso es sencillo, veamos un ejemplo:<\/p>\n<pre lang=\"php\">\/*\r\n* motorpwmpot.pde\r\n*\r\n* Hace girar un motor de CC mediante un L293 conectado a los pines digitales\r\n* 7 y 8 controlando la velocidad por PWM sobre el pin Enable del L293 en base\r\n* a la lectura de un potenciometro conectado al pin anal\u00f3gico 2\r\n*\r\n* Basado en un c\u00f3digo de: Miguel Grassi\r\n* www.miguelgrassi.com.ar\r\n*\r\n* Modificado por: V. Garc\u00eda el 07.02.2011\r\n*\r\n*\/\r\n\r\nint ledPin = 13;     \/\/ LED conectado al pin digital 13\r\n\r\nint pinA1 = 7;  \/\/ entrada Motor A 1\r\nint pinB1 = 8;  \/\/ entrada Motor B 1\r\nint pinEN1 = 9; \/\/ entrada EN 1\r\nint pinPot = 2; \/\/ Lectura anal\u00f3gica del Potenciometro\r\nint valorPot= 0;\r\nint valorVeloc = 0;\r\n\r\nvoid setup() {  \/\/ Inicializa los pines de salida\r\n pinMode(ledPin, OUTPUT);\r\n pinMode( pinA1, OUTPUT);\r\n pinMode( pinB1, OUTPUT);\r\n pinMode(pinEN1, OUTPUT);\r\n pinMode(pinPot, INPUT);\r\n digitalWrite(pinEN1, HIGH); \/\/ linea es la clave, RPA\r\n Serial.begin(9600);\r\n\r\n\/\/ El LED parpadea 3 veces. Esto deber\u00eda ocurrir s\u00f3lo una vez.\r\n\/\/ Si usted ve el parpadeo del LED tres veces, significa que\r\n\/\/ se restablecio (reset) el propio m\u00f3dulo. Probablemente porque\r\n\/\/ el motor provoc\u00f3 una bajada de voltaje o un corto.\r\n blink(ledPin, 3, 100);\r\n}\r\n\r\nvoid loop() {\r\n digitalWrite( pinA1, HIGH);  \/\/ Valores ALTO en A y BAJO en B simulaneamente\r\n digitalWrite( pinB1, LOW);   \/\/ hacen girar el motor 1 hacia ADELANTE\r\n valorPot = analogRead(pinPot); \/\/ Lee el valor del potenciometro\r\n valorVeloc = map(valorPot, 0, 1023, 55, 255); \/\/Convierte un valor entre 0 y 1023 al rango 0-255\r\n \/\/ valorVeloc = valorPot \/ 4 ;   \/\/ segunda opci\u00f3n\r\n analogWrite(pinEN1, valorVeloc);\/\/ y establece la velocidad del motor con ese valor\r\n}\r\n\r\n \/* blinks an LED *\/\r\nvoid blink(int whatPin, int cuantoTiempo, int milliSecs) {\r\n for (int i = 0; i &lt; cuantoTiempo; i++) {\r\n digitalWrite(whatPin, HIGH);\r\n delay(milliSecs\/2);\r\n digitalWrite(whatPin, LOW);\r\n delay(milliSecs\/2);\r\n }\r\n}<\/pre>\n<p style=\"text-align: justify;\">El c\u00f3digo est\u00e1 bastante bien descrito y no considero necesario entrar en mayores detalles. Copie el c\u00f3digo o si lo prefiere, <a href=\"http:\/\/www.hispavila.com\/3ds\/atmega\/motorescc_files\/motorpwmpot.zip\"> b\u00e1jelo de aqu\u00ed<\/a> y c\u00e1rguelo en el IDE, para comprobar su efectividad. Todos loe ejemplos est\u00e1n realizados con el IDE Arduino V0013.<\/p>\n<p style=\"text-align: justify;\">He realizado este ejemplo, utilizando un escudo para Arduino, realizado con placa de tiras preformada, como se puede apreciar en la imagen de abajo, el esquema utilizado corresponde a la imagen anterior. Sigue una demo del resultado obtenido, puede bajarla desde <a href=\"http:\/\/www.hispavila.com\/3ds\/atmega\/motorescc_files\/l293_01.mp4\">aqu\u00ed<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<div align=\"center\"><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/d-HF9vBTNqg\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><br \/>\nV\u00eddeo<\/div>\n<h2><span style=\"color: #000080;\">El L293.<\/span><\/h2>\n<p style=\"text-align: justify;\">El circuito integrado L293B, es un driver de 4 canales, capaz de proporcionar una corriente de salida de hasta 1A por canal. Cada canal, se puede controlar por se\u00f1ales de entrada compatibles TTL y cada pareja de canales dispone de una se\u00f1al de habilitaci\u00f3n que desconecta las salidas de los mismos.<\/p>\n<p style=\"text-align: justify;\">Ahora, vamos a ocuparnos del c\u00f3digo necesario para controlar un motor de corriente continua con Arduino. He decidido probar una idea para que los que tengan inter\u00e9s en hacer su primer mini robot, empiecen con una experiencia que les anime y levante la moral.<\/p>\n<p style=\"text-align: justify;\">La idea es que con un motor de juguete, movamos el eje delantero de una peque\u00f1a caja, cualquier recinto peque\u00f1o nos puede servir, en esta, tiene que alojar las cuatro pilas de 1&#8217;5V con su porta pilas, el propio Arduino, el motor, el soporte del eje y una rueda de giro libre en todas direcciones. Algo parecido a la imagen.<\/p>\n<div id=\"gallery-1\" class=\"gallery galleryid-76 gallery-columns-3 gallery-size-thumbnail\" align=\"justify\">\n<p><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina032.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1241 alignnone\" title=\"botarrina03\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina032-300x225.jpg\" alt=\"\" width=\"129\" height=\"98\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina032-300x225.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina032.jpg 400w\" sizes=\"auto, (max-width: 129px) 100vw, 129px\" \/><\/a><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1240 alignnone\" title=\"botarrina01\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina01-300x225.jpg\" alt=\"\" width=\"130\" height=\"101\" \/><\/a><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina022.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1242 alignnone\" title=\"botarrina02\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina022-300x225.jpg\" alt=\"\" width=\"129\" height=\"98\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina022-300x225.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina022.jpg 400w\" sizes=\"auto, (max-width: 129px) 100vw, 129px\" \/><\/a><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/control-de-motores-dc\/ejetraccion-2\" target=\"_blank\" rel=\"attachment wp-att-1195 noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1195 alignnone\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/ejetraccion1-300x165.jpg\" alt=\"\" width=\"165\" height=\"91\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/ejetraccion1-300x165.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/ejetraccion1.jpg 388w\" sizes=\"auto, (max-width: 165px) 100vw, 165px\" \/><\/a><\/p>\n<dl class=\"gallery-item\">\n<dt class=\"gallery-icon\">\u00a0Fig.\u00a09<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/botarrina022.jpg\"><br \/>\n<\/a><\/dt>\n<\/dl>\n<\/div>\n<p style=\"text-align: justify;\">Las fotos, aunque corresponden a otro ejercicio (cosa que no es relevante), dan una idea de lo que se describe. La pr\u00e1ctica demostrar\u00e1 c\u00f3mo mover un objeto (bot-tarrina), con un s\u00f3lo motor y un interruptor del tipo &#8216;bumper&#8217;. Cuando conectemos la tensi\u00f3n, el Arduino mandar\u00e1 una se\u00f1al al motor para que gire, por un tiempo, lo que har\u00e1 avanzar el peque\u00f1o robot. Cuando \u00e9ste, encuentre un obst\u00e1culo, lo detectar\u00e1 con el interruptor que tropezar\u00e1 con el objeto est\u00e1tico, esto producir\u00e1 una se\u00f1al\/orden en el programa, de modo que el motor cambiar\u00e1 su direcci\u00f3n de giro por un tiempo determinado, tras el cual volver\u00e1 a girar en la direcci\u00f3n de inicio. Las direcciones son mec\u00e1nicamente, bastante aleatorias.<\/p>\n<p style=\"text-align: justify;\">S\u00f3lo se trata de un ejemplo, de como manejar un peque\u00f1o robot con un m\u00ednimo de componentes. El siguiente es el c\u00f3digo que se encarga de realizar estos cambio de desplazamiento. El c\u00f3digo como se hace notar, lo he adaptado a mis necesidades, con un peque\u00f1o cambio.<\/p>\n<pre lang=\"php\">\/* Control de un motor DC con puente H\r\n* motorL293h.pde\r\n*\r\n* http:\/\/itp.nyu.edu\/physcomp\/Labs\/DCMotorControl\r\n*\r\n* Modificado por V. Garcia el 08.02.2011\r\n*\r\n* Puede adaptarse a un bot con un motor en las ruedas de traccion\r\n* y una rueda de giro libre que pivote cambiando la direccion\r\n*\r\n\r\nint switchPin = 2;  \/\/ entrada del switch\r\nint motor1Pin = 7;  \/\/ pin 1 del L293\r\nint motor2Pin = 8;  \/\/ pin 2 del L293\r\nint speedPin = 9;   \/\/ pin enable del L293\r\nint ledPin = 13;    \/\/LED\r\n\r\nvoid setup() {\r\n\/\/ pone el switch como una entrada\r\n pinMode(switchPin, INPUT);\r\n digitalWrite(switchPin, HIGH);\r\n\/\/ pone todos los otros pines usados como salidas\r\n pinMode(motor1Pin, OUTPUT);\r\n pinMode(motor2Pin, OUTPUT);\r\n pinMode(speedPin, OUTPUT);\r\n pinMode(ledPin, OUTPUT);\r\n\r\n\/\/ activa la RPA del pin speedPin para activar el motor\r\ndigitalWrite(speedPin, HIGH);\r\n\r\n\/\/ El LED parpadea 3 veces. Esto deber\u00eda ocurrir s\u00f3lo una vez.\r\n\/\/ Si usted ve el parpadeo del LED tres veces, significa que\r\n\/\/ se restablecio (reset) el propio m\u00f3dulo. Probablemente porque\r\n\/\/ el motor provoc\u00f3 una bajada de voltaje o un corto.\r\n blink(ledPin, 3, 100);\r\n}\r\n\r\nvoid loop() {\r\n \/\/ si el switch es high, motor gira en una direccion\r\n if (digitalRead(switchPin) == HIGH) {\r\n digitalWrite(motor1Pin, LOW);  \/\/ pone motor1 del H-bridge low\r\n digitalWrite(motor2Pin, HIGH); \/\/ pone motor2 del H-bridge high\r\n}\r\n\r\n\/\/ si el switch es low, motor gira en la otra direccion:\r\n else {\r\n  digitalWrite(motor1Pin, HIGH); \/\/ set leg 1 of the H-bridge high\r\n  digitalWrite(motor2Pin, LOW); \/\/ set leg 2 of the H-bridge low\r\n  blink(switchPin, 2000, 2); \/\/ si pulsas switch cambia giro un tiempo\r\n }\r\n}\r\n\r\n\/* blinks an LED *\/\r\nvoid blink(int whatPin, int cuantoTiempo, int milliSecs) {\r\n int i = 0;\r\n for ( i = 0; i &lt; cuantoTiempo; i++) {\r\n  digitalWrite(whatPin, HIGH);\r\n  delay(milliSecs\/2);\r\n  digitalWrite(whatPin, LOW);\r\n  delay(milliSecs\/2);\r\n }\r\n}<\/pre>\n<p style=\"text-align: justify;\">Una vez m\u00e1s, si lo desea, puede copiar y pegar este c\u00f3digo, dele un nombre y c\u00e1rguelo en su Arduino.<\/p>\n<p style=\"text-align: justify;\">En los ejercicios que se han desarrollado en este documento, aunque hemos utilizado el circuito integrado L293, tan s\u00f3lo se ha empleado de los cuatro, un amplificador para manejar el motor o dos amplificadores, uno para cada devanado del motor. La parte m\u00e1s relevante de este circuito integrado, est\u00e1 en utilizar los cuatro amplificadores de forma que se conoce como Puente-H.<\/p>\n<p><center><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/transistordel2803.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1200\" title=\"transistordel2803\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/transistordel2803-300x158.gif\" alt=\"\" width=\"300\" height=\"158\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/transistordel2803-300x158.gif 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2012\/02\/transistordel2803.gif 309w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 10<\/center><\/p>\n<p style=\"text-align: justify;\">Despu\u00e9s de lo tratado hasta el momento, en este documento, estamos preparados para comprender y emprender el montaje del L293 en puente-H, para el control de un motor. Es cierto que el control de motores, tambi\u00e9n se puede ejercer con un circuito integrado como es el ULN2003 que integra una matriz de siete transistores darlington, capaces de entregar hasta 500mA cada uno y la versi\u00f3n ULN2803, con una matriz de ocho transistores darlington. Este \u00faltimo, se utiliza en los casos que se tienen que controlar m\u00e1s de un motor y sobre todo, con motores unipolares.<\/p>\n<p style=\"text-align: justify;\">Los motores que hemos manejado hasta el momento son motores de corriente continua (DC), en pr\u00f3ximos art\u00edculos desarrollaremos controles para motores paso a paso bipolares y unipolares. El control de un motor unipolar, es m\u00e1s sencillo que el del motor bipolar, debido a la manera de energizar los devanados.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prologo. Este art\u00edculo, se puede considerar como una aplicaci\u00f3n que puede ser puesta en pr\u00e1ctica, de la teor\u00eda que se describe, en la que se emplean dos motores de corriente continua cuya aplicaci\u00f3n puede responder a la necesidad de un proyecto, utilizando su propia placa PCB o si se prefiere a un peque\u00f1o robot, en [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":1192,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[22,159,15],"tags":[160,190,114,164],"class_list":["post-1166","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-control-de-motores-cc","category-microcontroladores","tag-l293d","tag-motores-cc","tag-motores-dc","tag-puentes-h"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/1166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/comments?post=1166"}],"version-history":[{"count":73,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/1166\/revisions"}],"predecessor-version":[{"id":4807,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/1166\/revisions\/4807"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media\/1192"}],"wp:attachment":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media?parent=1166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/categories?post=1166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/tags?post=1166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}