        <style>
            #donation_buttons td{
                border:medium none;
                background: inherit !important;
            }
            #donation_buttons table{               
                border:medium none;
                margin: auto;
                width: auto;
            }
        </style>
        {"id":7614,"date":"2024-02-23T03:04:11","date_gmt":"2024-02-23T03:04:11","guid":{"rendered":"https:\/\/rogerbit.com\/wprb\/?p=7614"},"modified":"2024-02-23T03:34:05","modified_gmt":"2024-02-23T03:34:05","slug":"control-de-luces-x-i2c","status":"publish","type":"post","link":"https:\/\/rogerbit.com\/wprb\/2024\/02\/control-de-luces-x-i2c\/","title":{"rendered":"Control de luces entre arduinos por protocolo I2C"},"content":{"rendered":"<p><iframe loading=\"lazy\" title=\"\u2705 Control de luces entre arduinos por protocolo I2C  -  PCBWay.es\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/WMpebOzBiKA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<hr \/>\n<p>\u00a1Hola! Comunicar dos Arduinos a trav\u00e9s del protocolo I2C es una tarea bastante com\u00fan y relativamente sencilla de lograr.<\/p>\n<p>Muchos proyectos de electr\u00f3nica y rob\u00f3tica requieren la comunicaci\u00f3n entre dispositivos electr\u00f3nicos. El Inter-Integrated Circuit (I2C) es uno de los protocolos de comunicaci\u00f3n m\u00e1s utilizados, y permite la transferencia de datos entre m\u00faltiples dispositivos con solo dos cables de comunicaci\u00f3n. En este tutorial aprenderemos c\u00f3mo utilizar el protocolo I2C de Arduino para conectar varios dispositivos y realizar una comunicaci\u00f3n bidireccional fiable y eficiente, y de esta manera controlar luces.<\/p>\n<hr \/>\n<p style=\"text-align: left;\">Tal vez pueda interesarte proyectos en arduino, pic, rob\u00f3tica, telecomunicaciones, suscribete en\u00a0<a href=\"http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1\">http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1<\/a>\u00a0mucho videos con c\u00f3digo fuentes completos y diagramas<\/p>\n<p style=\"text-align: left;\"><div id=\"ubm-banners-rotation-n1\" data-interval=\"4000\" class=\"ubm_banners_rotation\" style=\"overflow: hidden; width: 200px; height: 150px;\"><div id=\"3_ubm_banner\" class=\"ubm_rotating_banner\"><a href=\"https:\/\/bit.ly\/3aXRDAu\" target=\"_blank\" rel=\"dofollow\"><img src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/useful_banner_manager_banners\/3-2-logo youtube.png\" width=\"100%\" height=\"100%\" alt=\"SUSCRIBETE A NUESTRO CANAL DE YOUTUBE, TUTORIALES GRATIS\" \/><\/a><\/div><\/div><\/p>\n<hr \/>\n<p><strong>Introducci\u00f3n:<\/strong><\/p>\n<p>El protocolo I2C, que significa Inter-Integrated Circuit, es un est\u00e1ndar de comunicaci\u00f3n serial de dos hilos utilizado ampliamente en sistemas embebidos y dispositivos electr\u00f3nicos. Desarrollado por Philips Semiconductor (ahora NXP Semiconductors) en la d\u00e9cada de 1980, el protocolo I2C ofrece una forma eficiente y vers\u00e1til de interconectar m\u00faltiples dispositivos en un solo bus.<\/p>\n<p><strong>Funcionamiento del Protocolo I2C:<\/strong><\/p>\n<p>El protocolo I2C utiliza dos l\u00edneas de comunicaci\u00f3n: SDA (Serial Data) y SCL (Serial Clock). Estas l\u00edneas son bidireccionales y se conectan a todos los dispositivos en el bus. El protocolo I2C utiliza un esquema de comunicaci\u00f3n maestro\/esclavo, donde un dispositivo maestro controla la comunicaci\u00f3n y uno o m\u00e1s dispositivos esclavos responden a las solicitudes del maestro.<\/p>\n<p>La comunicaci\u00f3n en el protocolo I2C se realiza en forma de transmisiones de datos secuenciales. El maestro inicia la comunicaci\u00f3n enviando una se\u00f1al de inicio seguida de la direcci\u00f3n del dispositivo esclavo al que desea comunicarse y una se\u00f1al de lectura\/escritura. Los dispositivos esclavos que coinciden con la direcci\u00f3n responden al maestro, y luego la transferencia de datos puede tener lugar.<\/p>\n<p><strong>Caracter\u00edsticas Principales del Protocolo I2C:<\/strong><\/p>\n<ol>\n<li><strong>Simplicidad:<\/strong> El protocolo I2C utiliza solo dos cables para la comunicaci\u00f3n, lo que simplifica la conexi\u00f3n entre dispositivos y reduce el n\u00famero de pines necesarios en los microcontroladores.<\/li>\n<li><strong>Versatilidad:<\/strong> El protocolo I2C es adecuado para una amplia gama de aplicaciones, desde la comunicaci\u00f3n entre chips en una placa de circuito hasta la interconexi\u00f3n de dispositivos en sistemas embebidos complejos.<\/li>\n<li><strong>Soporte para M\u00faltiples Dispositivos:<\/strong> El protocolo I2C permite la conexi\u00f3n de m\u00faltiples dispositivos en el mismo bus, lo que facilita la expansi\u00f3n y escalabilidad de los sistemas.<\/li>\n<\/ol>\n<p><strong>Aplicaciones del Protocolo I2C:<\/strong><\/p>\n<p>El protocolo I2C se utiliza en una variedad de aplicaciones, incluyendo:<\/p>\n<ul>\n<li>Sensores y actuadores en sistemas embebidos.<\/li>\n<li>Memorias EEPROM para almacenamiento de datos.<\/li>\n<li>Conversores anal\u00f3gico-digitales (ADC) y digitales-anal\u00f3gicos (DAC).<\/li>\n<li>Pantallas LCD y OLED.<\/li>\n<li>Circuitos integrados de temperatura, presi\u00f3n y otros sensores.<\/li>\n<li>Controladores de dispositivos perif\u00e9ricos como el audio y el motor.<\/li>\n<\/ul>\n<p><strong>Consideraciones Finales:<\/strong><\/p>\n<p>El protocolo I2C es una herramienta poderosa y vers\u00e1til para la comunicaci\u00f3n entre dispositivos electr\u00f3nicos. Su simplicidad, versatilidad y soporte para m\u00faltiples dispositivos lo hacen ideal para una amplia gama de aplicaciones en la electr\u00f3nica y la programaci\u00f3n de microcontroladores. Con una comprensi\u00f3n b\u00e1sica del protocolo I2C, los ingenieros y dise\u00f1adores pueden crear sistemas m\u00e1s complejos y eficientes en una variedad de campos.<\/p>\n<p><strong>Referencias:<\/strong><\/p>\n<ul>\n<li>&#8220;The I2C-Bus Specification&#8221;, Versi\u00f3n 6.0, NXP Semiconductors.<\/li>\n<li>&#8220;Arduino &#8211; Wire Library&#8221;, <a target=\"_new\" rel=\"noopener\">https:\/\/www.arduino.cc\/en\/Reference\/Wire<\/a>.<\/li>\n<\/ul>\n<p>Este informe proporciona una visi\u00f3n general del protocolo I2C, su funcionamiento, caracter\u00edsticas y aplicaciones. Para obtener informaci\u00f3n m\u00e1s detallada sobre aspectos espec\u00edficos del protocolo I2C, se recomienda consultar las especificaciones t\u00e9cnicas y recursos adicionales proporcionados por los fabricantes y la comunidad de desarrollo.<\/p>\n<hr \/>\n<p><strong>Circuito<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-large wp-image-7615\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/circuito-936x1024.jpg\" alt=\"\" width=\"936\" height=\"1024\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/circuito-936x1024.jpg 936w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/circuito-274x300.jpg 274w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/circuito-768x840.jpg 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/circuito-1405x1536.jpg 1405w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/circuito-1873x2048.jpg 1873w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/circuito-820x897.jpg 820w\" sizes=\"(max-width: 936px) 100vw, 936px\" \/><\/p>\n<hr \/>\n<p><strong>Captura del dato set1on, vista en un analizador l\u00f3gico<\/strong><\/p>\n<p>Podemos ver en el canal 0 el pin scl que es la linea de clock, en el canal 1 el pin sda que es al linea de datos<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-large wp-image-7618\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/i2c-1024x544.png\" alt=\"\" width=\"1024\" height=\"544\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/i2c-1024x544.png 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/i2c-300x160.png 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/i2c-768x408.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/i2c-820x436.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/02\/i2c.png 1356w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<hr \/>\n<p><strong>C\u00f3digo fuente Maestro<\/strong><\/p>\n<pre class=\"lang:default decode:true \" title=\"C\u00f3digo Fuente Maestro\">#include &lt;Wire.h&gt;\r\n#include &lt;Keypad.h&gt;\r\nint  pul1 = 0;\r\nint  pul2 = 0;\r\nint  pul3 = 0;\r\nint  pul4 = 0;\r\nint  pul5 = 0;\r\nint  pul6 = 0;\r\nint  pul7 = 0;\r\nint  pul8 = 0;\r\nint  pul9 = 0;\r\nint  pul10 = 0;\r\nint  pul11 = 0;\r\nint  pul12 = 0;\r\nint  pul13 = 0;\r\nint  pul14 = 0;\r\nint  pul15 = 0;\r\nint  pul16 = 0;\r\nint estado1 = 0;\r\nint estado2 = 0;\r\nint estado3 = 0;\r\nint estado4 = 0;\r\nint estado5 = 0;\r\nint estado6 = 0;\r\nint estado7 = 0;\r\nint estado8 = 0;\r\nint estado9 = 0;\r\nint estado10 = 0;\r\nint estado11 = 0;\r\nint estado12 = 0;\r\nint estado13 = 0;\r\nint estado14 = 0;\r\nint estado15 = 0;\r\nint estado16 = 0;\r\n\/\/String botonSet = \"\";\r\nconst byte ROWS = 4; \/\/cuatro filas\r\nconst byte COLS = 4; \/\/cuatro columnas\r\n\/\/definimos los caracteres del teclado\r\nchar hexaKeys[ROWS][COLS] = {\r\n  {'1','2','3','4'},\r\n  {'5','6','7','8'},\r\n  {'9','0','A','B'},\r\n  {'C','D','E','F'}\r\n};\r\nbyte rowPins[ROWS] = {4, 6, 7, 8}; \/\/conectarse a las salidas de pines de fila del teclado\r\nbyte colPins[COLS] = {9, 10, 14, 15}; \/\/conectarse a las salidas de pines de la columna del teclado\r\n \r\n\/\/inicializar una instancia de la clase NewKeypad\r\nKeypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); \r\nvoid setup() {\r\n  Wire.begin();        \/\/ Inicia la comunicaci\u00f3n I2C como maestro\r\n  Serial.begin(9600);  \/\/ Inicia la comunicaci\u00f3n serial\r\n}\r\n\r\nvoid loop() {\r\n char customKey = customKeypad.getKey();\/\/Obtenemos la tecla que precionamos\r\nif (customKey == '1'){\r\nchar customKey = customKeypad.getKey();\/\/Obtenemos la tecla que precionamos  \r\nif(estado1 ==0){\/\/Si la variable estado1 es igual a 0 se cumple esta condici\u00f3n\r\n  Wire.beginTransmission(9); \/\/ Direcci\u00f3n del esclavo\r\n  Wire.write(\"set1on\"); \/\/ Env\u00eda un mensaje al esclavo\r\n  Wire.endTransmission();    \/\/ Finaliza la transmisi\u00f3n\r\nestado1 =1;\/\/Asignamos el valor 1 a la variable \"estado1\"\r\n} else{\r\n  Wire.beginTransmission(9); \/\/ Direcci\u00f3n del esclavo\r\n  Wire.write(\"set1off\"); \/\/ Env\u00eda un mensaje al esclavo\r\n  Wire.endTransmission();    \/\/ Finaliza la transmisi\u00f3n\r\n estado1 =0;\r\n  }\r\nwhile(customKey == '1'){\r\nchar customKey = customKeypad.getKey();\/\/Obtenemos la tecla que precionamos  \r\n    }\r\n  } \r\n\/\/\/\/\/\/\/\/\/\/\/  \r\nif (customKey == '2'){\r\nchar customKey = customKeypad.getKey();\/\/Obtenemos la tecla que precionamos  \r\nif(estado2 ==0){\/\/Si la variable estado2 es igual a 0 se cumple esta condici\u00f3n\r\n  Wire.beginTransmission(9); \/\/ Direcci\u00f3n del esclavo\r\n  Wire.write(\"set2on\"); \/\/ Env\u00eda un mensaje al esclavo\r\n  Wire.endTransmission();    \/\/ Finaliza la transmisi\u00f3n\r\nestado2 =1;\/\/Asignamos el valor 1 a la variable \"estado2\"\r\n} else{\r\n  Wire.beginTransmission(9); \/\/ Direcci\u00f3n del esclavo\r\n  Wire.write(\"set2off\"); \/\/ Env\u00eda un mensaje al esclavo\r\n  Wire.endTransmission();    \/\/ Finaliza la transmisi\u00f3n\r\n estado2 =0;\r\n  }\r\nwhile(customKey == '2'){\r\nchar customKey = customKeypad.getKey();\/\/Obtenemos la tecla que precionamos  \r\n    }\r\n  } \r\n\/\/\/\/\/\/\/\/\/\/\r\n if (customKey == '3'){\r\nchar customKey = customKeypad.getKey();\/\/Obtenemos la tecla que precionamos  \r\nif(estado3 ==0){\/\/Si la variable estado3 es igual a 0 se cumple esta condici\u00f3n\r\n  Wire.beginTransmission(10); \/\/ Direcci\u00f3n del esclavo\r\n  Wire.write(\"set1on\"); \/\/ Env\u00eda un mensaje al esclavo\r\n  Wire.endTransmission();    \/\/ Finaliza la transmisi\u00f3n\r\nestado3 =1;\/\/Asignamos el valor 1 a la variable \"estado3\"\r\n} else{\r\n  Wire.beginTransmission(10); \/\/ Direcci\u00f3n del esclavo\r\n  Wire.write(\"set1off\"); \/\/ Env\u00eda un mensaje al esclavo\r\n  Wire.endTransmission();    \/\/ Finaliza la transmisi\u00f3n\r\n estado3 =0;\r\n  }\r\nwhile(customKey == '3'){\r\nchar customKey = customKeypad.getKey();\/\/Obtenemos la tecla que precionamos  \r\n    }\r\n  }\r\n\/\/\/\/\/\/\/\/\/\/\/  \r\nif (customKey == '4'){\r\nchar customKey = customKeypad.getKey();\/\/Obtenemos la tecla que precionamos  \r\nif(estado4 ==0){\/\/Si la variable estado4 es igual a 0 se cumple esta condici\u00f3n\r\n  Wire.beginTransmission(10); \/\/ Direcci\u00f3n del esclavo\r\n  Wire.write(\"set2on\"); \/\/ Env\u00eda un mensaje al esclavo\r\n  Wire.endTransmission();    \/\/ Finaliza la transmisi\u00f3n\r\nestado4 =1;\/\/Asignamos el valor 1 a la variable \"estado4\"\r\n} else{\r\n  Wire.beginTransmission(10); \/\/ Direcci\u00f3n del esclavo\r\n  Wire.write(\"set2off\"); \/\/ Env\u00eda un mensaje al esclavo\r\n  Wire.endTransmission();    \/\/ Finaliza la transmisi\u00f3n\r\n estado4 =0;\r\n  }\r\nwhile(customKey == '4'){\r\nchar customKey = customKeypad.getKey();\/\/Obtenemos la tecla que precionamos  \r\n    }\r\n}\r\n\/\/\/\/\/\/\/\/\/\/\/\/\r\nif (customKey == '5'){\r\n\r\n}\r\n\/\/\/\/\/\/\/\/\/\/\/\r\nif (customKey == '6'){\r\n\r\n}\r\n\/\/\/\/\/\/\/\/\r\nif (customKey == '7'){\r\n\r\n}\r\nif (customKey == '8'){\r\n\r\n}\r\n\/\/\/\/\/\/\/\/\/\r\nif (customKey == '9'){\r\n\r\n}\r\n\/\/\/\/\/\/\/\/\/\r\nif (customKey == '0'){\r\n\r\n}\r\n\/\/\/\/\/\/\/\/\/\/\/\r\nif (customKey == 'A'){\r\n\r\n}\r\n\/\/\/\/\/\/\/\/\/\r\nif (customKey == 'B'){\r\n \r\n}\r\nif (customKey == 'C'){\r\n\r\n}\r\nif (customKey == 'D'){\r\n\r\n}\r\nif (customKey == 'E'){\r\n\r\n}\r\nif (customKey == 'F'){\r\n\r\n}\r\n\r\n}<\/pre>\n<p><strong>C\u00f3digo Fuente esclavo<\/strong><\/p>\n<pre class=\"lang:default decode:true \" title=\"C\u00f3digo Fuente esclavo\">#include &lt;Wire.h&gt;\r\nString cadena;\r\nint led2 = 2;\r\nint led3 = 3;\r\nvoid setup() {\r\n  Wire.begin(9);\/\/Inicia la comunicaci\u00f3n I2C como esclavo con direcci\u00f3n 9(del 9 al 119)\r\n  Wire.onReceive(receiveEvent); \/\/Llama a la funci\u00f3n 'receiveEvent' cuando se recibe un mensaje\r\n  Serial.begin(9600); \/\/Inicia la comunicaci\u00f3n serial\r\n\/\/Configura pin 2 y 3 como salida\r\n  pinMode(led2, OUTPUT);\r\n  pinMode(led3, OUTPUT);\r\n}\r\nvoid loop() {\r\n delay(100);\r\n}\r\nvoid receiveEvent(int bytes) {\r\n  while (Wire.available()) { \/\/Mientras haya datos disponibles para leer\r\n    char c = Wire.read();   \/\/Lee el siguiente byte recibido\r\n    cadena = cadena + c;   \/\/Se almacena los caracteres en la varible cadena\r\n    Serial.print(c);      \/\/Muestra el byte recibido en el monitor serial\r\n  }\r\n\/\/Se cumple si la cadena en set1on\r\n  if(cadena == \"set1on\"){\r\n    digitalWrite(led2, HIGH);\r\n    }\r\n\/\/Se cumple si la cadena en set1off\r\n  if(cadena == \"set1off\"){\r\n    digitalWrite(led2, LOW);\r\n    }\r\n\/\/Se cumple si la cadena en set2on\r\n    if(cadena == \"set2on\"){\r\n    digitalWrite(led3, HIGH);\r\n    }\r\n\/\/Se cumple si la cadena en set2off\r\n  if(cadena == \"set2off\"){\r\n    digitalWrite(led3, LOW);\r\n    }\r\n\/\/Limpia la variable cadena\r\ncadena=\"\";\r\n}<\/pre>\n<hr \/>\n<p style=\"text-align: left;\"><div class=\"page-sidebar widget\" id=\"donation_buttons\"><form action=\"https:\/\/www.paypal.com\/cgi-bin\/webscr\" method=\"post\" target=\"_blank\" ><input type=\"hidden\" name=\"business\" value=\"donacion@rogerbit.com\"><input type=\"hidden\" name=\"bn\" value=\"mbjtechnolabs_SP\"><input type=\"hidden\" name=\"cmd\" value=\"_donations\"><input type=\"hidden\" name=\"item_name\" value=\"Ayuda a RogerBit.com\"><input type=\"hidden\" name=\"item_number\" value=\"www.rogerbit.com\"><input type=\"hidden\" class=\"set_donation_button_amount\" name=\"amount\" value=\"1\"><table ><tbody><tr><td><label for=\"rogerBit necesita de tu ayuda para seguir existiendo :-)\">rogerBit necesita de tu ayuda para seguir existiendo :-)<\/label><\/td><\/tr><\/tbody><\/table><table ><tbody><tr><td><input style=\"margin-top:10px;\" type=\"image\" name=\"submit\" border=\"0\" src=\"https:\/\/www.paypal.com\/en_US\/i\/btn\/btn_donateCC_LG.gif\" alt=\"PayPal - The safer, easier way to pay online\"><\/td><\/tr><\/tbody><\/table><input type=\"hidden\" name=\"currency_code\" value=\"USD\"><input type=\"hidden\" name=\"notify_url\" value=\"https:\/\/rogerbit.com\/wprb\/?Donation_Button&#038;action=ipn_handler\"><\/form><\/div><\/p>\n<hr \/>\n<p style=\"text-align: left;\"><strong>PROYECTO RECOMENDADO<\/strong><\/p>\n<p><iframe loading=\"lazy\" title=\"\u2705 Uso de Memoria EEPROM Arduino.\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/1kwnkhxs3wY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>\u00a1Hola! Comunicar dos Arduinos a trav\u00e9s del protocolo I2C es una tarea bastante com\u00fan y relativamente sencilla de lograr. Muchos proyectos de electr\u00f3nica y rob\u00f3tica requieren la comunicaci\u00f3n entre dispositivos electr\u00f3nicos. El Inter-Integrated Circuit (I2C) es uno de los protocolos de comunicaci\u00f3n m\u00e1s utilizados, y permite la transferencia de datos entre m\u00faltiples dispositivos con solo [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":7616,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[1706,45,1878,1710,624,911,1786,917,154,1791,83,1401,687],"_links":{"self":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/7614"}],"collection":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/comments?post=7614"}],"version-history":[{"count":3,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/7614\/revisions"}],"predecessor-version":[{"id":7620,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/7614\/revisions\/7620"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media\/7616"}],"wp:attachment":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media?parent=7614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/categories?post=7614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/tags?post=7614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}