{"id":288,"date":"2010-11-13T19:45:35","date_gmt":"2010-11-13T18:45:35","guid":{"rendered":"http:\/\/electronicapractica.crearblog.com\/?p=288"},"modified":"2019-06-13T19:47:00","modified_gmt":"2019-06-13T17:47:00","slug":"pcf8574-expansor-de-puerto","status":"publish","type":"post","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/pcf8574-expansor-de-puerto","title":{"rendered":"PCF8574 Expansor Remoto"},"content":{"rendered":"<h2><span style=\"color: #000080;\">INTRODUCCI\u00d3N.<\/span><\/h2>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Cuando estuve preparando un proyecto en el que mediaba un Arduino, un teclado y una memoria, hubo un momento en el que, me faltaban patillas de E\/S, estaba preocupado con el tema de las \u00abpocas\u00bb patillas de las que pod\u00eda disponer con el Arduino. No andaba yo muy fino, en realidad no ten\u00eda conocimiento de las posibilidades que pon\u00eda a mi alcance el I<sup>2<\/sup>C-bus.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Estuve indagando, como siempre, en la red hall\u00e9 la respuesta. La red y mi empe\u00f1o personal, por supuesto. As\u00ed que, adquir\u00ed en el comercio un dispositivo del que desconoc\u00eda bastante, aunque hab\u00eda o\u00eddo que pod\u00eda expandir un puerto. Aquello me sonaba a \u00abchino\u00bb, yo conoc\u00eda de los multiplexores, decodificadores s\u00edncrono y as\u00edncronos, pero lo de expandir un puerto, la verdad, no ten\u00eda claro el tema.<!--more--><\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Consult\u00e9 que dispositivos hab\u00eda accesibles para realizar un montaje y hacer una prueba para ver c\u00f3mo funcionaba el nuevo expansor de 8 bit. Lo que m\u00e1s me llam\u00f3 la atenci\u00f3n es que, usaba el bus I<sup>2<\/sup>C, es decir que con dos cables, hilos o patillas, pod\u00eda obtener las posibilidades de un puerto de 8bits o casi, con las funciones de un teclado, lo que se adaptaba felizmente al proyecto. A decir verdad, existen varios dispositivos en el mercado que sirven para este tipo de prop\u00f3sito (como el de TI PCA9535 entre otros), sin embargo, yo usar\u00e9 el PCF8574A que, es del que dispongo.<\/p>\n<h2><span style=\"color: #000080;\">EL PCF8574<\/span><\/h2>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Entra en escena el expansor de I\/O PCF8574, en el DS u hojas de datos del fabricante (Philips), me aclar\u00f3 ciertos puntos, otros sin embargo, no hab\u00eda forma de comprender y aqu\u00ed es donde empieza este, mi trabajo.<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1459 alignleft\" title=\"PCF8574\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574.gif\" alt=\"\" width=\"219\" height=\"211\" \/><\/a><\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Seg\u00fan el DS, el PCF8574 consiste en un puerto cuasi bidireccional de 8 bit, que se sirve de una interfaz I<sup>2<\/sup>C-bus. El PCF8574 tiene una baja corriente de consumo e incluye salidas cerrojo (latch) con capacidad de alta corriente para conducir directamente LEDs. Este, tambi\u00e9n posee una l\u00ednea de interrupci\u00f3n (<span style=\"text-decoration: overline;\">INT<\/span>), que puede ser conectada a la l\u00f3gica interrupt del microcontrolador. Mediante el env\u00edo de una se\u00f1al interrupt sobre esta l\u00ednea, la E\/S remota puede informar al microcontrolador si hay datos entrantes en sus puertos sin necesidad de comunicarse a trav\u00e9s del I2C-bus. Esto quiere decir que el PCF8574 puede seguir siendo un simple dispositivo esclavo.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1461\" title=\"PCF8574\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574.jpg\" alt=\"\" width=\"450\" height=\"299\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574.jpg 450w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574-300x199.jpg 300w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/a>Encapsulado en 16-DIP. El PCF8574 y PCF8574A son versiones que difieren s\u00f3lo en su direcci\u00f3n Slave, como se muestra m\u00e1s abajo, en la Fig.9. Si usted tiene un PCF8574P o PCF8574AP. Debe tener en cuenta la diferencia de direcci\u00f3n de seg\u00fan cual utilice. El PCF8574P tiene su direcci\u00f3n a partir de 0100 0000 (hex 40h), el PCF8574AP por su parte, tiene su direcci\u00f3n a partir de 0111 0000 (hex 70h). No obstante esto, no afecta en absoluto al modo en que el dispositivo funciona, a menos que tenga m\u00e1s de 8 de estos dispositivos.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574-y-PCF8574A-slaves.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1464\" title=\"PCF8574 y PCF8574A slaves\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574-y-PCF8574A-slaves.gif\" alt=\"\" width=\"560\" height=\"179\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574-y-PCF8574A-slaves.gif 560w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574-y-PCF8574A-slaves-300x95.gif 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574-y-PCF8574A-slaves-500x159.gif 500w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a>Analicemos un poco m\u00e1s esto del direccionado. En primer lugar debemos ignorar el primer bit (bit Start) y tambi\u00e9n el \u00faltimo bit (bit Acknowledge), ya que son los bits de comunicaci\u00f3n y no forman parte de la direcci\u00f3n que queremos estudiar. Veamos:<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/primer-bit.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1467\" title=\"primer bit\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/primer-bit.gif\" alt=\"\" width=\"279\" height=\"157\" \/><\/a><\/p>\n<blockquote>\n<blockquote>\n<pre>  | 0 | 1 | 1 | 1 |A2 |A1 |A0 | R\/<span style=\"text-decoration: overline;\">W<\/span> |<\/pre>\n<\/blockquote>\n<\/blockquote>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Suponiendo que los pines A2, A1 y A0 est\u00e1n unidos a masa, habremos direccionado:<\/p>\n<blockquote>\n<blockquote>\n<pre>  | 0 | 1 | 1 | 1 | 0 | 0 | 0 | R\/<span style=\"text-decoration: overline;\">W<\/span> |<\/pre>\n<\/blockquote>\n<\/blockquote>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Esta es la direcci\u00f3n 0x38 en hexadecimal, seg\u00fan el valor de R\/<span style=\"text-decoration: overline;\">W<\/span>, esto se entiende como que es 0, se trata de escritura y cuando este bit es 1, la direcci\u00f3n es 0x39 ya sabemos que se trata de lectura.<\/p>\n<blockquote>\n<pre> | 0 | 1 | 1 | 1 |A2 |A1 |A0 | R\/<span style=\"text-decoration: overline;\">W<\/span> |\r\n\u00a0| 0 | 1 | 1 | 1 | 0 | 0 | 0 |  0  | &lt;= Escritura (38h)\r\n\u00a0| 0 | 1 | 1 | 1 | 0 | 0 | 0 |  1  | &lt;= Lectura\u00a0\u00a0 (39h)<\/pre>\n<\/blockquote>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">seg\u00fan esto cabe destacar que disponemos 8 direcciones posibles para 8 dispositivos.<\/p>\n<blockquote>\n<blockquote>\n<pre>                 A2 |A1 |A0 |R\/<span style=\"text-decoration: overline;\">W<\/span>|\r\n| 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | = 0x38\r\n| 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | = 0x39\r\n| 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | = 0x3A\r\n| 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | = 0x3B\r\n| 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | = 0x3C\r\n| 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | = 0x3D\r\n| 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | = 0x3E\r\n| 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | = 0x3F<\/pre>\n<\/blockquote>\n<\/blockquote>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Como la biblioteca serie de Arduino empuja a la izquierda cuando realiza la comunicaci\u00f3n I<sup>2<\/sup>C, debemos asegurarnos de que cuando se trata de la izquierda ponemos los valores correctos y a continuaci\u00f3n, \u00abempujamos\u00bb todo a derecha antes. Perdemos R\/<span style=\"text-decoration: overline;\">W<\/span> (que b\u00e1sicamente no nos interesa porque el pin act\u00faa de todos modos).<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Pero antes quiero presentar unos apuntes interesantes sobre el tema, que si lo desea puede saltarse.<\/p>\n<hr \/>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><strong>Por cierto.<\/strong> En un foro, donde se discute las posibilidades de este dispositivo, he encontrado unas notas que vienen a corroborar las posibilidades del PCF8574, estas son de alguna manera parte de lo que se discute entre entendidos (lo aporto para un mayor y m\u00e1s rico contenido de este tema), dice as\u00ed&#8230;<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">&#8230; , si tiene alguna necesidad adicional de entradas y salidas digitales, este chip PCF8574, puede ser una respuesta a sus oraciones. s\u00f3lo requiere de dos conexiones de su microcontrolador (los cables de bus I<sup>2<\/sup>C) y le proporcionar\u00e1 un puerto de 8 pines que, pueden configurarse individualmente para ser Entrada o Salida.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Lo grandioso de este chip es que, si usted necesita incluso m\u00e1s entradas o salidas bastar\u00e1 con a\u00f1adir otro de estos, sin necesidad de conexiones adicionales a su microcontrolador. La direcci\u00f3n hardware de esclavos I<sup>2<\/sup>C puede ser configurada para cualquiera de las 8 diferentes direcciones, lo que significa que, puede tener un total de 8 de estos chips en el mismo bus I<sup>2<\/sup>C.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">s\u00f3lo tiene que conectar el bus I<sup>2<\/sup>C, pines (SDA y SCL) de su microcontrolador a cada una de los correspondientes pines SDA y SCL del dispositivo PFC8574 y adem\u00e1s, usted necesitar\u00e1 un par de resistencias RPU en estos cables ([comenta uno], <em>he usado resistencias de 82k para hacer compatible mi sensor LEGO<\/em>).<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Esto significa por ejemplo que usted puede, controlar ocho segmentos LED con s\u00f3lo dos pines del microcontrolador (pero no todo el hardware I<sup>2<\/sup>C utiliza el mismo prefijo de direcci\u00f3n fija como el PCF8574).<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">El PCF8574 necesita configurar una direcci\u00f3n, mediante la conexi\u00f3n a ALTO o a BAJO de los pines A2, A1 y A0, de acuerdo a lo que usted desee. El PCF8574A comienza en la direcci\u00f3n <strong>0111xxx0<\/strong> donde <strong>xxx<\/strong> depende de como usted conecte A2, A1, A0. (por su parte el PCF8574 empieza en la direcci\u00f3n 0100xxx0, como se muestra en la Figura 9).<\/p>\n<hr \/>\n<p><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/teclado3x4_0_031.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1513\" title=\"teclado3x4\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/teclado3x4_0_031.jpg\" alt=\"\" width=\"260\" height=\"290\" \/><\/a>Llegados a este punto, vamos a proceder con un ejemplo, creo que es un m\u00e9todo adecuado, cuando la teor\u00eda llega a su parte m\u00e1s te\u00f3rica o emp\u00edrica. As\u00ed que, pondr\u00e9 un c\u00f3digo que permita hacer algo con el PCF8574A que, como dije, es el que tengo a mano, pero antes quiero mostrar cuan f\u00e1cil y c\u00f3mo he realizado esta pr\u00e1ctica.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">He buscado ayuda en el <a href=\"http:\/\/www.arduino.cc\/cgi-bin\/yabb2\/YaBB.pl?board=espanol\">foro Arduino<\/a> y hago constar la gran ayuda que me han prestado los componentes del foro. <strong>Sigamos.<\/strong> Conservo el teclado de un viejo telefonillo, creo recordar, ven\u00eda con un radio-despertador con tel\u00e9fono. Como se aprecia en la foto, lo he desguazado y lo aprovechar\u00e9 para realizar esta pr\u00e1ctica. El lector que emprenda esta pr\u00e1ctica, debe utilizar el teclado que mejor se adapte a sus necesidades o posibilidades.<\/p>\n<h2><span style=\"color: #000080;\">El Esquema.<\/span><\/h2>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/teclado3x4-02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1514\" title=\"teclado3x4-02\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/teclado3x4-02.jpg\" alt=\"\" width=\"560\" height=\"385\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/teclado3x4-02.jpg 560w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/teclado3x4-02-300x206.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/teclado3x4-02-436x300.jpg 436w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a>Adaptado a mi teclado que se muestra en la imagen de arriba.<\/p>\n<h2><span style=\"color: #000080;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/i2ckeypad_example_schema2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1515\" title=\"i2ckeypad_example_schema2\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/i2ckeypad_example_schema2.jpg\" alt=\"\" width=\"560\" height=\"288\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/i2ckeypad_example_schema2.jpg 560w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/i2ckeypad_example_schema2-300x154.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/i2ckeypad_example_schema2-500x257.jpg 500w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a>PRACTICA<\/span><\/h2>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">El c\u00f3digo en cuesti\u00f3n es de <strong>Angel Sancho<\/strong> &lt;angelitodeb@gmail.com&gt; y aparece en el Playground de Arduino.<\/p>\n<pre>\/*\r\n *  i2ckeypad.pde - keypad\/I2C expander interface example for Arduino\r\n *\r\n *  Copyright (c) 2009 Angel Sancho &lt;angelitodeb@gmail.com&gt;\r\n *  All rights reserved.\r\n *\r\n *\r\n *  LICENSE\r\n *  -------\r\n *  This program is free software: you can redistribute it and\/or modify\r\n *  it under the terms of the GNU General Public License as published by\r\n *  the Free Software Foundation, either version 3 of the License, or\r\n *  (at your option) any later version.\r\n *\r\n *  This program is distributed in the hope that it will be useful,\r\n *  but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r\n *  GNU General Public License for more details.\r\n *\r\n *  You should have received a copy of the GNU General Public License\r\n *  along with this program.  If not, see &lt;http:\/\/www.gnu.org\/licenses\/&gt;.\r\n *\r\n *\r\n * EXPLICACION\r\n *  -----------\r\n *\r\n * Este ejemplo fue probado con PCF8574P y el teclado num\u00e9rico\r\n * alambrado como se puede ver en la imagen i2ckeypad_example_schema.png\r\n * y como trazar un mapa de pines por defecto de la librer\u00eda i2ckeypad.\r\n *\r\n *  R1, R2 and R3 son 10K\r\n *\r\n * Los pines anal\u00f3gicos del Arduino, (SDA) pin1 anal\u00f3gico conectado al pin15\r\n * del PCF8574 y (SCL) pin0 anal?ico conectado al pin14 del PCF8574.\r\n *\r\n *   http:\/\/www.arduino.cc\/playground\/Main\/I2CPortExpanderAndKeypads\r\n *\r\n *\/ \r\n\r\n#include &lt;Wire.h&gt;\r\n#include &lt;i2ckeypad.h&gt;\r\n\r\n#define ROWS 4\r\n#define COLS 3\r\n\r\n\/\/ Con A0, A1 y A2 del PCF8574A a masa I2C se direcciona 0x38,\r\n\/\/ el PCF8574 se direcciona 0x20.\r\n#define PCF8574A_ADDR 0x38\r\n\r\ni2ckeypad kpd = i2ckeypad(PCF8574A_ADDR, ROWS, COLS);\r\n\r\nvoid setup()\r\n{\r\n  Serial.begin(9600);\r\n  Wire.begin();\r\n  kpd.init();\r\n\r\nSerial.print(\"Testea keypad\/PCF8574A I2 Cport expansor lib Arduino\\n\\n\");\r\n}\r\n\r\nvoid loop()\r\n{\r\n  char key = kpd.get_key();\r\n  if(key != '\\0')\r\n  {\r\n        Serial.print(key);\r\n  }\r\n}<\/pre>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Poco m\u00e1s que la aplicaci\u00f3n de las librer\u00edas <strong>&lt;Wire.h&gt;<\/strong> y <strong>&lt;i2ckeypad.h&gt;<\/strong>. Si queremos utilizar por ejemplo, un teclado de 4&#215;4, se debe modificar la l\u00ednea de definici\u00f3n:<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><span style=\"color: #008000;\"><strong><em>#define COLS 3<\/em><\/strong><\/span><\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">por esta otra: <strong><em>#define COLS 4<\/em><\/strong><\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/define-COLS-4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1480\" title=\"define COLS 4\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/define-COLS-4.jpg\" alt=\"\" width=\"480\" height=\"360\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/define-COLS-4.jpg 480w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/define-COLS-4-300x225.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/define-COLS-4-400x300.jpg 400w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/protoboard.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1483\" title=\"protoboard\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/protoboard.jpg\" alt=\"\" width=\"480\" height=\"321\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/protoboard.jpg 480w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/protoboard-300x200.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/protoboard-448x300.jpg 448w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a>En esta \u00faltima fotograf\u00eda, puede apreciarse que en la protoboard, aparece un peque\u00f1o circuito en la parte alta, pertenece al RTC basado en el DS1307 que, se encuentra conectado al bus I<sup>2<\/sup>C. Con cada tecla del teclado num\u00e9rico, se produce un destello del LED de la placa Arduino, lo que puede tomarse como referencia de haber sido presionada una llave o tecla. A continuaci\u00f3n, una aproximaci\u00f3n de lo descrito.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1484\" title=\"PCF8574A\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574A.jpg\" alt=\"\" width=\"480\" height=\"360\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574A.jpg 480w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574A-300x225.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/PCF8574A-400x300.jpg 400w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Estar\u00eda bien, hacer una aplicaci\u00f3n para ver c\u00f3mo utilizar este magnifico dispositivo PCF8574A. Esto ser\u00e1 motivo para un futuro documento con el que tratar este dispositivo, quiz\u00e1 el proyecto que se comenta al principio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>INTRODUCCI\u00d3N. Cuando estuve preparando un proyecto en el que mediaba un Arduino, un teclado y una memoria, hubo un momento en el que, me faltaban patillas de E\/S, estaba preocupado con el tema de las \u00abpocas\u00bb patillas de las que pod\u00eda disponer con el Arduino. No andaba yo muy fino, en realidad no ten\u00eda conocimiento [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":1461,"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,15,37],"tags":[270,176,90,120,121],"class_list":["post-288","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-microcontroladores","category-pcf8574-expansor-remoto","tag-arduino","tag-expansor-de-puertos","tag-i2cbus","tag-pcf8574","tag-pcf8574a"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/288","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=288"}],"version-history":[{"count":16,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/288\/revisions"}],"predecessor-version":[{"id":1458,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/288\/revisions\/1458"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media\/1461"}],"wp:attachment":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media?parent=288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/categories?post=288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/tags?post=288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}