{"id":10959,"date":"2015-10-04T21:30:26","date_gmt":"2015-10-04T19:30:26","guid":{"rendered":"http:\/\/www.pesadillo.com\/pesadillo\/?p=10959"},"modified":"2015-10-04T21:30:26","modified_gmt":"2015-10-04T19:30:26","slug":"construye-tu-robot-por-menos-de-20e-con-arduino-arduino-robot-ps-19","status":"publish","type":"post","link":"https:\/\/www.pesadillo.com\/pesadillo\/?p=10959","title":{"rendered":"Construye tu robot por menos de 20\u00e2\u201a\u00ac con Arduino. Arduino Robot Ps (19)"},"content":{"rendered":"<h1 style=\"text-align: center;\">Arduino Robot\u00a0<span style=\"color: #ff0000;\">Ps<\/span><\/h1>\n<p><strong>A la conquista del Bluetooth (2) &#8230;<\/strong><\/p>\n<p>Ayer planteamos el esquema y este es el resultado:<\/p>\n<p><a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2015\/10\/0Image000032.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10963\" alt=\"0Image00003\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2015\/10\/0Image000032.jpg\" width=\"600\" height=\"450\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2015\/10\/0Image000032.jpg 600w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2015\/10\/0Image000032-300x225.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a> <a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2015\/10\/0Image000021.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10964\" alt=\"0Image00002\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2015\/10\/0Image000021.jpg\" width=\"600\" height=\"450\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2015\/10\/0Image000021.jpg 600w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2015\/10\/0Image000021-300x225.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>Una vez localizada la aplicaci\u00f3n, y tras averiguar los comandos que env\u00eda la aplicaci\u00f3n al modulo. Modificamos nuestro programa&#8230;<\/p>\n<p>&nbsp;<br \/>\n[php]<br \/>\n\/*********************************************************************************************<\/p>\n<p>  Tutorial: Robot Ps<br \/>\n  Autor: www.pesadillo.com &#8211; 27 Agosto 2015<br \/>\n  http:\/\/www.pesadillo.com\/<br \/>\n  Experimento&#8230; Implementamos un sistema de control remoto por Bluetooth. En lugar de que el<br \/>\n  robot realice una tarea programada, controlaremos sus movimientos.<br \/>\n  SEGUNDA PARTE: Mediante comunicacion Bluethooth comunicaremos un telefono con el Arduino Robot Ps<br \/>\n  Utilizaremos la aplicacion de  http:\/\/www.hobbyprojects.com\/bluetooth-device-control\/android-bluetooth-robo-remote-control-project.html<\/p>\n<p> ********************************************************************************************\/<br \/>\n#define MOTOR1_CTL1  8  \/\/ I1<br \/>\n#define MOTOR1_CTL2  9  \/\/ I2<\/p>\n<p>#define MOTOR2_CTL1  6  \/\/ I3<br \/>\n#define MOTOR2_CTL2  7  \/\/ I4<\/p>\n<p>int speakerPin = 13;  \/\/ declaro pin para speaker<\/p>\n<p>#include &lt;SoftwareSerial.h&gt;<\/p>\n<p>#define RxD 10<br \/>\n#define TxD 11<br \/>\n#define RST 5<br \/>\n\/\/#define KEY 4<\/p>\n<p>SoftwareSerial BTSerial(RxD, TxD);<\/p>\n<p>\/\/char Bluetooth; \/\/crear variable que almacena los datos recibidos por el puerto serie<br \/>\nint inputString=0; \/\/definimos 0 el valor de texto recibido por BT<\/p>\n<p>void setup()<br \/>\n{<br \/>\n  \/\/ Setup pins for motor 1<br \/>\n   pinMode(MOTOR1_CTL1,OUTPUT);<br \/>\n   pinMode(MOTOR1_CTL2,OUTPUT);<\/p>\n<p>  \/\/ Setup pins for motor 2<br \/>\n   pinMode(MOTOR2_CTL1,OUTPUT);<br \/>\n   pinMode(MOTOR2_CTL2,OUTPUT);<\/p>\n<p>   \/\/ set the speaker pin mode to output<br \/>\n   pinMode(speakerPin, OUTPUT); <\/p>\n<p>  pinMode(RST, OUTPUT);<br \/>\n \/\/ pinMode(KEY, OUTPUT);<br \/>\n  digitalWrite(RST, LOW);<br \/>\n  \/\/digitalWrite(KEY, HIGH);<br \/>\n  digitalWrite(RST, HIGH);<\/p>\n<p>  delay(500);<\/p>\n<p>  BTSerial.flush();<br \/>\n  delay(500);<br \/>\n  BTSerial.begin(9600);<br \/>\n  BTSerial.begin(9600);\/\/Habilitamos puerto BT a la velocidad de 9600<br \/>\n}<\/p>\n<p>\/\/pitidos (subproceso)<br \/>\nvoid pitido(char pitidos_num)<br \/>\n{<br \/>\n\/\/ el sibproceso pitido(3) Har\u00eda 3 pitidos)<br \/>\n   for (int pip=0; pip&lt;pitidos_num; pip++)<br \/>\n     {<br \/>\n     for (int i=300; i&gt;0; i&#8211;)<br \/>\n     {<br \/>\n        digitalWrite(speakerPin, HIGH);<br \/>\n        delayMicroseconds(200);<br \/>\n        digitalWrite(speakerPin, LOW);<br \/>\n        delayMicroseconds(200); <\/p>\n<p>     }<br \/>\n        delay (50);<br \/>\n     }<br \/>\n}<\/p>\n<p>\/\/ Antes de nada, obtenemos la lista de comandos de la aplicacion para manejar el robot<br \/>\n\/\/Programa para control con el telefono: http:\/\/www.hobbyprojects.com\/bluetooth-device-control\/android-bluetooth-robo-remote-control-project.html<br \/>\n\/\/ La nuestra utiliza los siguientes caracteres:<br \/>\n\/\/A = Arriba<br \/>\n\/\/B = Abajo<br \/>\n\/\/C = Derecha<br \/>\n\/\/D = Izquierda<br \/>\n\/\/E = Stop<br \/>\n\/\/F = Giro 360<br \/>\n\/\/G = Giro -360<\/p>\n<p>\/\/Empieza el ciclo<br \/>\nvoid loop()<br \/>\n{<\/p>\n<p>  if (BTSerial.available()){ \/\/si hay datos en el BT<br \/>\n   \/* COMENTAMOS ESTE TEXTO QUE NO UTILIZAMOS while(BTSerial.available())<br \/>\n    {<br \/>\n      char inChar = BTSerial.read(); \/\/lee la entrada de datos caracter por caracter<br \/>\n      inputString += inChar;        \/\/compone la cadena como la recibe por el puerto serie<\/p>\n<p>    }<br \/>\n   BTSerial.println(inputString); \/\/&#8217;Imprimimos la cadena de texto almacenada en el puerto en la variable*\/<br \/>\n   inputString=BTSerial.read(); \/\/almacenamos el valor del texto enviado<\/p>\n<p>  \/\/delay (50);<br \/>\n   \/\/ while (Serial.available() &gt; 0)<br \/>\n   \/\/ { Bluetooth = Serial.read() ; }      \/\/ borrar buffer (datos almacenados) del puerto serie<\/p>\n<p>  \/\/ avance<br \/>\n  if (inputString==&#8217;A&#8217;) \/\/En caso de recibir<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,HIGH); <\/p>\n<p>  }<\/p>\n<p>  \/\/atras<br \/>\n  if (inputString==&#8217;B&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW); <\/p>\n<p>  } <\/p>\n<p>     \/\/giro Derecha<br \/>\n  if (inputString==&#8217;C&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,HIGH);<br \/>\n   delay (50); \/\/giramos durante este tiempo.<br \/>\n      \/\/paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  } <\/p>\n<p>  \/\/giro Izquierda<br \/>\n  if (inputString==&#8217;D&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n   delay (50);<br \/>\n      \/\/ paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  } <\/p>\n<p>  \/\/para<br \/>\n  if (inputString==&#8217;E&#8217;)<br \/>\n  {<\/p>\n<p>         \/\/ paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n   pitido(2);<br \/>\n  }<br \/>\n \/\/giro derecha 360<br \/>\n  if (inputString==&#8217;F&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n   delay (490);<br \/>\n      \/\/ paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  } <\/p>\n<p>       \/\/giro izquierda 360<br \/>\n  if (inputString==&#8217;G&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,HIGH);<br \/>\n   delay (490);<br \/>\n      \/\/paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  } <\/p>\n<p>  }<br \/>\n \/\/inputString = &quot;&quot;;\/\/Poner vaciar variable<br \/>\n}\/\/fin del ciclo del programa<\/p>\n<p>[\/php]<\/p>\n<p>y se lo enviamos a la placa Arduino&#8230;<\/p>\n<p>&nbsp;<br \/>\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/3VtM4lN2A2Q?rel=0&amp;showinfo=0\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>Retocamos el c\u00f3digo y evitamos que el robot ande continuamente. De la siguiente forma, se controlar\u00e1 mejor el movimiento:<br \/>\n[php]<br \/>\n\/*********************************************************************************************<\/p>\n<p>  Tutorial: Robot Ps<br \/>\n  Autor: www.pesadillo.com &#8211; 27 Agosto 2015<br \/>\n  http:\/\/www.pesadillo.com\/<br \/>\n  Experimento&#8230; Implementamos un sistema de control remoto por Bluetooth. En lugar de que el<br \/>\n  robot realice una tarea programada, controlaremos sus movimientos.<br \/>\n  SEGUNDA PARTE: Mediante comunicacion Bluethooth comunicaremos un telefono con el Arduino Robot Ps<br \/>\n  Utilizaremos la aplicacion de  http:\/\/www.hobbyprojects.com\/bluetooth-device-control\/android-bluetooth-robo-remote-control-project.html<br \/>\n  En este codigo evitamos que se mueva continuamente y mandamos ordenes cortas para mejor control.<\/p>\n<p> ********************************************************************************************\/<br \/>\n#define MOTOR1_CTL1  8  \/\/ I1<br \/>\n#define MOTOR1_CTL2  9  \/\/ I2<\/p>\n<p>#define MOTOR2_CTL1  6  \/\/ I3<br \/>\n#define MOTOR2_CTL2  7  \/\/ I4<\/p>\n<p>int speakerPin = 13;  \/\/ declaro pin para speaker<\/p>\n<p>#include &lt;SoftwareSerial.h&gt;<\/p>\n<p>#define RxD 10<br \/>\n#define TxD 11<br \/>\n#define RST 5<br \/>\n\/\/#define KEY 4<\/p>\n<p>SoftwareSerial BTSerial(RxD, TxD);<\/p>\n<p>\/\/char Bluetooth; \/\/crear variable que almacena los datos recibidos por el puerto serie<br \/>\nint inputString=0; \/\/definimos 0 el valor de texto recibido por BT<\/p>\n<p>void setup()<br \/>\n{<br \/>\n  \/\/ Setup pins for motor 1<br \/>\n   pinMode(MOTOR1_CTL1,OUTPUT);<br \/>\n   pinMode(MOTOR1_CTL2,OUTPUT);<\/p>\n<p>  \/\/ Setup pins for motor 2<br \/>\n   pinMode(MOTOR2_CTL1,OUTPUT);<br \/>\n   pinMode(MOTOR2_CTL2,OUTPUT);<\/p>\n<p>   \/\/ set the speaker pin mode to output<br \/>\n   pinMode(speakerPin, OUTPUT); <\/p>\n<p>  pinMode(RST, OUTPUT);<br \/>\n \/\/ pinMode(KEY, OUTPUT);<br \/>\n  digitalWrite(RST, LOW);<br \/>\n  \/\/digitalWrite(KEY, HIGH);<br \/>\n  digitalWrite(RST, HIGH);<\/p>\n<p>  delay(500);<\/p>\n<p>  BTSerial.flush();<br \/>\n  delay(500);<br \/>\n  BTSerial.begin(9600);<br \/>\n  BTSerial.begin(9600);\/\/Habilitamos puerto BT a la velocidad de 9600<br \/>\n}<\/p>\n<p>\/\/pitidos (subproceso)<br \/>\nvoid pitido(char pitidos_num)<br \/>\n{<br \/>\n\/\/ el sibproceso pitido(3) Har\u00eda 3 pitidos)<br \/>\n   for (int pip=0; pip&lt;pitidos_num; pip++)<br \/>\n     {<br \/>\n     for (int i=300; i&gt;0; i&#8211;)<br \/>\n     {<br \/>\n        digitalWrite(speakerPin, HIGH);<br \/>\n        delayMicroseconds(200);<br \/>\n        digitalWrite(speakerPin, LOW);<br \/>\n        delayMicroseconds(200); <\/p>\n<p>     }<br \/>\n        delay (50);<br \/>\n     }<br \/>\n}<\/p>\n<p>\/\/ Antes de nada, obtenemos la lista de comandos de la aplicacion para manejar el robot<br \/>\n\/\/Programa para control con el telefono: http:\/\/www.hobbyprojects.com\/bluetooth-device-control\/android-bluetooth-robo-remote-control-project.html<br \/>\n\/\/ La nuestra utiliza los siguientes caracteres:<br \/>\n\/\/A = Arriba<br \/>\n\/\/B = Abajo<br \/>\n\/\/C = Derecha<br \/>\n\/\/D = Izquierda<br \/>\n\/\/E = Stop<br \/>\n\/\/F = Giro 360<br \/>\n\/\/G = Giro -360<\/p>\n<p>\/\/Empieza el ciclo<br \/>\nvoid loop()<br \/>\n{<\/p>\n<p>  if (BTSerial.available()){ \/\/si hay datos en el BT<br \/>\n   \/*while(BTSerial.available())<br \/>\n    {<br \/>\n      char inChar = BTSerial.read(); \/\/lee la entrada de datos caracter por caracter<br \/>\n      inputString += inChar;        \/\/compone la cadena como la recibe por el puerto serie<\/p>\n<p>    }<br \/>\n   BTSerial.println(inputString); \/\/&#8217;Imprimimos la cadena de texto almacenada en el puerto en la variable*\/<br \/>\n   inputString=BTSerial.read(); \/\/almacenamos el valor del texto enviado<\/p>\n<p>  \/\/delay (50);<br \/>\n   \/\/ while (Serial.available() &gt; 0)<br \/>\n   \/\/ { Bluetooth = Serial.read() ; }      \/\/ borrar buffer (datos almacenados) del puerto serie<\/p>\n<p>  \/\/ avance<br \/>\n  if (inputString==&#8217;A&#8217;) \/\/En caso de recibir<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,HIGH);<br \/>\n     delay (300); \/\/durante este tiempo.<br \/>\n      \/\/paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  }<\/p>\n<p>  \/\/atras<br \/>\n  if (inputString==&#8217;B&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n      delay (300); \/\/durante este tiempo.<br \/>\n      \/\/paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  } <\/p>\n<p>     \/\/giro Derecha<br \/>\n  if (inputString==&#8217;C&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,HIGH);<br \/>\n   delay (50); \/\/giramos durante este tiempo.<br \/>\n      \/\/paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  } <\/p>\n<p>  \/\/giro Izquierda<br \/>\n  if (inputString==&#8217;D&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n   delay (50);<br \/>\n      \/\/ paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  } <\/p>\n<p>  \/\/para<br \/>\n  if (inputString==&#8217;E&#8217;)<br \/>\n  {<\/p>\n<p>         \/\/ paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n   pitido(2);<br \/>\n  }<br \/>\n \/\/giro derecha 360<br \/>\n  if (inputString==&#8217;F&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n   delay (490);<br \/>\n      \/\/ paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  } <\/p>\n<p>       \/\/giro izquierda 360<br \/>\n  if (inputString==&#8217;G&#8217;)<br \/>\n  {<br \/>\n   digitalWrite(MOTOR1_CTL1,HIGH);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,HIGH);<br \/>\n   delay (490);<br \/>\n      \/\/paramos motores<br \/>\n   digitalWrite(MOTOR1_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR1_CTL2,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL1,LOW);<br \/>\n   digitalWrite(MOTOR2_CTL2,LOW);<br \/>\n  } <\/p>\n<p>  }<br \/>\n \/\/inputString = &quot;&quot;;\/\/Poner vaciar variable<br \/>\n}\/\/fin del ciclo del programa<\/p>\n<p>[\/php]<\/p>\n<p>Y&#8230; He aqu\u00ed el resultado:<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/nf8n0aFOOpw?rel=0&amp;showinfo=0\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>Un nuevo Juguete para los peques de la casa&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Arduino Robot\u00a0Ps A la conquista del Bluetooth (2) &#8230; Ayer planteamos el esquema y este es el resultado: Una vez localizada la aplicaci\u00f3n, y tras averiguar los comandos que env\u00eda la aplicaci\u00f3n al modulo. Modificamos nuestro programa&#8230; &nbsp; [php] \/********************************************************************************************* Tutorial: Robot Ps Autor: www.pesadillo.com &#8211; 27 Agosto 2015 http:\/\/www.pesadillo.com\/ Experimento&#8230; Implementamos un sistema de control remoto por Bluetooth. En [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[48,59],"class_list":["post-10959","post","type-post","status-publish","format-standard","hentry","category-electronica","tag-arduino","tag-cursos"],"_links":{"self":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts\/10959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10959"}],"version-history":[{"count":4,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts\/10959\/revisions"}],"predecessor-version":[{"id":10969,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts\/10959\/revisions\/10969"}],"wp:attachment":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}