        <style>
            #donation_buttons td{
                border:medium none;
                background: inherit !important;
            }
            #donation_buttons table{               
                border:medium none;
                margin: auto;
                width: auto;
            }
        </style>
        {"id":6474,"date":"2021-05-30T18:00:32","date_gmt":"2021-05-30T18:00:32","guid":{"rendered":"https:\/\/rogerbit.com\/wprb\/?p=6474"},"modified":"2021-05-30T18:46:48","modified_gmt":"2021-05-30T18:46:48","slug":"dual-synchronized-radio-frequency-control-for-motor-lights-and-more","status":"publish","type":"post","link":"https:\/\/rogerbit.com\/wprb\/2021\/05\/dual-synchronized-radio-frequency-control-for-motor-lights-and-more\/","title":{"rendered":"Dual Synchronized Radio Frequency Control for Motor Lights and more"},"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>In this tutorial we will see how to do a synchronized radio frequency control, since one control can control the other. With APC220 modules, which according to the manufacturer can reach a distance of up to one kilometer, under appropriate conditions, are transparent radio modules, since everything that it sends through the serial port, is what will be transmitted. As the brains of the project we will use a couple of arduinos mini pro.<\/p>\n<hr \/>\n<p>You may be interested in projects in Arduino, pic, robotics, telecommunications,\u00a0<a href=\"http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1\">subscribe http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1<\/a>\u00a0videos with full source code and diagrams<\/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>Plates and modules used in this project<\/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>The\u00a0<strong>Arduino Pro Mini<\/strong>\u00a0is a microcontroller board based on the\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><br \/>\nIt has 14 digital input\/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, an integrated resonator, a reset button and holes to mount pin headers. A six-pin header can be connected to an FTDI cable or Sparkfun connection board to provide USB power and communication to the board.<br \/>\nThe Arduino Pro Mini is designed for semi-permanent installation in objects or exhibitions. The board comes without pre-assembled headers, allowing the use of various types of connectors or direct cable welding. The pin design is compatible with the Arduino Mini.<br \/>\nThere are two versions of the Pro Mini. One runs at 3.3V and 8 MHz, the other at 5V and 16 MHz.<\/p>\n<table>\n<tbody>\n<tr>\n<td>microcontroller<\/td>\n<td>ATmega328 *<\/td>\n<\/tr>\n<tr>\n<td>Board power supply<\/td>\n<td>3.35-12 V (3.3 V model) or 5-12 V (5 V model)<\/td>\n<\/tr>\n<tr>\n<td>Circuit operating voltage<\/td>\n<td>3.3V or 5V (depending on model)<\/td>\n<\/tr>\n<tr>\n<td>Digital I\/O Pins<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>PWM pins<\/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>Analog input pins<\/td>\n<td>6 6<\/td>\n<\/tr>\n<tr>\n<td>External outages<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>DC current per I\/O pin<\/td>\n<td>40 mA<\/td>\n<\/tr>\n<tr>\n<td>Flash memory<\/td>\n<td>32 KB of which 2 KB used by the bootloader *<\/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>Clock speed<\/td>\n<td>8 MHz (3.3V versions) or 16 MHz (5V versions)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"target_0\">Module Apc220<\/h3>\n<p>The\u00a0<strong>APC220 radio data module is a<\/strong>\u00a0high-power and highly versatile radio solution, it is easy to set up and integrate into any project that requires a wireless RF link. It is perfect for robotic applications if you need wireless control. You can connect one of these modules to your MCU via the TTL interface, and connect to your PC with another APC220 module via a TTL\/USB converter.<\/p>\n<h3 id=\"target_1\">specification<\/h3>\n<ul>\n<li>Working frequency: 420 MHz to 450 MHz<\/li>\n<li>Power: 3.5-5.5V<\/li>\n<li>Current: &lt;25-35mA<\/li>\n<li>Working temperature: -20oC + 70oC<\/li>\n<li>Range: 1200 m (1200 bps)<\/li>\n<li>Interface: UART\/ TTL<\/li>\n<li>Transmission speed: 1200-19200 bps<\/li>\n<li>Transmission speed (air): 1200-19200 bps<\/li>\n<li>Receive buffer: 256 bytes<\/li>\n<li>Size: 37mm \u00d7 17mm \u00d7 6.6mm<\/li>\n<li>Weight: 30g<\/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>Definition<\/strong><\/th>\n<th><strong>detail<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>Set<\/td>\n<td>Set parameters (low)<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Aux<\/td>\n<td>UART signal- Transmission (low) Transmission (high)<\/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>is<\/td>\n<td>Turn off the device when &lt;0.5 V. Enable the device when you leave it offline or apply&gt; 1.6 V<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Vdc<\/td>\n<td>3.3V-5.5V power<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Gnd<\/td>\n<td>Earth 0V<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Download 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>Run\u00a0<strong>APC22X_V12A.exe<\/strong>\u00a0(RF-Magic)\u00a0<strong>as an administrator<\/strong>\u00a0if your system is not 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>NOTE:<\/strong>\u00a0In the software you will recognize the APC220 module and COMX serial port automatically once we open it. Check in Device Manager to verify the correct\u00a0<strong>COM port.<\/strong><\/p>\n<p>Configure RF-magic as in the red square frame below (default setting), and click\u00a0<strong>Write W to<\/strong>\u00a0enter your settings, then click Read R\u00a0<strong>to<\/strong>\u00a0read the parameters you have set.<\/p>\n<div class=\"googlepublisherpluginad\">\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>configuration<\/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>Writing and reading settings<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th><strong>parameter<\/strong><\/th>\n<th><strong>rank<\/strong><\/th>\n<th><strong>default<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>RF frequency<\/td>\n<td>1KHz resolution, 100Hz \u00b1 accuracy<\/td>\n<td>434MHz<\/td>\n<\/tr>\n<tr>\n<td>TRx RF Rate<\/td>\n<td>1200, 2400, 4800, 9600, 19200 bps<\/td>\n<td>9600bps<\/td>\n<\/tr>\n<tr>\n<td>RF power<\/td>\n<td>0-9<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>Serial rate<\/td>\n<td>1200, 2400, 4800, 9600, 19200, 38400, 57600bps<\/td>\n<td>9600bps<\/td>\n<\/tr>\n<tr>\n<td>NET ID<\/td>\n<td>0-65535 (16-bit)<\/td>\n<td>12345<\/td>\n<\/tr>\n<tr>\n<td>NODE ID<\/td>\n<td>123456789012<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Patity Series<\/td>\n<td>Disable, the strange Patity, even Patity<\/td>\n<td>disable<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Configure the other APC220 module in the same way, with the same parameter settings.<\/p>\n<h4>8-channel Relay rele module<\/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>Operating Voltage: 5V DC<\/li>\n<li>Control Signal: TTL (3.3V or 5V)<\/li>\n<li>Relays No.: 8 CH<\/li>\n<li>Max capacity: 10A\/250VAC, 10A\/30VDC<\/li>\n<li>Max current: 10A (NO), 5A (NC)<\/li>\n<li>Action time: 10 ms\/5 ms<\/li>\n<li>To activate output NO: 0 Volts<\/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\" sizes=\"(max-width: 240px) 100vw, 240px\" 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\" alt=\"\" width=\"240\" height=\"240\" \/><\/p>\n<p><strong>16 3mm Led<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6459\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/led3mm.jpg\" sizes=\"(max-width: 202px) 100vw, 202px\" 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\" alt=\"\" width=\"202\" height=\"203\" \/><\/p>\n<p><strong>16 1KOhm Led<\/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>Female pins<\/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\" sizes=\"(max-width: 271px) 100vw, 271px\" 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\" alt=\"\" width=\"271\" height=\"286\" \/><\/p>\n<p><strong>16 Pushbuttons<\/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\" sizes=\"(max-width: 292px) 100vw, 292px\" 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\" alt=\"\" width=\"292\" height=\"292\" \/><\/p>\n<p><strong>Male pins<\/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\" sizes=\"(max-width: 279px) 100vw, 279px\" 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\" alt=\"\" width=\"279\" height=\"347\" \/><\/p>\n<p><strong>2 sockets for 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\" sizes=\"(max-width: 307px) 100vw, 307px\" 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\" alt=\"\" width=\"307\" height=\"307\" \/><\/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\" sizes=\"(max-width: 454px) 100vw, 454px\" 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\" alt=\"\" width=\"454\" height=\"474\" \/><\/p>\n<p>Download the gerber file free from here \u2013&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><strong>Source Code (for reverse logic relay module)<\/strong><\/p>\n<pre class=\"lang:default decode:true \" title=\"Source code\">\/\/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>Source Code (Relay module without reverse logic)<\/strong><\/p>\n<pre class=\"lang:default decode:true \" title=\"Source code\">\/\/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>\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<p><strong>RECOMMENDED VIDEOS<\/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>In this tutorial we will see how to do a synchronized radio frequency control, since one control can control the other. With APC220 modules, which according to the manufacturer can reach a distance of up to one kilometer, under appropriate conditions, are transparent radio modules, since everything that it sends through the serial port, is [&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":[648],"tags":[1179,1216,979,45,1221,181,1100,950,595,1071,1070,1069,966,1220,514,613,1068,1066,917,969,1180,1224,1223,1222,986],"_links":{"self":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/6474"}],"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=6474"}],"version-history":[{"count":3,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/6474\/revisions"}],"predecessor-version":[{"id":6477,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/6474\/revisions\/6477"}],"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=6474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/categories?post=6474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/tags?post=6474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}