{"id":6046,"date":"2019-01-09T04:40:33","date_gmt":"2019-01-09T04:40:33","guid":{"rendered":"http:\/\/betaweblog.education\/?p=6046"},"modified":"2022-02-25T20:02:56","modified_gmt":"2022-02-25T23:02:56","slug":"arduino-desde-cero-parte-2","status":"publish","type":"post","link":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/2019\/01\/09\/arduino-desde-cero-parte-2\/","title":{"rendered":"Arduino desde cero. Parte 2."},"content":{"rendered":"<p>En <a href=\"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/2019\/01\/09\/arduino-uno-desde-cero-y-sin-teoria\/\">la entrada anterior<\/a>, expliqu\u00e9 c\u00f3mo descargar el IDE de Arduino <em>(&#8220;Integrated Development Environment&#8221;, <\/em>es decir<em> &#8220;Entorno de Desarrollo Integrado&#8221;)<\/em>. Despu\u00e9s conectamos la placa Arduino y descargamos un ejemplo que hace titilar una luz led que est\u00e1 integrada a la placa.<\/p>\n<p>Ahora vamos a empezar a entender un poco del programa que descargamos. Vemos tres secciones:<\/p>\n<ul>\n<li>La primera parte, que se ve toda de color gris comienza con \/* y termina con *\/. Todo eso se llama &#8220;comentarios&#8221;, y es un texto en ingl\u00e9s que explica de qu\u00e9 se trata el programa. Lo podemos eliminar para aclarar el panorama.<\/li>\n<\/ul>\n<p style=\"padding-left: 30px;\">Todo lo que figure entre \/* y *\/ va a ser ignorado por Arduino, as\u00ed que podemos escribir algo all\u00ed que no va a influir en nada:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #999999;\">\/* Eliminamos los comentarios en ingl\u00e9s pero podemos escribir algo en castellano *\/<\/span><\/p>\n<p style=\"padding-left: 30px;\">Otra forma de escribir comentarios es comenzar con doble barra:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #999999;\">\/\/ Esto es un comentario, sirve para poner anotaciones para uno mismo<\/span><\/p>\n<ul>\n<li>Despu\u00e9s viene un segundo bloque que comienza con &#8220;void setup()&#8221;. Todo lo que figura entre llaves { } dentro de &#8220;void setup()&#8221;, son \u00f3rdenes que se van a ejecutar una sola vez al comienzo del programa. En este caso hay dos renglones. Un comentario en ingl\u00e9s, que lo eliminamos, y una orden que es &#8220;PinMode&#8221;. En un rato la analizamos.<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\">void setup() {<br \/>\n<strong>pinMode(LED_BUILTIN, OUTPUT);<\/strong><br \/>\n}<\/p>\n<ul>\n<li>Por \u00faltimo el bloque &#8220;void loop()&#8221;. Todo lo que viene entre llaves despu\u00e9s de &#8220;void loop()&#8221; se ejecutar\u00e1 en bucle, una y otra vez, hasta que desenchufemos el Arduino.<\/li>\n<\/ul>\n<p style=\"padding-left: 30px;\">void loop() {<br \/>\ndigitalWrite(<strong>LED_BUILTIN<\/strong>, HIGH);<br \/>\ndelay(1000);<br \/>\ndigitalWrite(<strong>LED_BUILTIN<\/strong>, LOW);<br \/>\ndelay(100);<br \/>\n}<\/p>\n<table border=\"0\" width=\"80%\" cellspacing=\"1\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td>digitalWrite(<strong>LED_BUILTIN<\/strong>, HIGH);<\/td>\n<td>Encender el led integrado a la placa (&#8220;led built-in&#8221;). La orden significa &#8220;escribir en un pin digital el valor 1&#8221;. Un pin digital puede valer 1 o 0. O lo que es lo mismo, &#8220;high&#8221; o &#8220;low&#8221; (&#8220;encendido&#8221; o &#8220;apagado&#8221;).<\/td>\n<\/tr>\n<tr>\n<td>delay(1000);<\/td>\n<td>Esperar un segundo (mil milisegundos)<\/td>\n<\/tr>\n<tr>\n<td>digitalWrite(<strong>LED_BUILTIN<\/strong>, LOW);<\/td>\n<td>Apagar el led &#8220;built-in&#8221;<\/td>\n<\/tr>\n<tr>\n<td>delay(1000);<\/td>\n<td>Esperar un segundo (mil milisegundos)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Entonces, vamos a hacer unos cambios al programa para entenderlo m\u00e1s.<\/p>\n<p>Donde dice:<\/p>\n<p style=\"text-align: center;\">delay(1000)<\/p>\n<p>Vamos a poner otros n\u00fameros:<\/p>\n<p style=\"text-align: center;\">delay(500)<\/p>\n<p style=\"text-align: center;\">delay(2000)<\/p>\n<p>Y cada vez que hacemos un cambio, probamos usar el bot\u00f3n &#8220;subir&#8221; para pasar ese programa a la placa. Recordemos que hay dos &#8220;delay&#8221;. El primero es el tiempo que espera el led estando encendido, y el segundo el tiempo que espera apagado.<\/p>\n<h1>Conectando un led<\/h1>\n<p>Ahora vamos a conectar un led, dejando de utilizar el &#8220;built-in&#8221;.<\/p>\n<p><strong>Antes de hacer cualquier conexi\u00f3n, desenchufamos la placa (siempre).<\/strong><\/p>\n<p>Cada led (&#8220;diodo emisor de luz&#8221;) tiene una pata m\u00e1s larga y una m\u00e1s corta. La pata m\u00e1s larga se llama &#8220;\u00e1nodo&#8221; y es la positiva. La pata corta &#8220;c\u00e1todo&#8221; y es la pata negativa.<\/p>\n<p>Como primer experimento, vamos a conectar el LED en el pin 13. Es decir, la pata larga del LED en el pin 13, y la pata corta en &#8220;tierra&#8221; (GND, &#8220;ground&#8221;).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6048\" src=\"\/betaweblog\/wp-content\/uploads\/2019\/01\/arduino-primeros-pasos-conectar-led-en-el-pin-13.jpg\" alt=\"Led conectado en el pin 13\" width=\"800\" height=\"450\" \/><strong>Aclaraci\u00f3n important\u00edsima:<\/strong> el pin 13 es el \u00fanico que tiene resistencia propia. En todos los dem\u00e1s pines no podemos conectar un led directamente porque se quema.<\/p>\n<p>Si volvemos a conectar la placa (que ya tiene cargado el programa anterior) vamos a ver que el led que conectamos en el pin 13 titila igual que el led integrado a la placa (built-in). Esto es porque el led built-in y el pin 13 est\u00e1n interconectados.<\/p>\n<h1>Utilizaci\u00f3n de un led en otro pin<\/h1>\n<p>Para conectar un led en cualquier otro pin digital (los que est\u00e1n numerados y no comienzan con A), por ejemplo el pin n\u00famero 8, deber\u00edamos agregar una resistencia. \u00bfPor qu\u00e9? Porque la resistencia impide que el LED reciba m\u00e1s electricidad de la que puede soportar. Se usa para que el componente no se queme.<\/p>\n<p>Por lo tanto, deber\u00edamos hacer algo como esto (los negros son cables):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6051\" src=\"\/betaweblog\/wp-content\/uploads\/2019\/01\/arduino-primeros-pasos-led-y-resistencia.jpg\" alt=\"Led y resistencia\" width=\"578\" height=\"366\" \/><\/p>\n<p>Pero claro, ser\u00eda muy inc\u00f3modo realizar estas soldaduras y que despu\u00e9s no funcione el circuito. Entonces, en lugar de soldar, utilizamos una placa de pruebas.<\/p>\n<h1>Entendiendo la protoboard<\/h1>\n<p>La protoboard es la placa de pruebas que viene generalmente acompa\u00f1ando a la placa Arduino. Se trata de una superficie con agujeritos donde podemos ver unos n\u00fameros, un signo + y un signo &#8211;<\/p>\n<p>\u00bfPara qu\u00e9 sirve? Para poder hacer circuitos de prueba, sin necesidad de soldar las conecciones.<\/p>\n<p>Para entender c\u00f3mo se usa, hay que saber que los agujeritos est\u00e1n conectados entre s\u00ed. Pero no todos con todos:<\/p>\n<ul>\n<li>Las dos filas que tienen el signo + y el signo &#8211; tienen todos sus agujeritos conectados entre s\u00ed.<\/li>\n<li>Las columnitas que est\u00e1n numeradas, tienen cinco agujeritos interconectados.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6052\" src=\"\/betaweblog\/wp-content\/uploads\/2019\/01\/arduino-primeros-pasos-protoboard.jpg\" alt=\"\" width=\"800\" height=\"507\" \/><\/p>\n<p>Entonces, para repetir el esquema anterior tenemos que conectar:<\/p>\n<ul>\n<li>La pata larga del LED en la misma columnita que el cable que se conecta al pin n\u00famero 8<\/li>\n<li>La pata corta del LED en la misma columnita que una pata de la resistencia<\/li>\n<li>La otra pata de la resistencia en la misma columnita que el cable que lleva a GND (cualquier GND, ya que todos son iguales).<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6053\" src=\"\/betaweblog\/wp-content\/uploads\/2019\/01\/arduino-primeros-pasos-led-protoboard-1.jpg\" alt=\"Conectar un led mediante la protoboard\" width=\"800\" height=\"450\" \/><\/p>\n<p>Es decir, no importa en qu\u00e9 columnita conectamos cada cosa, lo importante es que est\u00e9n en la misma columna las cosas que deben ir interconectadas. Aqu\u00ed lo muestro con l\u00edneas rojas:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-6054\" src=\"\/betaweblog\/wp-content\/uploads\/2019\/01\/arduino-primeros-pasos-led-protoboard-detalle-656x1024.jpg\" alt=\"Conexiones del led en la protoboard\" width=\"656\" height=\"1024\" \/><\/p>\n<h1>El programa<\/h1>\n<p>Hasta ahora ten\u00edamos un programa que encend\u00eda y apagaba el led conectado en el pin 13, y el led &#8220;built-in&#8221; a la vez. Ahora lo vamos a modificar para que encienda y apague el led conectado en el pin digital n\u00famero 8. Para eso, cada vez que dice &#8220;led_builtin&#8221;, lo cambiamos por el n\u00famero 8:<\/p>\n<p style=\"padding-left: 30px;\">void setup() {<br \/>\n<strong>\u00a0 \u00a0 pinMode(8, OUTPUT);<\/strong><br \/>\n}<\/p>\n<p style=\"padding-left: 30px;\">void loop() {<br \/>\ndigitalWrite(<strong>8<\/strong>, HIGH);<br \/>\ndelay(1000);<br \/>\ndigitalWrite(<strong>8<\/strong>, LOW);<br \/>\ndelay(100);<br \/>\n}<\/p>\n<p>Lo descargamos (con el bot\u00f3n &#8220;subir&#8221;) y&#8230; \u00a1Listo! El led conectado en el pin n\u00famero 8 est\u00e1 titilando.<\/p>\n<h1>PinMode<\/h1>\n<p>Algo que qued\u00f3 &#8220;para despu\u00e9s&#8221;, fue el comando &#8220;pinMode&#8221; que est\u00e1 en void setup():<\/p>\n<p>void setup() {<br \/>\n<strong>pinMode(8, OUTPUT);<\/strong><br \/>\n}<\/p>\n<p>Esa l\u00ednea de c\u00f3digo lo que le indica al Arduino es que determinado pin va a estar en modo salida (&#8220;output&#8221;). En este caso ser\u00eda el pin n\u00famero 8, va a salir informaci\u00f3n (encender o apagar el led).<\/p>\n<p>Si tuvi\u00e9semos un bot\u00f3n conectado en ese pin, le dir\u00edamos que ser\u00e1 un pin de entrada (&#8220;input&#8221;).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En la entrada anterior, expliqu\u00e9 c\u00f3mo descargar el IDE de Arduino (&#8220;Integrated Development Environment&#8221;, es decir &#8220;Entorno de Desarrollo Integrado&#8221;). Despu\u00e9s conectamos la placa Arduino y descargamos un ejemplo que hace titilar una luz led que est\u00e1 integrada a la placa. Ahora vamos a empezar a entender un poco del programa que descargamos. Vemos tres &hellip; <a href=\"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/2019\/01\/09\/arduino-desde-cero-parte-2\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> &#8220;Arduino desde cero. Parte 2.&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,3],"tags":[],"class_list":["post-6046","post","type-post","status-publish","format-standard","hentry","category-arduino","category-cultura-libre"],"_links":{"self":[{"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/posts\/6046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/comments?post=6046"}],"version-history":[{"count":1,"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/posts\/6046\/revisions"}],"predecessor-version":[{"id":6661,"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/posts\/6046\/revisions\/6661"}],"wp:attachment":[{"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/media?parent=6046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/categories?post=6046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/irisfernandez.com.ar\/betaweblog\/index.php\/wp-json\/wp\/v2\/tags?post=6046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}