{"id":724,"date":"2020-05-11T20:05:34","date_gmt":"2020-05-11T18:05:34","guid":{"rendered":"https:\/\/www.pinguytaz.net\/?p=724"},"modified":"2020-05-12T12:56:29","modified_gmt":"2020-05-12T10:56:29","slug":"medidor-de-resistencias-en-arduino","status":"publish","type":"post","link":"https:\/\/www.pinguytaz.net\/index.php\/2020\/05\/11\/medidor-de-resistencias-en-arduino\/","title":{"rendered":"Medidor de resistencias en Arduino"},"content":{"rendered":"\n<p>Vamos a describir un montaje en Arduino de un medidor de resistencias, en el podremos aprender:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Divisor de Tensi\u00f3n o Voltaje.<\/li><li>Uso de las entradas anal\u00f3gicas de arduino.<\/li><li>Pull-Down para las gesti\u00f3n de un pulsador.<\/li><li>Uso del Display<\/li><li>Uso de variables est\u00e1ticas encapsuladas para evitar errores de programaci\u00f3n<\/li><\/ul>\n\n\n\n<p> Para poder calcular el valor de una resistencia utilizaremos un circuito divisor de tensi\u00f3n como se ve en la figura<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/05\/image.png\" alt=\"\" class=\"wp-image-727\" width=\"389\" height=\"161\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/05\/image.png 649w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/05\/image-300x124.png 300w\" sizes=\"auto, (max-width: 389px) 100vw, 389px\" \/><figcaption>Divisor de tensi\u00f3n<\/figcaption><\/figure><\/div>\n\n\n\n<p>En el podemos ver la resistencia <strong>R1<\/strong>, que es la que deberemos calcular y en nuestro circuito lo conectaremos a la salida digital <strong>D2<\/strong>(Vin que dar\u00e1 5V) y la entrada <strong>analogica A0<\/strong> (Vout) luego tendremos <strong>R2<\/strong> que es una resistencia que podra variar segun la resistencia que pongamos.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/05\/image-1.png\" alt=\"\" class=\"wp-image-728\" width=\"302\" height=\"322\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/05\/image-1.png 882w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/05\/image-1-282x300.png 282w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/05\/image-1-768x818.png 768w\" sizes=\"auto, (max-width: 302px) 100vw, 302px\" \/><figcaption>Circuito<\/figcaption><\/figure><\/div>\n\n\n\n<p>La resistencia de escala sera una resistencia que se conecta en la masa y Vout. para poder seleccionar la resistencia desde nuestro circuito pondremos estas resistencias (2K, 20K, 200K y 1M) en las <em>Entradas\/Salidas<\/em> digitales (<strong>D3-D6<\/strong>) como podemos ver en el circuito.<\/p>\n\n\n\n<p>La selecci\u00f3n de la resistencia se realiza con el pulsador conectado a <strong>D12<\/strong>, poniendo todas las entradas\/salidas digitales de las resistencias (D3-D6) como entradas y solo a modo salida la que nos interese tener y esta a <em>LOW<\/em> que seria su conexi\u00f3n a masa.<\/p>\n\n\n\n<p>Quedando el c\u00f3digo de esta selecci\u00f3n de la siguiente forma:<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<pre class=\"wp-block-code has-vivid-green-cyan-background-color\"><code>\/\/ Se puede ver en la funci\u00f3n escala(del c\u00f3digo \n\/\/ Primero todas las resistencias como entrada \npinMode(R2K,INPUT); \npinMode(R20K,INPUT); \npinMode(R200K,INPUT); \npinMode(R1M,INPUT); \n\nint laescala=  &lt;PIN con la resistencia de escala a usar>\n\npinMode(laescala,OUTPUT);  \/\/ activa el pin de escala seleccionada  a salida \ndigitalWrite(laescala,LOW); \/\/ Ponemos Bajo que es Masa.<\/code><\/pre>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<p>Para gestionar el pulsador del cambio de estado utilizaremos el siguiente texto:<\/p>\n\n\n\n<pre class=\"wp-block-code has-vivid-green-cyan-background-color\"><code> boolean estado = digitalRead(ESCALA);   \/\/ Recoge el estado del pulsador\n if(estado)   \n  {\n    while (digitalRead(ESCALA)) {;}  \/\/ Si se ha pulsado esperamos a que se levante, para\n                                     \/\/ evitar que este cambiando cada vez.\n    escala();   \/\/ Cambia de escala\n  }<\/code><\/pre>\n\n\n\n<p>La lectura del pin anal\u00f3gico es muy sencillo, solo tendremos que leerlo, convertir el valor le\u00eddo a voltaje y con este realizar la formula indicada en el divisor de tensi\u00f3n para as\u00ed calcular la resistencia <strong>R1<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code has-vivid-green-cyan-background-color\"><code>\/\/ Mira valor de resistencia\n  medida = analogRead(BORNA2);  \/\/ Leemos valor de la entrada A0\n  \n  \/\/ Conversion a voltaje\n  voltaje = (medida * 5.0) \/ 1024.0;\n  \n  \/\/Realizamos la formula del divisor de tensi\u00f3n ((vi\/vol)-1)*Esca\n  laescala= R_escala();  \/\/ Nos da la resistencia de escala en Kohmios\n  valor = ((5.0\/voltaje)-1) * laescala;\n\n  \/\/ Si la escala fuera 2K deberemos convertir el valor a ohmios multiplicando por 1000\nimpres_res(valor);  \/\/ Imprime en el display el valor, viendo si debe marcar o no error seg\u00fan la escala.   <\/code><\/pre>\n\n\n\n<p>Otras funciones que interesa conocer son:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>escala(): Realiza un cambio de escala y se apoya en dos funciones<\/li><li>set_escala(true): Realiza un cambio en la variable est\u00e1tica \u00ab<em>escala<\/em>\u00bb que solo  puede ser cambiada en esa funci\u00f3n (encapsulaci\u00f3n) por eso si se llama con false solo env\u00eda el valor sin realizar ning\u00fan cambio. EN una programaci\u00f3n de clases tendr\u00edamos la variable est\u00e1tica en la clase y dos funciones, una para cambiar el valor set_variable y otra para obtener el valor get_variable.<\/li><li>get_escala() llama a set_escala(false) para que le de la escala en la que esta.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/05\/image-2-1024x691.png\" alt=\"\" class=\"wp-image-733\" width=\"503\" height=\"337\"\/><\/figure><\/div>\n\n\n\n<p>Todos los fuentes, junto al esquema y el proyecto fritzing lo pod\u00e9is encontrar en el repositorio de <a href=\"https:\/\/github.com\/pinguytaz\/Arduino\/tree\/master\/TesterResistencia\">GITHUB de pinguytaz<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Realizando un tester de resistencias en Arduino\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/p8DY7VmpXs8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Vamos a describir un montaje en Arduino de un medidor de resistencias, en el podremos aprender: Divisor de Tensi\u00f3n o Voltaje. Uso de las entradas anal\u00f3gicas de arduino. Pull-Down para las gesti\u00f3n de un pulsador. Uso del Display Uso de variables est\u00e1ticas encapsuladas para evitar errores de programaci\u00f3n Para poder calcular el valor de una [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":726,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[3],"tags":[],"class_list":["post-724","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino"],"_links":{"self":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/comments?post=724"}],"version-history":[{"count":8,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/724\/revisions"}],"predecessor-version":[{"id":742,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/724\/revisions\/742"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media\/726"}],"wp:attachment":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media?parent=724"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/categories?post=724"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/tags?post=724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}