{"id":1004,"date":"2024-07-03T09:22:00","date_gmt":"2024-07-03T07:22:00","guid":{"rendered":"https:\/\/www.pinguytaz.net\/?p=1004"},"modified":"2024-07-06T22:48:58","modified_gmt":"2024-07-06T20:48:58","slug":"rust-embebido-arduino-entradas-analogicas-parte-3","status":"publish","type":"post","link":"https:\/\/www.pinguytaz.net\/index.php\/2024\/07\/03\/rust-embebido-arduino-entradas-analogicas-parte-3\/","title":{"rendered":"Rust-Embebido \u00abArduino\u00bb Entradas anal\u00f3gicas parte 3"},"content":{"rendered":"\n<p>Despu\u00e9s de los dos POS anteriores de nuestra programaci\u00f3n con Rust-Embebido:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.pinguytaz.net\/index.php\/2024\/06\/09\/rust-embebido-arduino-introduccion-parte-1\/\" data-type=\"post\" data-id=\"994\">Introducci\u00f3n parte 1<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.pinguytaz.net\/index.php\/2024\/06\/29\/rust-embebido-arduino-e-s-digitales-parte-2\/\" data-type=\"post\" data-id=\"1000\">E\/S Digitales parte 2<\/a><\/li>\n<\/ul>\n\n\n\n<p>Continuamos con la tercera entrega en la que explicaremos como utilizar las entradas anal\u00f3gicas de nuestro Arduino con Rust, lo primero es conocer los pines ADC de nuestro arduino, que ocupan 5 puertos C en este caso y que como pasaba con las E\/S digitales tambi\u00e9n tiene interrupciones  y dos de ellos se utilizan para otras funciones por eso ponemos tambi\u00e9n una tabla.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"413\" height=\"202\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2024\/06\/image-1.png\" alt=\"\" class=\"wp-image-1051\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2024\/06\/image-1.png 413w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2024\/06\/image-1-300x147.png 300w\" sizes=\"auto, (max-width: 413px) 100vw, 413px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image alignleft size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"759\" height=\"845\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2024\/06\/image-2.png\" alt=\"\" class=\"wp-image-1052\" style=\"width:287px;height:auto\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2024\/06\/image-2.png 759w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2024\/06\/image-2-269x300.png 269w\" sizes=\"auto, (max-width: 759px) 100vw, 759px\" \/><\/figure>\n\n\n\n<p>El <a href=\"https:\/\/github.com\/pinguytaz\/Arduino-ESP32\/blob\/master\/CuadernoTecnico\/RustArduino\/src\/bin\/analogicos.rs\" target=\"_blank\" rel=\"noreferrer noopener\">c\u00f3digo de ejemplo<\/a> se encuentra como siempre en github, es un montaje muy sencillo aunque ponemos el esquema y consta de un potenciometro conectado a la entrada anal\u00f3gica 0 y por la consola veremos el valor le\u00eddo.<\/p>\n\n\n\n<p>Lo normal no es conectar el potenciometro o el sensor que corresponda directamente sino utilizar un divisor de tensi\u00f3n como se explica en el libro \u00ab<strong><a href=\"https:\/\/amzn.eu\/d\/32OJJdF\" target=\"_blank\" rel=\"noreferrer noopener\">De 0 a 100 con Arduino y ESP32<\/a><\/strong>\u00bb que nos permitira controlar el voltaje m\u00e1ximo y m\u00ednimo que se inyecta en la entrada anal\u00f3gica, en nuestro caso esta claro que va de 0 a +5V.<\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"210\" height=\"273\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2024\/06\/image-3.png\" alt=\"\" class=\"wp-image-1053\"\/><\/figure>\n\n\n\n<p>Un resumen r\u00e1pido para calcular divisores de tensi\u00f3n, aunque en este ejemplo no lo utilizamos, que lo sacamos del libro seria un montaje como el de la figura y las formulas que aplicar\u00edamos para calcular la intensidad y el voltaje de salida deseado.<\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"140\" height=\"94\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2024\/06\/image-4.png\" alt=\"\" class=\"wp-image-1054\"\/><\/figure>\n\n\n\n<p><strong>R2<\/strong> sera nuestro sensor (el <em>potenciometro<\/em> en nuestro caso) ya que es el voltaje de salida y que se conecta al pin del <em>Arduino<\/em> sera la parte que vari\u00e9, <strong>R1<\/strong> es la resistencia que pondremos  fija y donde conectamos un voltaje de entrada fijo. <strong>NOTA<\/strong> nuestro sensor tambi\u00e9n se podr\u00eda en el voltaje de entrada en lugar de la masa (<strong>R1<\/strong>) y que <strong>R2<\/strong> sea nuestra resistencia fija.<\/p>\n\n\n\n<p>Continuando con nuestro POST diremos que en este caso solo tenemos una funci\u00f3n de lectura, como veremos a continuaci\u00f3n en la explicaci\u00f3n del c\u00f3digo, que nos dara valores entre 0 y 1023 que representaran el voltaje entre 0V y +5V.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Obtenemos los pines disponibles en nuestro arduino, igual que los obten\u00edamos en las E\/S digitales\nlet dp = arduino_hal::Peripherals::take().unwrap();\nlet pins = arduino_hal::pins!(dp);\n\n\/\/ Definici\u00f3n de los pines de entradas an\u00e1logicas\nlet mut adc = arduino_hal::Adc::new(dp.ADC, Default::default());   \/\/ Obtenemos analogicos\nlet entrada = pins.a0.into_analog_input(&amp;mut adc);      \/\/ Definimos entrada como el pin A0 de entrada an\u00e1logica.\n\nlet valor = entrada.analog_read(&amp;mut adc);    \/\/ Leemos el valor de la entrada definida anteriormente.<\/code><\/pre>\n\n\n\n<p>Y con esto terminamos este POST, ya nos quedan menos para esta peque\u00f1a serie de introducci\u00f3n a la programaci\u00f3n de <em>Arduino<\/em> con el lenguaje <em>Rust<\/em>.<\/p>\n\n\n\n<p>Siguientes temas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uso de los pines PWM<\/li>\n\n\n\n<li>Uso de interrupciones externas.<\/li>\n\n\n\n<li>Timer usando servomotores<\/li>\n\n\n\n<li>Timer para uso del sonar HC-SR04<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Despu\u00e9s de los dos POS anteriores de nuestra programaci\u00f3n con Rust-Embebido: Continuamos con la tercera entrega en la que explicaremos como utilizar las entradas anal\u00f3gicas de nuestro Arduino con Rust, lo primero es conocer los pines ADC de nuestro arduino, que ocupan 5 puertos C en este caso y que como pasaba con las E\/S [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":996,"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,186],"tags":[23,187],"class_list":["post-1004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-rust","tag-arduino","tag-rust"],"_links":{"self":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/1004","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=1004"}],"version-history":[{"count":5,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/1004\/revisions"}],"predecessor-version":[{"id":1084,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/1004\/revisions\/1084"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media\/996"}],"wp:attachment":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media?parent=1004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/categories?post=1004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/tags?post=1004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}