 
{"id":3326,"date":"2021-03-12T02:37:54","date_gmt":"2021-03-12T02:37:54","guid":{"rendered":"http:\/\/132.248.251.218\/wpArduino\/?page_id=3326"},"modified":"2023-05-04T20:45:25","modified_gmt":"2023-05-04T20:45:25","slug":"monitor-serial-introducir-datos","status":"publish","type":"page","link":"https:\/\/iaciduino.enp.unam.mx\/index.php\/simulador-de-arduino-tinkercad\/monitor-serial-introducir-datos\/","title":{"rendered":"Monitor serial: introducir datos"},"content":{"rendered":"<p>En la lecci\u00f3n anterior aprendimos a utilizar el&nbsp; monitor en serie&nbsp; para imprimir los valores de nuestras variables y mensajesde texto, ahora vamos aprender c\u00f3mo interactuar con un programa introduciendo datos desde el monitor serial.&nbsp;<\/p>\n<p><\/p>\n<h2><span style=\"color: #000080;\">\u00bfC\u00f3mo introducir datos?<\/span><\/h2>\n<p>Para introducir datos se utiliza la caja de texto del monitor serial. Esta caja se muestra cuando se da click en el \u00edcono <em>Monitor en serie<\/em>. Observa la imagen para que identifiques la caja y los otros elementos del monitor serial para introducir datos.<\/p>\n<p><\/p>\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-37\" class=\"h5p-iframe\" data-content-id=\"37\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"entradaDatosMonitorSerie\"><\/iframe><\/div>\n<p><\/p>\n<p>Adem\u00e1s de activar el monitor en serie, es necesario desde c\u00f3digo verificar si se ha introducido un valor desde la caja de entrada y almacenarlo en una variable. Para verificar se utiliza la funci\u00f3n <em>Serial.available<\/em>&nbsp;y para leer un car\u00e1cter del buffer la funci\u00f3n <em>Serial.read.<\/em><\/p>\n<h2><span style=\"color: #000080;\">Funciones&nbsp; <em>Serial.available y Serial.read<\/em><\/span><\/h2>\n<p>Para leer valores desde el teclado, se debe codificar dentro de la funci\u00f3n <em>loop ( )<\/em> las instrucciones necesarias para verificar que existan datos en la caja de texto y que se almacenen en una variable.<\/p>\n<p>La funci\u00f3n <em>Serial.available( )<\/em> se utiliza para vigilar si se han ingresado datos desde el monitor serial con el teclado. T\u00e9cnicamente lo que hace es obtener&nbsp; el n\u00famero de bytes (caracteres) de datos que llegaron desde el puerto serial y que se almacenaron en el buffer de recepci\u00f3n.<\/p>\n<p>La forma de utilizar la instrucci\u00f3n <em>Serial.available( ) <\/em>es como parte de la condici\u00f3n de la la sentencia de control<em> if&nbsp; <\/em>para verificar si existe un dato:<\/p>\n<pre><span style=\"color: #800080;\">if<\/span>(Serial.available() &gt; <span style=\"color: #808000;\">0<\/span> )<\/pre>\n<p>Si existe un dato, entonces se utiliza la funci\u00f3n <em>Serial.read()<\/em> para leer el caracter del buffer. El caracter que se lee se asigna a una variable tipo char para almacenarlo:&nbsp;<\/p>\n<pre><span style=\"color: #800080;\"> char<\/span> dato = Serial.read();<\/pre>\n<p>Las siguientes instrucciones depender\u00e1n de lo que se requiere que el programa ejecute, forman parte de las instrucciones del if por lo que van dentro de las llaves. Observa el ejemplo de la Figura 1:&nbsp;<\/p>\n<p><\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2021\/03\/Captura-de-Pantalla-2021-03-30-a-las-20.21.41.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Figura 1 Ejemplo del uso de las funciones Serial.available y Serial.read<\/figcaption><\/figure><\/div>\n\n<h2><span style=\"color: #000080;\">Manos a la obra<\/span><\/h2>\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2021\/01\/ArmandoCircuitosAnimado-1.gif\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Armando Circuitos<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Ahora te toca a ti realizar el circuito y comprobar c\u00f3mo se leen datos desde el monitor serial.&nbsp; Vamos a seguir utilizando el circuito electr\u00f3nico de la pr\u00e1ctica que realizaste en el apartado <a href=\"http:\/\/132.248.251.218\/wpArduino\/index.php\/simulador-de-arduino-tinkercad\/construccion-de-un-circuito-electronico-en-tinkercad\/\">Construcci\u00f3n de un circuito electr\u00f3nico en Tinkercad<\/a> para programar el encendido y apagado del LED. Puedes modificar el programa original o realizar una copia al circuito y trabajar en la copia.<\/p>\n<p>Abre la ventana de c\u00f3digo en modo texto y comienza a codificar lo siguiente:<\/p>\n<\/div>\n<\/div>\n\n\n<p>&nbsp;Declara una variable de tipo char con el nombre tecla:<\/p>\n<pre><span style=\"color: #800080;\">char<\/span> tecla;<\/pre>\n<p>En la funci\u00f3n <em>loop( )<\/em>, despu\u00e9s de la llave que abre, codifica la sentencia if con la funci\u00f3n <em>Serial.available<\/em>&nbsp; como se muestra;&nbsp;<\/p>\n<pre><span style=\"color: #800080;\">if<\/span>(Serial.available() &gt; 0 ){ \/\/ Verifica si hay datos en el buffer<\/pre>\n<p>Si se cumple la condici\u00f3n, entonces guardamos el caracter del buffer en la variable tecla:<\/p>\n<pre>tecla = Serial.read(); \/\/ Lee cada car\u00e1cter uno por uno y se almacena en la variable<\/pre>\n<p>Para verificar el valor que se ha tecleado lo mandamos a imprimir en la pantalla del monitor serial como sigue:<\/p>\n<pre>Serial.print (\"La tecla presionada fue: \");<br><br>Serial.println (tecla);<\/pre>\n<p>A continuaci\u00f3n vamos a utilizar el dato que se introdujo para prender el led. Si el caracter es igual a 1, que el led se encienda, si es cualquier otro caracter, que el led se mantenga apagado. Las instrucciones para conseguir esta acci\u00f3n son las siguientes:<\/p>\n<pre><span style=\"color: #800080;\">if<\/span>(tecla == <span style=\"color: #ff0000;\">'1'<\/span>) <br>   digitalWrite(7,HIGH);<br><span style=\"color: #800080;\">else<\/span> <br>   digitalWrite(7,LOW); <\/pre>\n<p>&nbsp;Terminamos el programa cerrando el primer if del <em>Serial.available<\/em> con una llave y la funci\u00f3n <em>loop<\/em> con otra llave.<\/p>\n<p><\/p>\n<h2><span style=\"color: #000080;\">Programa completo del circuito<\/span><\/h2>\n<p>A continuaci\u00f3n te presentamos el programa completo, revisa que tu programa se parezca al que se muestra:<\/p>\n<pre><br><span style=\"color: #993300;\">\/*Tinkercad: herramienta de simulaci\u00f3n de Arduino<\/span><br><span style=\"color: #993300;\">* Pr\u00e1ctica: Encender y apagar un led desde teclado<\/span><br><span style=\"color: #993300;\">* Objetivo: Introducir datos con el monitor serial<\/span><br><span style=\"color: #993300;\">* Fecha: febrero 2021<\/span><br><span style=\"color: #993300;\">* Autor: Milagros Pacheco<\/span><br><span style=\"color: #993300;\">*\/<\/span><br><br><span style=\"color: #800080;\">char<\/span> tecla;<br>void setup()<br>{<br>pinMode(<span style=\"color: #008000;\">7<\/span>, OUTPUT);<br>Serial.begin(<span style=\"color: #008000;\">9600<\/span>);<br>}<br><br>void loop(){<br><br><span style=\"color: #800080;\">if<\/span>(Serial.available() &gt; 0 ){ <span style=\"color: #993300;\">\/\/ Verifica si hay datos en el buffer<\/span><br>  tecla = Serial.read(); <span style=\"color: #993300;\">\/\/ Lee cada car\u00e1cter uno por uno y se almacena en una variable<\/span><br>  Serial.print (<span style=\"color: #ff0000;\">\"La tecla presionada fue: \"<\/span>);<br>  Serial.println (tecla);<br><span style=\"color: #800080;\">  if<\/span>(tecla == <span style=\"color: #ff0000;\">'1'<\/span>) <br>     digitalWrite(7,HIGH);<br><span style=\"color: #800080;\">  else<\/span> <br>     digitalWrite(7,LOW); <br>} <span style=\"color: #993300;\">\/\/ fin if<\/span><br>}<span style=\"color: #993300;\">\/\/ fin loop<\/span><br><br><\/pre>\n<p>A continuaci\u00f3n realiza lo siguiente:<\/p>\n<ol>\n<li>Da click en el bot\u00f3n Monitor en serie&nbsp; para activarlo.&nbsp;<\/li>\n<li>Inicia la simulaci\u00f3n.<\/li>\n<li>Inserta el n\u00famero 1 en la caja de texto y presiona el bot\u00f3n Env.<\/li>\n<li>\u00bfQu\u00e9 le sucedi\u00f3 al LED? \u00bfQu\u00e9 mensaje despliega el monitor?<\/li>\n<li>Ahora inserta cualquier valor.<\/li>\n<li>\u00bfQu\u00e9 paso con el LED? \u00bfCu\u00e1l es el mensaje ahora?<\/li>\n<li>Sigue probando el programa con el Monitor serial.<\/li>\n<li>Termina la prueba desactivando el bot\u00f3n Iniciar simulaci\u00f3n.<\/li>\n<\/ol>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2021\/02\/Autoecaluacio\u0301nArmandoCircuitos.gif\" alt=\"logo-autoevaluaci\u00f3n\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2><span style=\"color: #000080;\">Autoevaluaci\u00f3n<\/span><\/h2>\n<\/div>\n<\/div>\n\n\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-38\" class=\"h5p-iframe\" data-content-id=\"38\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Ejercicio 31 Monitor Serial Leer Tinkercad\"><\/iframe><\/div>\n<p><\/p>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2021\/01\/ledAprende.gif\" alt=\"para aprender m\u00e1s\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2><span style=\"color: #000080;\">Para aprender m\u00e1s<\/span><\/h2>\n<\/div>\n<\/div>\n\n\n<p>How to do Well. (s\/f ). <em>Monitor en serie Arduino en Tinkercad: 7 pasos<\/em>. <a href=\"https:\/\/es.howtodowell.com\/73749-Arduino-Serial-Monitor-in-Tinkercad-46\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/es.howtodowell.com\/73749-Arduino-Serial-Monitor-in-Tinkercad-46<\/a><\/p>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/iaciduino.enp.unam.mx\/index.php\/simulador-de-arduino-tinkercad\/monitor-serial\/\">&lt; Monitor serial:imprimir datos<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-right\"><a href=\"https:\/\/iaciduino.enp.unam.mx\/index.php\/simulador-de-arduino-tinkercad\/debug-de-arduino\/\">Herramientas de depuraci\u00f3n ><\/a><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>En la lecci\u00f3n anterior aprendimos a utilizar el&nbsp; monitor en serie&nbsp; para imprimir los valores de nuestras variables y mensajesde texto, ahora vamos aprender c\u00f3mo interactuar con un programa introduciendo datos desde el monitor serial.&nbsp; \u00bfC\u00f3mo introducir datos? Para introducir<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":22,"menu_order":7,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3326","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages\/3326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/comments?post=3326"}],"version-history":[{"count":38,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages\/3326\/revisions"}],"predecessor-version":[{"id":6675,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages\/3326\/revisions\/6675"}],"up":[{"embeddable":true,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages\/22"}],"wp:attachment":[{"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/media?parent=3326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}