        <style>
            #donation_buttons td{
                border:medium none;
                background: inherit !important;
            }
            #donation_buttons table{               
                border:medium none;
                margin: auto;
                width: auto;
            }
        </style>
        {"id":6456,"date":"2021-05-26T18:53:05","date_gmt":"2021-05-26T18:53:05","guid":{"rendered":"https:\/\/rogerbit.com\/wprb\/?p=6456"},"modified":"2021-06-08T12:20:32","modified_gmt":"2021-06-08T12:20:32","slug":"control-dual-sincronizado-de-radiofrecuencia-para-luces-motores-y-mas","status":"publish","type":"post","link":"https:\/\/rogerbit.com\/wprb\/2021\/05\/control-dual-sincronizado-de-radiofrecuencia-para-luces-motores-y-mas\/","title":{"rendered":"Control Dual sincronizado de radiofrecuencia para luces motores y m\u00e1s"},"content":{"rendered":"<p><iframe loading=\"lazy\" title=\"Control Dual sincronizado de radiofrecuencia para luces motores y m\u00e1s - PCBWay.es\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/FUOLNHRvKkg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>En este tutorial veremos como hacer un control de radiofrecuencia sincronizado, ya que un control puede controlar al otro. Con los m\u00f3dulos APC220, que seg\u00fan el fabricante puede alcanzar una distancia de hasta un kilometro, en condiciones apropiadas, son unos m\u00f3dulos de radio transparente, ya que todo lo que env\u00eda por el puerto serial, es lo que ser\u00e1 transmitido. Como cerebro del proyecto utilizaremos un par de arduinos mini pro.<\/p>\n<hr \/>\n<p>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<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>\n<hr \/>\n<h4>Placas y m\u00f3dulos usados en este proyecto<\/h4>\n<h3>Arduino mini pro<\/h3>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro.jpg\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-4993\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro.jpg\" sizes=\"(max-width: 600px) 100vw, 600px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro.jpg 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro-300x300.jpg 300w\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>El\u00a0<strong>Arduino Pro Mini<\/strong>\u00a0es una placa de microcontrolador basada en el\u00a0\u00a0<a href=\"http:\/\/www.atmel.com\/Images\/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf\" target=\"_blank\" rel=\"noopener\">ATmega328<\/a>\u00a0.<br \/>\nTiene 14 pines de entrada \/ salida digital (de los cuales 6 se pueden usar como salidas PWM), 6 entradas anal\u00f3gicas, un resonador integrado, un bot\u00f3n de reinicio y orificios para montar encabezados de pines.\u00a0Se puede conectar un encabezado de seis pines a un cable FTDI o una placa de conexi\u00f3n Sparkfun para proporcionar alimentaci\u00f3n USB y comunicaci\u00f3n a la placa.<br \/>\nEl Arduino Pro Mini est\u00e1 dise\u00f1ado para su instalaci\u00f3n semipermanente en objetos o exposiciones.\u00a0La placa viene sin encabezados premontados, lo que permite el uso de varios tipos de conectores o la soldadura directa de cables.\u00a0El dise\u00f1o del pin es compatible con el Arduino Mini.<br \/>\nHay dos versiones del Pro Mini.\u00a0Uno corre a 3.3V y 8 MHz, el otro a 5V y 16 MHz.<\/p>\n<table>\n<tbody>\n<tr>\n<td>Microcontrolador<\/td>\n<td>ATmega328 *<\/td>\n<\/tr>\n<tr>\n<td>Fuente de alimentaci\u00f3n de la placa<\/td>\n<td>3,35-12 V (modelo de 3,3 V) o 5-12 V (modelo de 5 V)<\/td>\n<\/tr>\n<tr>\n<td>Voltaje de funcionamiento del circuito<\/td>\n<td>3.3V o 5V (dependiendo del modelo)<\/td>\n<\/tr>\n<tr>\n<td>Pines de E \/ S digitales<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>Pines PWM<\/td>\n<td>6 6<\/td>\n<\/tr>\n<tr>\n<td>UART<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>SPI<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>I2C<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>Pines de entrada anal\u00f3gica<\/td>\n<td>6 6<\/td>\n<\/tr>\n<tr>\n<td>Interrupciones externas<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>Corriente CC por pin de E \/ S<\/td>\n<td>40 mA<\/td>\n<\/tr>\n<tr>\n<td>Memoria flash<\/td>\n<td>32 KB de los cuales 2 KB utilizados por el gestor de arranque *<\/td>\n<\/tr>\n<tr>\n<td>SRAM<\/td>\n<td>2 KB *<\/td>\n<\/tr>\n<tr>\n<td>EEPROM<\/td>\n<td>1 KB *<\/td>\n<\/tr>\n<tr>\n<td>Velocidad de reloj<\/td>\n<td>8 MHz (versiones de 3.3V) o 16 MHz (versiones de 5V)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"target_0\">M\u00f3dulo Apc220<\/h3>\n<p>El\u00a0<strong>m\u00f3dulo de datos de radio APC220<\/strong>\u00a0es una soluci\u00f3n de radio de alta potencia y muy vers\u00e1til, es f\u00e1cil de configurar e integrar en cualquier proyecto que requiera un enlace de RF inal\u00e1mbrico. Es perfecto para aplicaciones rob\u00f3ticas si necesita control inal\u00e1mbrico. Puede conectar uno de estos Los m\u00f3dulos con su MCU a trav\u00e9s de la interfaz TTL, y se conectan a su PC con otro m\u00f3dulo APC220 a trav\u00e9s de un convertidor TTL \/ USB.<\/p>\n<h3 id=\"target_1\">Especificaci\u00f3n<\/h3>\n<ul>\n<li>Frecuencia de trabajo: 420 MHz a 450 MHz<\/li>\n<li>Potencia: 3.5-5.5V<\/li>\n<li>Corriente: &lt;25-35mA<\/li>\n<li>Temperatura de trabajo: -20 \u00b0 C \uff5e + 70 \u00b0 C<\/li>\n<li>Alcance: l\u00ednea de visi\u00f3n de 1200 m (1200 bps)<\/li>\n<li>Interfaz: UART \/ TTL<\/li>\n<li>Velocidad de transmisi\u00f3n: 1200-19200 bps<\/li>\n<li>Velocidad de transmisi\u00f3n (aire): 1200-19200 bps<\/li>\n<li>Buffer de recepci\u00f3n: 256 bytes<\/li>\n<li>Tama\u00f1o: 37mm \u00d7 17 mm \u00d7 6.6mm<\/li>\n<li>Peso: 30 g<\/li>\n<\/ul>\n<h3 id=\"target_2\">PinOut<\/h3>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/pinout.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-4758 size-full\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/pinout.jpg\" sizes=\"(max-width: 512px) 100vw, 512px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/pinout.jpg 512w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/pinout-300x244.jpg 300w\" alt=\"\" width=\"512\" height=\"416\" \/><\/a><\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Pin<\/strong><\/th>\n<th><strong>Definicion<\/strong><\/th>\n<th><strong>Detalle<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>SET<\/td>\n<td>Establecer par\u00e1metros (bajo)<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>AUX<\/td>\n<td>Se\u00f1al UART- Transmisi\u00f3n (baja) Transmisi\u00f3n (alta)<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>TXD<\/td>\n<td>UART TX<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>RXD<\/td>\n<td>UART RX<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>ES<\/td>\n<td>Desactive el dispositivo cuando aplique &lt;0,5 V. Habilite el dispositivo cuando lo deje desconectado o aplique&gt; 1,6 V<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>VCC<\/td>\n<td>3.3V-5.5V de potencia<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>GND<\/td>\n<td>Tierra 0V<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Descargar RF-Magic<\/h3>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/APC22X_V12A.zip\">APC22X_V12A<\/a><\/p>\n<p>Datasheet<\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/APC220_Datasheet.pdf\">APC220_Datasheet<\/a><\/p>\n<p>Ejecutar\u00a0<strong>APC22X_V12A.exe<\/strong>\u00a0(RF-Magic)\u00a0<strong>como administrador<\/strong>\u00a0si su sistema no es Windows XP.<\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/1.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-4772\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/1.png\" sizes=\"(max-width: 412px) 100vw, 412px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/1.png 412w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/1-300x270.png 300w\" alt=\"\" width=\"412\" height=\"371\" \/><\/a><\/p>\n<p><strong>NOTA<\/strong>\u00a0: en el software reconocer\u00e1 el m\u00f3dulo APC220 y puerto serie COMX autom\u00e1ticamente una vez que la abrimos. Revisar en el Administrador de dispositivos para verificar\u00a0el puerto\u00a0<strong>COM correcto<\/strong>.<\/p>\n<p>Configure RF-magic como en el marco cuadrado rojo a continuaci\u00f3n (configuraci\u00f3n predeterminada), y haga clic en\u00a0<strong>Escribir W<\/strong>\u00a0para escribir su configuraci\u00f3n, luego haga clic en\u00a0<strong>Leer R<\/strong>\u00a0para leer los par\u00e1metros que ha establecido.<\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/2.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-4773\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/2.png\" sizes=\"(max-width: 412px) 100vw, 412px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/2.png 412w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/2-300x270.png 300w\" alt=\"\" width=\"412\" height=\"371\" \/><\/a><\/p>\n<p><strong>Configuraci\u00f3n<\/strong><\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/3.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-4774\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/3.png\" sizes=\"(max-width: 412px) 100vw, 412px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/3.png 412w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/06\/3-300x270.png 300w\" alt=\"\" width=\"412\" height=\"371\" \/><\/a><\/p>\n<p><strong>Configuraci\u00f3n de escritura y lectura<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Par\u00e1metro<\/strong><\/th>\n<th><strong>Rango<\/strong><\/th>\n<th><strong>Predeterminado<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Frecuencia de RF<\/td>\n<td>Resoluci\u00f3n 1KHz, precisi\u00f3n \u00b1 100Hz<\/td>\n<td>434MHz<\/td>\n<\/tr>\n<tr>\n<td>Tasa RF TRx<\/td>\n<td>1200, 2400, 4800, 9600, 19200 bps<\/td>\n<td>9600bps<\/td>\n<\/tr>\n<tr>\n<td>Potencia de RF<\/td>\n<td>0-9<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>Tasa de serie<\/td>\n<td>1200, 2400, 4800, 9600, 19200, 38400, 57600bps<\/td>\n<td>9600bps<\/td>\n<\/tr>\n<tr>\n<td>ID NETO<\/td>\n<td>0-65535 (16 bits)<\/td>\n<td>12345<\/td>\n<\/tr>\n<tr>\n<td>ID DE NODO<\/td>\n<td>123456789012<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Serie Patity<\/td>\n<td>Deshabilitar, la extra\u00f1a Patity, incluso Patity<\/td>\n<td>Deshabilitar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Configure el otro m\u00f3dulo APC220 de la misma manera, con la misma configuraci\u00f3n de par\u00e1metros.<\/p>\n<h4>Modulo Relay rele de 8 canales<\/h4>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/modulo-rele-8-canales-1.jpg\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-5007\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/modulo-rele-8-canales-1-300x300.jpg\" sizes=\"(max-width: 300px) 100vw, 300px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/modulo-rele-8-canales-1-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/modulo-rele-8-canales-1-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/modulo-rele-8-canales-1.jpg 458w\" alt=\"\" width=\"300\" height=\"300\" \/><\/a><\/p>\n<ul>\n<li>Voltaje de Operaci\u00f3n: 5V DC<\/li>\n<li>Se\u00f1al de Control: TTL (3.3V o 5V)<\/li>\n<li>N\u00ba de Relays (canales): 8 CH<\/li>\n<li>Capacidad m\u00e1x: 10A\/250VAC, 10A\/30VDC<\/li>\n<li>Corriente m\u00e1x: 10A (NO), 5A (NC)<\/li>\n<li>Tiempo de acci\u00f3n: 10 ms\/5 ms<\/li>\n<li>Para activar salida NO: 0 Voltios<\/li>\n<\/ul>\n<p><strong>2 Jumper<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6458\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/jumper.jpg\" alt=\"\" width=\"240\" height=\"240\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/jumper.jpg 500w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/jumper-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/jumper-150x150.jpg 150w\" sizes=\"(max-width: 240px) 100vw, 240px\" \/><\/p>\n<p><strong>16 Led de 3 mm<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6459\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/led3mm.jpg\" alt=\"\" width=\"202\" height=\"203\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/led3mm.jpg 499w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/led3mm-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/led3mm-150x150.jpg 150w\" sizes=\"(max-width: 202px) 100vw, 202px\" \/><\/p>\n<p><strong>16 Led de 1KOhm<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-6460\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/1k.png\" alt=\"\" width=\"217\" height=\"232\" \/><\/p>\n<p><strong>Pines hembras<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6461\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/hembra-pin.jpg\" alt=\"\" width=\"271\" height=\"286\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/hembra-pin.jpg 539w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/hembra-pin-285x300.jpg 285w\" sizes=\"(max-width: 271px) 100vw, 271px\" \/><\/p>\n<p><strong>16 Pulsadores<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6462\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/pulsador-1.jpg\" alt=\"\" width=\"292\" height=\"292\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/pulsador-1.jpg 500w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/pulsador-1-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/pulsador-1-150x150.jpg 150w\" sizes=\"(max-width: 292px) 100vw, 292px\" \/><\/p>\n<p><strong>Pines macho<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6463\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/tira-de-pines-macho-cuadrados.jpg\" alt=\"\" width=\"279\" height=\"347\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/tira-de-pines-macho-cuadrados.jpg 500w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/tira-de-pines-macho-cuadrados-242x300.jpg 242w\" sizes=\"(max-width: 279px) 100vw, 279px\" \/><\/p>\n<p><strong>2 z\u00f3calos para arduino mini pro<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6464\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/zocalo.jpg\" alt=\"\" width=\"307\" height=\"307\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/zocalo.jpg 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/zocalo-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/zocalo-150x150.jpg 150w\" sizes=\"(max-width: 307px) 100vw, 307px\" \/><\/p>\n<p>PCB<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-6470\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/pcb.jpg\" alt=\"\" width=\"454\" height=\"474\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/pcb.jpg 454w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/pcb-287x300.jpg 287w\" sizes=\"(max-width: 454px) 100vw, 454px\" \/><\/p>\n<p>Descarga el archivo gerber gratis desde aqu\u00ed\u00a0 y mandarlo a fabricar opcionalmente&#8211;&gt; <a href=\"https:\/\/www.pcbway.com\/project\/shareproject\/Dual_Synchronized_Radio_Frequency_Control_for_Motor_Lights_and_more.html\">https:\/\/www.pcbway.com\/project\/shareproject\/Dual_Synchronized_Radio_Frequency_Control_for_Motor_Lights_and_more.html<\/a><\/p>\n<p><span style=\"color: #ffffff;\">O desde aqu\u00ed tambien <a style=\"color: #ffffff;\" href=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/Gerber_PCB_apc220-emisor-receptor-Dual.zip\">Gerber_PCB_apc220 emisor receptor Dual<\/a><\/span><\/p>\n<pre class=\"lang:default decode:true\" title=\"C\u00f3digo Fuente\">\/\/Variables\r\nString cadena;\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 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 estCadena2=0;\r\nint estCadena3=0;\r\nint estCadena4=0;\r\nint estCadena5=0;\r\nint estCadena6=0;\r\nint estCadena7=0;\r\nint estCadena8=0;\r\nint estCadena9=0;\r\n\/\/Pines para las luces\r\nint luz10 = 10;\r\nint luz11 = 11;\r\nint luz12 = 12;\r\nint luz13 = 13;\r\nint luzA0 = A0;\r\nint luzA1 = A1;\r\nint luzA2 = A2;\r\nint luzA3 = A3;   \r\nvoid setup () {\r\n    Serial.begin(9600);\/\/ setea la velocidad del puerto serial debe conincidir con la del m\u00f3dulo apc220\r\n    \/\/Seteamos los pines de los pulsadores como entradas y activamos resistores de pullup\r\n    pinMode(2, INPUT_PULLUP);\r\n    pinMode(3, INPUT_PULLUP);\r\n    pinMode(4, INPUT_PULLUP);\r\n    pinMode(5, INPUT_PULLUP);\r\n    pinMode(6, INPUT_PULLUP);\r\n    pinMode(7, INPUT_PULLUP);\r\n    pinMode(8, INPUT_PULLUP);\r\n    pinMode(9, INPUT_PULLUP);\r\n\/\/Seteamos los pines como salidas para encender led o activar relay\r\n    pinMode(luz10, OUTPUT);\r\n    pinMode(luz11, OUTPUT);\r\n    pinMode(luz12, OUTPUT);\r\n    pinMode(luz13, OUTPUT);\r\n    pinMode(luzA0, OUTPUT);\r\n    pinMode(luzA1, OUTPUT);\r\n    pinMode(luzA2, OUTPUT);\r\n    pinMode(luzA3, OUTPUT);\r\n    \/\/Activamos estas lineas si usamos m\u00f3dulos relay con l\u00f3gica invertida (activa en con LOW y desactiva con HIGH)\r\n    digitalWrite(10, HIGH);\r\n    digitalWrite(11, HIGH);\r\n    digitalWrite(12, HIGH);\r\n    digitalWrite(13, HIGH);\r\n    digitalWrite(A0, HIGH);\r\n    digitalWrite(A1, HIGH);\r\n    digitalWrite(A2, HIGH);\r\n    digitalWrite(A3, HIGH);\r\n    delay(10);\r\n   }\r\nvoid loop () {\r\n  \/\/leemos los caractres que ingresan al puerto serie y obtenemos una cadena\r\n  if (Serial.available())  {\r\n    cadena = String(\"\");\r\n    while (Serial.available()) {\r\n      cadena = cadena + char(Serial.read());\r\n      delay(1);\r\n        }\r\n        }\r\n \/\/Lectura de botones, si hemos apretados un pulsador asignamos un LOW a la variable\r\npul2 = digitalRead(2);\r\npul3 = digitalRead(3);\r\npul4 = digitalRead(4);\r\npul5 = digitalRead(5);\r\npul6 = digitalRead(6);\r\npul7 = digitalRead(7);\r\npul8 = digitalRead(8);\r\npul9 = digitalRead(9);\r\n\/\/*********************\r\n\/\/Enciende o apaga la luz \r\nif (pul2 == LOW) {\/\/Si el pulsador 2 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul2 = digitalRead(2);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado2 ==0){\/\/Si la variable estado2 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz2on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado2 =1;\/\/Asignamos el valor 1 a la variable \"estado2\"\r\n} else{\r\n Serial.print(\"luz2off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado2 =0;\r\n  }\r\nwhile(pul2 == LOW){\r\npul2 = digitalRead(2);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul3 == LOW) {\/\/Si el pulsador 3 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul3 = digitalRead(3);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado3 ==0){\/\/Si la variable estado3 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz3on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado3 =1;\/\/Asignamos el valor 1 a la variable \"estado3\"\r\n} else{\r\n Serial.print(\"luz3off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado3 =0;\r\n  }\r\nwhile(pul3 == LOW){\r\npul3 = digitalRead(3);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul4 == LOW) {\/\/Si el pulsador 4 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul4 = digitalRead(4);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado4 ==0){\/\/Si la variable estado4 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz4on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado4 =1;\/\/Asignamos el valor 1 a la variable \"estado4\"\r\n} else{\r\n Serial.print(\"luz4off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado4 =0;\r\n  }\r\nwhile(pul4 == LOW){\r\npul4 = digitalRead(4);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul5 == LOW) {\/\/Si el pulsador 5 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul5 = digitalRead(5);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado5 ==0){\/\/Si la variable estado5 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz5on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado5 =1;\/\/Asignamos el valor 1 a la variable \"estado5\"\r\n} else{\r\n Serial.print(\"luz5off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado5 =0;\r\n  }\r\nwhile(pul5 == LOW){\r\npul5 = digitalRead(5);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul6 == LOW) {\/\/Si el pulsador 6 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul6 = digitalRead(6);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado6 ==0){\/\/Si la variable estado6 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz6on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado6 =1;\/\/Asignamos el valor 1 a la variable \"estado6\"\r\n} else{\r\n Serial.print(\"luz6off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado6 =0;\r\n  }\r\nwhile(pul6 == LOW){\r\npul6 = digitalRead(6);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul7 == LOW) {\/\/Si el pulsador 7 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul7 = digitalRead(7);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado7 ==0){\/\/Si la variable estado7 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz7on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado7 =1;\/\/Asignamos el valor 1 a la variable \"estado7\"\r\n} else{\r\n Serial.print(\"luz7off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado7 =0;\r\n  }\r\nwhile(pul7 == LOW){\r\npul7 = digitalRead(7);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul8 == LOW) {\/\/Si el pulsador 8 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul8 = digitalRead(8);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado8 ==0){\/\/Si la variable estado8 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz8on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado8 =1;\/\/Asignamos el valor 1 a la variable \"estado8\"\r\n} else{\r\n Serial.print(\"luz8off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado8 =0;\r\n  }\r\nwhile(pul8 == LOW){\r\npul8 = digitalRead(8);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul9 == LOW) {\/\/Si el pulsador 9 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul9 = digitalRead(9);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado9 ==0){\/\/Si la variable estado9 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz9on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado9 =1;\/\/Asignamos el valor 1 a la variable \"estado9\"\r\n} else{\r\n Serial.print(\"luz9off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado9 =0;\r\n  }\r\nwhile(pul9 == LOW){\r\npul9 = digitalRead(9);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------  \r\n  delay(50);\r\n\/\/**************\r\n\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz2on\" &amp;&amp; estCadena2 == 0) {\/\/Compara el valor de la cadena obetinada y estCadena2 vale 0\r\ndigitalWrite (luz10,LOW);\/\/Encendemos el relay (si que es de l\u00f3gica invertida), pero el led se apaga\r\nSerial.print(\"luz2on\");\/\/Env\u00eda esta cadena\r\nestCadena2 = 1;\r\nestado2 =1;\r\n    }\r\n if (cadena == \"luz2off\" &amp;&amp; estCadena2 == 1) {\/\/compara el valor de la cadena obetinada  y estCadena2 vale 1\r\ndigitalWrite (luz10,HIGH);\/\/Apagamos el relay (si que es de l\u00f3gica invertida), pero el led se enciende\r\nSerial.print(\"luz2off\");\/\/Env\u00eda esta cadena\r\nestCadena2 = 0;\r\nestado2 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz3on\" &amp;&amp; estCadena3 == 0) {\r\ndigitalWrite (luz11,LOW);\r\nSerial.print(\"luz3on\");\r\nestCadena3 = 1;\r\nestado3 =1;\r\n    }\r\n if (cadena == \"luz3off\" &amp;&amp; estCadena3 == 1) {\r\ndigitalWrite (luz11,HIGH);\r\nSerial.print(\"luz3off\");\r\nestCadena3 = 0;\r\nestado3 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz4on\" &amp;&amp; estCadena4 == 0) {\r\ndigitalWrite (luz12,LOW);\r\nSerial.print(\"luz4on\");\r\nestCadena4 = 1;\r\nestado4 =1;\r\n    }\r\n if (cadena == \"luz4off\" &amp;&amp; estCadena4 == 1) {\r\ndigitalWrite (luz12,HIGH);\r\nSerial.print(\"luz4off\");\r\nestCadena4 = 0;\r\nestado4 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz5on\" &amp;&amp; estCadena5 == 0) {\r\ndigitalWrite (luz13,LOW);\r\nSerial.print(\"luz5on\");\r\nestCadena5 = 1;\r\nestado5 =1;\r\n    }\r\n if (cadena == \"luz5off\" &amp;&amp; estCadena5 == 1) {\r\ndigitalWrite (luz13,HIGH);\r\nSerial.print(\"luz5off\");\r\nestCadena5 = 0;\r\nestado5 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz6on\" &amp;&amp; estCadena6 == 0) {\r\ndigitalWrite (luzA0,LOW);\r\nSerial.print(\"luz6on\");\r\nestCadena6 = 1;\r\nestado6 =1;\r\n    }\r\n if (cadena == \"luz6off\" &amp;&amp; estCadena6 == 1) {\r\ndigitalWrite (luzA0,HIGH);\r\nSerial.print(\"luz6off\");\r\nestCadena6 = 0;\r\nestado6 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz7on\" &amp;&amp; estCadena7 == 0) {\r\ndigitalWrite (luzA1,LOW);\r\nSerial.print(\"luz7on\");\r\nestCadena7 = 1;\r\nestado7 =1;\r\n    }\r\n if (cadena == \"luz7off\" &amp;&amp; estCadena7 == 1) {\r\ndigitalWrite (luzA1,HIGH);\r\nSerial.print(\"luz7off\");\r\nestCadena7 = 0;\r\nestado7 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz8on\" &amp;&amp; estCadena8 == 0) {\r\ndigitalWrite (luzA2,LOW);\r\nSerial.print(\"luz8on\");\r\nestCadena8 = 1;\r\nestado8 =1;\r\n    }\r\n if (cadena == \"luz8off\" &amp;&amp; estCadena8 == 1) {\r\ndigitalWrite (luzA2,HIGH);\r\nSerial.print(\"luz8off\");\r\nestCadena8 = 0;\r\nestado8 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz9on\" &amp;&amp; estCadena9 == 0) {\r\ndigitalWrite (luzA3,LOW);\r\nSerial.print(\"luz9on\");\r\nestCadena9 = 1;\r\nestado9 =1;\r\n    }\r\n if (cadena == \"luz9off\" &amp;&amp; estCadena9 == 1) {\r\ndigitalWrite (luzA3,HIGH);\r\nSerial.print(\"luz9off\");\r\nestCadena9 = 0;\r\nestado9 =0;\r\n    }   \r\n}<\/pre>\n<p><strong>C\u00f3digo Fuente (M\u00f3dulo relay sin l\u00f3gica inversa)<\/strong><\/p>\n<pre class=\"lang:arduino decode:true\" title=\"C\u00f3digo Fuente\">\/\/Variables\r\nString cadena;\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 estado2 = 1;\r\nint estado3 = 1;\r\nint estado4 = 1;\r\nint estado5 = 1;\r\nint estado6 = 1;\r\nint estado7 = 1;\r\nint estado8 = 1;\r\nint estado9 = 1;\r\nint estCadena2=1;\r\nint estCadena3=1;\r\nint estCadena4=1;\r\nint estCadena5=1;\r\nint estCadena6=1;\r\nint estCadena7=1;\r\nint estCadena8=1;\r\nint estCadena9=1;\r\n\/\/Pines para las luces\r\nint luz10 = 10;\r\nint luz11 = 11;\r\nint luz12 = 12;\r\nint luz13 = 13;\r\nint luzA0 = A0;\r\nint luzA1 = A1;\r\nint luzA2 = A2;\r\nint luzA3 = A3;   \r\nvoid setup () {\r\n    Serial.begin(9600);\/\/ setea la velocidad del puerto serial debe conincidir con la del m\u00f3dulo apc220\r\n    \/\/Seteamos los pines de los pulsadores como entradas y activamos resistores de pullup\r\n    pinMode(2, INPUT_PULLUP);\r\n    pinMode(3, INPUT_PULLUP);\r\n    pinMode(4, INPUT_PULLUP);\r\n    pinMode(5, INPUT_PULLUP);\r\n    pinMode(6, INPUT_PULLUP);\r\n    pinMode(7, INPUT_PULLUP);\r\n    pinMode(8, INPUT_PULLUP);\r\n    pinMode(9, INPUT_PULLUP);\r\n\/\/Seteamos los pines como salidas para encender led o activar relay\r\n    pinMode(luz10, OUTPUT);\r\n    pinMode(luz11, OUTPUT);\r\n    pinMode(luz12, OUTPUT);\r\n    pinMode(luz13, OUTPUT);\r\n    pinMode(luzA0, OUTPUT);\r\n    pinMode(luzA1, OUTPUT);\r\n    pinMode(luzA2, OUTPUT);\r\n    pinMode(luzA3, OUTPUT);\r\n    \/\/Activamos estas lineas si usamos m\u00f3dulos relay con l\u00f3gica invertida (activa en con LOW y desactiva con HIGH)\r\n\/\/    digitalWrite(10, HIGH);\r\n\/\/    digitalWrite(11, HIGH);\r\n\/\/    digitalWrite(12, HIGH);\r\n\/\/    digitalWrite(13, HIGH);\r\n\/\/    digitalWrite(A0, HIGH);\r\n\/\/    digitalWrite(A1, HIGH);\r\n\/\/    digitalWrite(A2, HIGH);\r\n\/\/    digitalWrite(A3, HIGH);\r\n    delay(10);\r\n   }\r\nvoid loop () {\r\n  \/\/leemos los caractres que ingresan al puerto serie y obtenemos una cadena\r\n  if (Serial.available())  {\r\n    cadena = String(\"\");\r\n    while (Serial.available()) {\r\n      cadena = cadena + char(Serial.read());\r\n      delay(1);\r\n        }\r\n        }\r\n \/\/Lectura de botones, si hemos apretados un pulsador asignamos un LOW a la variable\r\npul2 = digitalRead(2);\r\npul3 = digitalRead(3);\r\npul4 = digitalRead(4);\r\npul5 = digitalRead(5);\r\npul6 = digitalRead(6);\r\npul7 = digitalRead(7);\r\npul8 = digitalRead(8);\r\npul9 = digitalRead(9);\r\n\/\/*********************\r\n\/\/Enciende o apaga la luz \r\nif (pul2 == LOW) {\/\/Si el pulsador 2 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul2 = digitalRead(2);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado2 ==0){\/\/Si la variable estado2 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz2on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado2 =1;\/\/Asignamos el valor 1 a la variable \"estado2\"\r\n} else{\r\n Serial.print(\"luz2off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado2 =0;\r\n  }\r\nwhile(pul2 == LOW){\r\npul2 = digitalRead(2);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul3 == LOW) {\/\/Si el pulsador 3 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul3 = digitalRead(3);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado3 ==0){\/\/Si la variable estado3 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz3on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado3 =1;\/\/Asignamos el valor 1 a la variable \"estado3\"\r\n} else{\r\n Serial.print(\"luz3off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado3 =0;\r\n  }\r\nwhile(pul3 == LOW){\r\npul3 = digitalRead(3);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul4 == LOW) {\/\/Si el pulsador 4 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul4 = digitalRead(4);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado4 ==0){\/\/Si la variable estado4 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz4on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado4 =1;\/\/Asignamos el valor 1 a la variable \"estado4\"\r\n} else{\r\n Serial.print(\"luz4off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado4 =0;\r\n  }\r\nwhile(pul4 == LOW){\r\npul4 = digitalRead(4);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul5 == LOW) {\/\/Si el pulsador 5 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul5 = digitalRead(5);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado5 ==0){\/\/Si la variable estado5 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz5on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado5 =1;\/\/Asignamos el valor 1 a la variable \"estado5\"\r\n} else{\r\n Serial.print(\"luz5off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado5 =0;\r\n  }\r\nwhile(pul5 == LOW){\r\npul5 = digitalRead(5);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul6 == LOW) {\/\/Si el pulsador 6 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul6 = digitalRead(6);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado6 ==0){\/\/Si la variable estado6 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz6on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado6 =1;\/\/Asignamos el valor 1 a la variable \"estado6\"\r\n} else{\r\n Serial.print(\"luz6off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado6 =0;\r\n  }\r\nwhile(pul6 == LOW){\r\npul6 = digitalRead(6);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul7 == LOW) {\/\/Si el pulsador 7 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul7 = digitalRead(7);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado7 ==0){\/\/Si la variable estado7 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz7on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado7 =1;\/\/Asignamos el valor 1 a la variable \"estado7\"\r\n} else{\r\n Serial.print(\"luz7off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado7 =0;\r\n  }\r\nwhile(pul7 == LOW){\r\npul7 = digitalRead(7);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul8 == LOW) {\/\/Si el pulsador 8 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul8 = digitalRead(8);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado8 ==0){\/\/Si la variable estado8 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz8on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado8 =1;\/\/Asignamos el valor 1 a la variable \"estado8\"\r\n} else{\r\n Serial.print(\"luz8off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado8 =0;\r\n  }\r\nwhile(pul8 == LOW){\r\npul8 = digitalRead(8);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------\r\n\/\/Enciende o apaga la luz \r\nif (pul9 == LOW) {\/\/Si el pulsador 9 est\u00e1 precionado se cumple esta condici\u00f3n\r\npul9 = digitalRead(9);\/\/Leemos el estado del bot\u00f3n nuevamente\r\nif(estado9 ==0){\/\/Si la variable estado9 es igual a 0 se cumple esta condici\u00f3n\r\nSerial.print(\"luz9on\");\/\/ Enviamos esta cadena de caracteres x el puerto serial para encender la luz\r\nestado9 =1;\/\/Asignamos el valor 1 a la variable \"estado9\"\r\n} else{\r\n Serial.print(\"luz9off\");\/\/Enviamos esta cadena para apagar la luz\r\n estado9 =0;\r\n  }\r\nwhile(pul9 == LOW){\r\npul9 = digitalRead(9);\/\/Se cumple esta condici\u00f3n mientras est\u00e9 precionado el bot\u00f3n   \r\n    }\r\n  }\r\n\/\/-----------------------------------------------------------------------------------  \r\n  delay(50);\r\n\/\/**************\r\n\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz2on\" &amp;&amp; estCadena2 == 0) {\/\/Compara el valor de la cadena obetinada y estCadena2 vale 0\r\ndigitalWrite (luz10,LOW);\/\/Encendemos el relay (si que es de l\u00f3gica invertida), pero el led se apaga\r\nSerial.print(\"luz2on\");\/\/Env\u00eda esta cadena\r\nestCadena2 = 1;\r\nestado2 =1;\r\n    }\r\n if (cadena == \"luz2off\" &amp;&amp; estCadena2 == 1) {\/\/compara el valor de la cadena obetinada  y estCadena2 vale 1\r\ndigitalWrite (luz10,HIGH);\/\/Apagamos el relay (si que es de l\u00f3gica invertida), pero el led se enciende\r\nSerial.print(\"luz2off\");\/\/Env\u00eda esta cadena\r\nestCadena2 = 0;\r\nestado2 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz3on\" &amp;&amp; estCadena3 == 0) {\r\ndigitalWrite (luz11,LOW);\r\nSerial.print(\"luz3on\");\r\nestCadena3 = 1;\r\nestado3 =1;\r\n    }\r\n if (cadena == \"luz3off\" &amp;&amp; estCadena3 == 1) {\r\ndigitalWrite (luz11,HIGH);\r\nSerial.print(\"luz3off\");\r\nestCadena3 = 0;\r\nestado3 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz4on\" &amp;&amp; estCadena4 == 0) {\r\ndigitalWrite (luz12,LOW);\r\nSerial.print(\"luz4on\");\r\nestCadena4 = 1;\r\nestado4 =1;\r\n    }\r\n if (cadena == \"luz4off\" &amp;&amp; estCadena4 == 1) {\r\ndigitalWrite (luz12,HIGH);\r\nSerial.print(\"luz4off\");\r\nestCadena4 = 0;\r\nestado4 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz5on\" &amp;&amp; estCadena5 == 0) {\r\ndigitalWrite (luz13,LOW);\r\nSerial.print(\"luz5on\");\r\nestCadena5 = 1;\r\nestado5 =1;\r\n    }\r\n if (cadena == \"luz5off\" &amp;&amp; estCadena5 == 1) {\r\ndigitalWrite (luz13,HIGH);\r\nSerial.print(\"luz5off\");\r\nestCadena5 = 0;\r\nestado5 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz6on\" &amp;&amp; estCadena6 == 0) {\r\ndigitalWrite (luzA0,LOW);\r\nSerial.print(\"luz6on\");\r\nestCadena6 = 1;\r\nestado6 =1;\r\n    }\r\n if (cadena == \"luz6off\" &amp;&amp; estCadena6 == 1) {\r\ndigitalWrite (luzA0,HIGH);\r\nSerial.print(\"luz6off\");\r\nestCadena6 = 0;\r\nestado6 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz7on\" &amp;&amp; estCadena7 == 0) {\r\ndigitalWrite (luzA1,LOW);\r\nSerial.print(\"luz7on\");\r\nestCadena7 = 1;\r\nestado7 =1;\r\n    }\r\n if (cadena == \"luz7off\" &amp;&amp; estCadena7 == 1) {\r\ndigitalWrite (luzA1,HIGH);\r\nSerial.print(\"luz7off\");\r\nestCadena7 = 0;\r\nestado7 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz8on\" &amp;&amp; estCadena8 == 0) {\r\ndigitalWrite (luzA2,LOW);\r\nSerial.print(\"luz8on\");\r\nestCadena8 = 1;\r\nestado8 =1;\r\n    }\r\n if (cadena == \"luz8off\" &amp;&amp; estCadena8 == 1) {\r\ndigitalWrite (luzA2,HIGH);\r\nSerial.print(\"luz8off\");\r\nestCadena8 = 0;\r\nestado8 =0;\r\n    }\r\n\/\/--------------------------------------------------------------------\r\n if (cadena == \"luz9on\" &amp;&amp; estCadena9 == 0) {\r\ndigitalWrite (luzA3,LOW);\r\nSerial.print(\"luz9on\");\r\nestCadena9 = 1;\r\nestado9 =1;\r\n    }\r\n if (cadena == \"luz9off\" &amp;&amp; estCadena9 == 1) {\r\ndigitalWrite (luzA3,HIGH);\r\nSerial.print(\"luz9off\");\r\nestCadena9 = 0;\r\nestado9 =0;\r\n    }   \r\n}<\/pre>\n<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>\n<hr \/>\n<p><strong>VIDEOS RECOMENDADOS<\/strong><\/p>\n<p><iframe loading=\"lazy\" title=\"\ud83e\udd16 Control Remoto con m\u00f3dulos APC220 para Robot Rover 5 con Arduino - DFRobot\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/yIJucN5sQ_I?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" 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>En este tutorial veremos como hacer un control de radiofrecuencia sincronizado, ya que un control puede controlar al otro. Con los m\u00f3dulos APC220, que seg\u00fan el fabricante puede alcanzar una distancia de hasta un kilometro, en condiciones apropiadas, son unos m\u00f3dulos de radio transparente, ya que todo lo que env\u00eda por el puerto serial, es [&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":6465,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[1216,979,1067,45,913,181,486,636,906,772,1219,1217,595,1071,1070,1069,624,514,1171,613,1068,1066,917,1173,1218,1215,687],"_links":{"self":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/6456"}],"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=6456"}],"version-history":[{"count":8,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/6456\/revisions"}],"predecessor-version":[{"id":6482,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/6456\/revisions\/6482"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media\/6465"}],"wp:attachment":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media?parent=6456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/categories?post=6456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/tags?post=6456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}