{"id":550,"date":"2019-11-14T12:38:46","date_gmt":"2019-11-14T11:38:46","guid":{"rendered":"https:\/\/www.pinguytaz.net\/?p=550"},"modified":"2019-11-21T12:56:34","modified_gmt":"2019-11-21T11:56:34","slug":"termometro-arduino-e-s-digital-1-5","status":"publish","type":"post","link":"https:\/\/www.pinguytaz.net\/index.php\/2019\/11\/14\/termometro-arduino-e-s-digital-1-5\/","title":{"rendered":"Term\u00f3metro Arduino (E\/S Digital) 1\/4"},"content":{"rendered":"\n<p>Nos alejamos un poco de los \u00faltimos temas de seguridad y volvemos a <a href=\"https:\/\/www.arduino.cc\/\">Arduino<\/a> con un proyecto bastante completo para aprender diversas cosas, un termometro con historico y calibrable, por eso tendr\u00e1 varias fases explicando el uso de cada una de las tipos de entradas de Arduino y funciones de los componente.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Descripci\u00f3n<\/h4>\n\n\n\n<p>El proyecto a desarrollar es un sensor de temperatura, que se visualizara en un display, dispondr\u00e1 de un sistema de ajuste para corregir la temperatura le\u00edda y ademas podr\u00e1 verse un hist\u00f3rico de las temperaturas.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Por defecto tendremos la visualizaci\u00f3n de la temperatura (Led Verde encendido).<\/li><li>Al pulsar el boton1 accederemos al modo calibraci\u00f3n(Led Naranja)  de la temperatura con el potenciometro1 y tiempo de lecturas con el potenciometro2 y saldremos volviendo a pulsar el boton1.<\/li><li>El boton2 nos da acceso al hist\u00f3rico(Led Azul)  pulsandolo otra vez a modo por defecto.<\/li><\/ol>\n\n\n\n<p>Este proyecto nos permitir\u00e1 ver:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><a href=\"https:\/\/www.pinguytaz.net\/index.php\/2019\/11\/14\/termometro-arduino-e-s-digital-1-5\/\">E\/S Digitales para los LEDs y los botones. (1\/4)<\/a><\/li><li><a href=\"https:\/\/www.pinguytaz.net\/index.php\/2019\/11\/17\/termometro-arduino-entrada-analogicas-2-5\/\">Entradas anal\u00f3gica para los potenciometros y como no el sensor de temperatura \u00abTMP36\u00bb (2\/4)<\/a><\/li><li><a href=\"https:\/\/www.pinguytaz.net\/index.php\/2019\/11\/21\/termometro-arduino-display-3-4\/\">Display (3\/4)<\/a><\/li><li>Proyecto Termometro en Arduino. (4\/4)<\/li><\/ol>\n\n\n\n<p>Sin perder m\u00e1s tiempo empezamos con esta primera entrega de las E\/S Digitales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">E\/S Digitales<\/h2>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video height=\"360\" style=\"aspect-ratio: 640 \/ 360;\" width=\"640\" controls src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/video_2019-11-14_12-03-27.mp4\"><\/video><figcaption>Resultado tutorial E\/S Digitales<\/figcaption><\/figure>\n\n\n\n<p>Las entradas \/ salidas que solo permiten los valores ALTO(HIGH 5 o 3,3V con una corriente de 20mA) y BAJO(LOW 0 Voltios)  por regla general operan a 5V y 40mA m\u00e1ximo pero siempre intentaremos calcular 20mA. En el arduino UNO tenemos 14 E\/S Digitales de las cuales 6 pueden usarse como PWM (D3, D5, D5, D9, D10, D11). Evitaremos usar D0-1 ya que se conectan en la comunicaci\u00f3n de USB. <\/p>\n\n\n\n<p>Antes de usarlos pines deberemos definir si son de entrada o salida con la instrucci\u00f3n <em><strong>pinMode(PIN,OUTPUT|INPUT)<\/strong><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pinMode(13,OUTPUT);  \/\/ Pone el PIN13 digital como salida.\nPinMode(5,INPUT); \/\/ Pone el PIN5 digital como entrada.<\/code><\/pre>\n\n\n\n<p>Para las salidas digitales se utiliza la funci\u00f3n <strong><em>digitalWrite(PIN,LOW|HIGH)<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>digitalWrite(13 , HIGH); \/\/ Pone a ALTO el PIN13 (5V o 3,3V seg\u00fan modelo)\ndigitalWrite(13 , LOW);  \/\/ Pone a BAJO el PIN13 (0V)<\/code><\/pre>\n\n\n\n<p>Y para leerlas usaremos <strong><em>digitalRead(PIN)<\/em><\/strong> que nos dara si esta en ALTO o BAJO el pin.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">LEDs<\/h4>\n\n\n\n<p>Los LEDs se conectaran a salidas digitales \u00abpinMode a  OUTPUT\u00bb se encender\u00e1n o no seg\u00fan este en  ALTO o BAJO \u00abdigitalWrite. <\/p>\n\n\n\n<p>No podemos conectar directamente el LED al  pin ya que lo romper\u00edamos al suministrarle una tensi\u00f3n superior a la soportada, por lo que pondremos una resistencia.<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-regular\"><table class=\"\"><tbody><tr><td><strong><em>Color<\/em><\/strong><\/td><td><strong><em>R. Tensi\u00f3n<\/em><\/strong><\/td><td><strong><em>Corriente<\/em><\/strong><\/td><\/tr><tr><td>Rojo<\/td><td>1,8 V<\/td><td>20 mA<\/td><\/tr><tr><td>Naranja<\/td><td>2,1 V<\/td><td> 20 mA<\/td><\/tr><tr><td>Amarillo<\/td><td>2,2 V <\/td><td>20 mA<\/td><\/tr><tr><td>Verde<\/td><td> 3,2 V<\/td><td>20 mA<\/td><\/tr><tr><td>Azul<\/td><td>3,5 V<\/td><td>20 mA<\/td><\/tr><tr><td>Blanco<\/td><td>3,8 V<\/td><td>20 mA<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>El calculo de la resistencia por lo tanto es sencillo, sabiendo que arduino nos dar\u00e1 5V \u00ab<strong>R=V\/I<\/strong>\u00bb deberemos de calcular el voltaje a restar para llegar a la especificaci\u00f3n del LED.<\/p>\n\n\n\n<p>As\u00ed para un LED de 2,2V tendriamos una diferencia de (5-1,8=3,2V) y el calculo de la resistencia sera 3,2V\/0,02A=160 Ohm.  Hemos pasado los 20mA a A (20\/1000)<\/p>\n\n\n\n<p>Si tenemos varios LEDs en el mismo PIN y sabiendo que cada uno consumir\u00e1 su parte la formula <strong>R=(V-(vL1+ &#8230; + vLn))\/I<\/strong><\/p>\n\n\n\n<p>La resistencia que se utilizara es un valor normalizado inmediatamente superior por eso con el LED rojo solemos poner 220 Ohm.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-1024x768.png\" alt=\"\" class=\"wp-image-566\" width=\"339\" height=\"254\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-1024x768.png 1024w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-300x225.png 300w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-768x576.png 768w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image.png 1280w\" sizes=\"auto, (max-width: 339px) 100vw, 339px\" \/><\/figure><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Botones<\/h4>\n\n\n\n<p>Los botones se conectan a un PIN digital de entrada \u00abpinMode a INPUT\u00bb y se leer\u00e1 el estado con \u00abdigitalRead\u00bb.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-5-1024x576.png\" alt=\"\" class=\"wp-image-581\" width=\"405\" height=\"227\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-5-1024x576.png 1024w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-5-300x169.png 300w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-5-768x432.png 768w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-5.png 1280w\" sizes=\"auto, (max-width: 405px) 100vw, 405px\" \/><\/figure><\/div>\n\n\n\n<p>Debemos tener en cuenta que una entrada abierta sin m\u00e1s nos puede dar valores aleatorios al estar en alta impedancia, para evitar esto utilizaremos una resistencia de 10K al positivo \u201cpullup\u201d o una resistencia a masa \u201cpulldown\u201d.<\/p>\n\n\n\n<p>Se puede conectar directamente pero en este caso deberemos configurar el pin a \u201cINPUT_PULLUP\u201d para usar la resistencia interna. Normalmente pondremos nosotros la resistencia.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo<\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-3-1024x768.png\" alt=\"\" class=\"wp-image-575\" width=\"390\" height=\"292\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-3-1024x768.png 1024w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-3-300x225.png 300w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-3-768x576.png 768w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-3.png 1280w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" \/><\/figure><\/div>\n\n\n\n<p>LED-Rojo Encendido al arrancar, dos botones de forma que indicaran que LEDS encender:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Boton 1:  LED Verde<\/li><li>Boton 2: LED Naranja<\/li><li>Boton1 y Boton2: LED Azul.<\/li><\/ul>\n\n\n\n<p>Calculamos las resistencias para los LEDs (160, 90, 145 y 75 Ohm.) por lo que necesitaremos dos resistencias  de 220 Ohm. para el rojo y Naranja y dos de 100 Ohm para Verde y Azul.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-6-1024x576.png\" alt=\"\" class=\"wp-image-583\" width=\"476\" height=\"267\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-6-1024x576.png 1024w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-6-300x169.png 300w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-6-768x432.png 768w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-6.png 1280w\" sizes=\"auto, (max-width: 476px) 100vw, 476px\" \/><\/figure><\/div>\n\n\n\n<p>El c\u00f3digo es el siguiente y se encuentra autocomentado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Definimos los nombres simbolicos de los pines\n\/\/ Salidas digitales\n#define LED_Rojo    2\n#define LED_Verde   3\n#define LED_Naranja 4\n#define LED_Azul    5\n\n\/\/ Entradas digitales\n#define Boton_1     8\n#define Boton_2     9\n\n\n\/\/ Inicializaci\u00f3n de pines y confirmaci\u00f3n de LEDs.\nvoid setup() \n{\n  int leds[4] ={LED_Rojo, LED_Verde, LED_Naranja, LED_Azul};\n  \n  \/\/ Definimos los modos de los pines.\n  pinMode(LED_Rojo, OUTPUT);\n  pinMode(LED_Verde, OUTPUT);\n  pinMode(LED_Naranja, OUTPUT);\n  pinMode(LED_Azul, OUTPUT);\n  pinMode(Boton_1, INPUT);\n  pinMode(Boton_2, INPUT);\n\n  \/\/ Encendemos y apagamos todos para confirmar funcionamiento\n  digitalWrite(LED_Rojo,HIGH);\n  digitalWrite(LED_Verde,HIGH);\n  digitalWrite(LED_Naranja,HIGH);\n  digitalWrite(LED_Azul,HIGH);\n  delay(500);\n  digitalWrite(LED_Rojo,LOW);\n  digitalWrite(LED_Verde,LOW);\n  digitalWrite(LED_Naranja,LOW);\n  digitalWrite(LED_Azul,LOW);\n  for (int i = 0;i&lt;4; i = i +1)\n  {\n    digitalWrite(leds[i],HIGH);\n    delay(500);\n    digitalWrite(leds[i],LOW);\n    delay(250);\n  }\n  digitalWrite(LED_Rojo,HIGH);\n  \n}\n\n\/\/ Bucle infinito, que comprueba botones y enciende LEDs\nvoid loop() \n{\n  int valor=0;  \/\/ Por defecto todos apagado\n\n  if (digitalRead(Boton_1)) valor = valor + 1;\n  if (digitalRead(Boton_2)) valor = valor + 2;\n\n  \/\/ Encendemos los leds (B1=Verde, B2=Naranga y B1B2=Azul)\n  \/\/ Se utiliza una codificaci\u00f3n binaria (1,2,3 y 0 ninguno)\n  switch(valor)\n  {\n    case 0:\n       digitalWrite(LED_Verde,LOW);\n       digitalWrite(LED_Naranja,LOW);\n       digitalWrite(LED_Azul,LOW);\n       break;\n    case 1:\n       digitalWrite(LED_Verde,HIGH);\n       digitalWrite(LED_Naranja,LOW);\n       digitalWrite(LED_Azul,LOW);\n       break;\n    case 2:\n       digitalWrite(LED_Verde,LOW);\n       digitalWrite(LED_Naranja,HIGH);\n       digitalWrite(LED_Azul,LOW);\n       break;\n    case 3:\n       digitalWrite(LED_Verde,LOW);\n       digitalWrite(LED_Naranja,LOW);\n       digitalWrite(LED_Azul,HIGH);\n       break;\n  }\n}<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-7.png\" alt=\"\" class=\"wp-image-585\" width=\"282\" height=\"317\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-7.png 466w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/11\/image-7-267x300.png 267w\" sizes=\"auto, (max-width: 282px) 100vw, 282px\" \/><\/figure><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Nos alejamos un poco de los \u00faltimos temas de seguridad y volvemos a Arduino con un proyecto bastante completo para aprender diversas cosas, un termometro con historico y calibrable, por eso tendr\u00e1 varias fases explicando el uso de cada una de las tipos de entradas de Arduino y funciones de los componente. Descripci\u00f3n El proyecto [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":592,"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":[120,122,121],"class_list":["post-550","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","tag-leds","tag-pulldown","tag-pullup"],"_links":{"self":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/550","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=550"}],"version-history":[{"count":30,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/550\/revisions"}],"predecessor-version":[{"id":639,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/550\/revisions\/639"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media\/592"}],"wp:attachment":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media?parent=550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/categories?post=550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/tags?post=550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}