
{"id":1961,"date":"2017-05-30T07:50:49","date_gmt":"2017-05-30T07:50:49","guid":{"rendered":"http:\/\/dyor.roboticafacil.es\/?p=1961"},"modified":"2018-04-26T12:48:17","modified_gmt":"2018-04-26T12:48:17","slug":"facilino-control","status":"publish","type":"post","link":"https:\/\/dyor.webs.upv.es\/en\/facilino-control\/","title":{"rendered":"Tutorial 2: Manejo de bucles en Facilino"},"content":{"rendered":"<p>Aprende a utilizar instrucciones de bucle en Facilino.<\/p>\n<p><!--more--><\/p>\n<p>En esta entrada se explica un sencillo ejemplo en el que el usuario introduce un valor a trav\u00e9s del Monitor de Facilino y Arduino realiza una operaci\u00f3n el n\u00famero de veces especificado (en este caso simplemente haremos parpadear el LED de Arduino).<\/p>\n<p>Empezamos mostrando al inicio del programa un mensaje de texto solicitando al usuario que introduzca un n\u00famero. En la categor\u00eda &#8216;Comunicaciones&#8217; utilizamos la instrucci\u00f3n &#8216;Imprimir por puerto serie con salto de l\u00ednea&#8217; y en la categor\u00eda &#8216;Texto&#8217; utilizamos una cadena de texto e introducimos la frase mostrada:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1966 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_1.png\" alt=\"\" width=\"714\" height=\"111\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_1.png 714w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_1-300x47.png 300w\" sizes=\"auto, (max-width: 714px) 100vw, 714px\" \/><\/p>\n<p>Ahora en la categor\u00eda &#8216;Variables&#8217; declaramos una nueva variable con la instrucci\u00f3n &#8216;Declarar variable&#8217; (es una variable local, es decir, que s\u00f3lo tiene validez localmente donde es declarada). En el nombre de la variable introducir\u00a0&#8216;repetir&#8217; e inicializar su valor a 0 (constante num\u00e9rica de la categor\u00eda &#8216;Matem\u00e1ticas&#8217;):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1967 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_2.png\" alt=\"\" width=\"705\" height=\"120\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_2.png 705w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_2-300x51.png 300w\" sizes=\"auto, (max-width: 705px) 100vw, 705px\" \/><\/p>\n<p>Ahora, queremos obtener un n\u00famero (a trav\u00e9s del puerto serie) que el usuario ha de introducir, por este motivo, debemos primero verificar si hay alg\u00fan dato disponible a trav\u00e9s del puerto serie:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1968 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_3.png\" alt=\"\" width=\"707\" height=\"183\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_3.png 707w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_3-300x78.png 300w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/p>\n<p>Dentro de &#8216;ejecutar&#8217; introduciremos todas las instrucciones que queramos una vez estamos seguros de que hay un dato disponible en el puerto serie. Desde el &#8216;Monitor&#8217; de Facilino podemos mandar car\u00e1cteres ASCII por el puerto serie, pero estos no son n\u00fameros! Si queremos interpretar un car\u00e1cter ASCII como un n\u00famero debemos utilizar la instrucci\u00f3n &#8216;Leer entero por el puerto serie&#8217;, que convertir\u00e1 el car\u00e1cter ASCII en un valor num\u00e9rico. Combinamos esa instrucci\u00f3n con la instrucci\u00f3n que asigna el valor de la variable &#8216;repetir&#8217; (dentro de la categor\u00eda &#8216;Variables&#8217;):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1969 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_4.png\" alt=\"\" width=\"714\" height=\"215\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_4.png 714w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_4-300x90.png 300w\" sizes=\"auto, (max-width: 714px) 100vw, 714px\" \/><\/p>\n<p>De esta manera, la variable &#8216;repetir&#8217; tomar\u00e1 el valor num\u00e9rico que ha introducido el usuario. Ahora ya estamos en disposici\u00f3n de realizar la operaci\u00f3n que queramos un n\u00famero de veces. La instrucci\u00f3n &#8216;Contar con &#8230; desde &#8230; hasta &#8230;&#8217; (en la categor\u00eda &#8216;Control&#8217;) parece en principio id\u00f3nea para este prop\u00f3sito. No obstante, esta instrucci\u00f3n requiere del uso de constantes, no variables, en los campos &#8216;desde&#8217; y &#8216;hasta&#8217;, porque necesita saber si tiene que hacer la operaci\u00f3n de contar incrementando o decrementando, seg\u00fan los valores introducidos. Dado que el n\u00famero de veces\u00a0que vamos a repetir la operaci\u00f3n\u00a0en este ejemplo es variable, utilizaremos la instrucci\u00f3n &#8216;mientras\/hasta&#8217; en la categor\u00eda &#8216;Control&#8217;:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1970 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_5.png\" alt=\"\" width=\"294\" height=\"184\" \/><\/p>\n<p>A partir de aqu\u00ed tenemos varias opciones de generar un bucle. En este ejemplo, la operaci\u00f3n que repetimos es mostrar por el puerto serie la frase &#8216;Me repito como el ajo&#8230;&#8217; (l\u00f3gicamente esto debe de reemplazarse por algo de mayor inter\u00e9s):<\/p>\n<ul>\n<li><strong>Repetimos<\/strong> <strong>mientras<\/strong> la variable <strong>&#8216;repetir&#8217; sea mayor que 0<\/strong>.\u00a0Dentro del bucle debemos decrementar el valor de la variable &#8216;repetir&#8217;.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1971 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_6.png\" alt=\"\" width=\"720\" height=\"318\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_6.png 720w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_6-300x133.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/p>\n<ul>\n<li><strong>Repetimos hasta que<\/strong>\u00a0la variable <strong>&#8216;repetir&#8217; sea igual a\u00a00<\/strong>.\u00a0Dentro del bucle debemos decrementar el valor de la variable &#8216;repetir&#8217;.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1972 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_7.png\" alt=\"\" width=\"730\" height=\"320\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_7.png 730w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_7-300x132.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/p>\n<ul>\n<li>Creamos una nueva variable, p.e.: &#8216;i&#8217;, que inicializamos a 1 y <strong>repetimos mientras<\/strong>\u00a0la variable <strong>&#8216;i&#8217; sea menor o igual que &#8216;repetir&#8217;<\/strong>. Dentro del bucle debemos incrementar el valor de la variable &#8216;i&#8217; que hemos utilizado para mantener la cuenta.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1973 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_8.png\" alt=\"\" width=\"728\" height=\"361\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_8.png 728w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_8-300x149.png 300w\" sizes=\"auto, (max-width: 728px) 100vw, 728px\" \/><\/p>\n<ul>\n<li>Creamos una nueva variable que inicializamos a 1 y <strong>repetimos hasta que<\/strong> la variable <strong>&#8216;i&#8217; sea mayor que &#8216;repetir&#8217;<\/strong>.\u00a0Dentro del bucle debemos incrementar el valor de la variable &#8216;i&#8217; que hemos utilizado para mantener la cuenta.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1974 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_9.png\" alt=\"\" width=\"715\" height=\"348\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_9.png 715w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_9-300x146.png 300w\" sizes=\"auto, (max-width: 715px) 100vw, 715px\" \/><\/p>\n<p>Cualquiera de las opciones es leg\u00edtima y en ocasiones, optar por una u otra, depende del <em>estilo<\/em> de programaci\u00f3n.\u00a0Para incrementar o decrementar el valor de una variable, debemos asignar el nuevo valor al valor que la variable ya tiene y sumar\/restar 1 (la operaci\u00f3n de suma\/resta est\u00e1 disponible en la categor\u00eda &#8216;Matem\u00e1ticas&#8217;).<\/p>\n<p>Optamos por la primera opci\u00f3n. Ahora eliminamos la frase que hemos mostrado para indicar el n\u00famero de repeticiones y lo reemplazamos por un pardadeo del LED (integrado en Arduino). Por cada iteraci\u00f3n, activamos el LED a estado &#8216;encendido&#8217; esperamos un tiempo y ponemos el LED a estado &#8216;apagado&#8217;, esperando otra vez el mismo tiempo. Para activar y desactivar el LED, se dispone de la instrucci\u00f3n &#8216;LED en placa&#8217; en la categor\u00eda &#8216;E\/S b\u00e1sica&#8217; y para realizar la espera disponemos de la instrucci\u00f3n &#8216;Esperar [ms]&#8217; en la categor\u00eda &#8216;Control&#8217;:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1975 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_10.png\" alt=\"\" width=\"721\" height=\"435\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_10.png 721w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_10-300x181.png 300w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/p>\n<p>Para finalizar con este ejemplo, simplemente vamos a duplicar la instrucci\u00f3n con el mensaje que se mostraba al inicio justo tras finalizar el bucle, ya que en ese momento estar\u00e1 de nuevo esperando a que el usuario introduzca un nuevo n\u00famero:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1976 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_11.png\" alt=\"\" width=\"789\" height=\"465\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_11.png 789w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_11-300x177.png 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/ejemplo2_11-768x453.png 768w\" sizes=\"auto, (max-width: 789px) 100vw, 789px\" \/><\/p>\n<p>Aqu\u00ed pod\u00e9is encontrar el c\u00f3digo Facilino de este ejemplo:<\/p>\n<p style=\"text-align: center;\"><div class=\"\"><a href=\"https:\/\/dyor.webs.upv.es\/facilino\/blockly\/code\/bucle_led.bly\" target=\"_self\" class=\"emd_dl_red_darker\" download>Facilino Bucle LED<\/a><\/div>    <style>            \r\n    .emd_dl_red_darker {\r\n        -moz-box-shadow:inset 0px 1px 0px 0px #f5978e;\r\n        -webkit-box-shadow:inset 0px 1px 0px 0px #f5978e;\r\n        box-shadow:inset 0px 1px 0px 0px #f5978e;\r\n        background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #f24537), color-stop(1, #c62d1f) );\r\n        background:-moz-linear-gradient( center top, #f24537 5%, #c62d1f 100% );\r\n        filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f24537', endColorstr='#c62d1f');\r\n        background-color:#f24537;\r\n        -webkit-border-top-left-radius:0px;\r\n        -moz-border-radius-topleft:0px;\r\n        border-top-left-radius:0px;\r\n        -webkit-border-top-right-radius:0px;\r\n        -moz-border-radius-topright:0px;\r\n        border-top-right-radius:0px;\r\n        -webkit-border-bottom-right-radius:0px;\r\n        -moz-border-radius-bottomright:0px;\r\n        border-bottom-right-radius:0px;\r\n        -webkit-border-bottom-left-radius:0px;\r\n        -moz-border-radius-bottomleft:0px;\r\n        border-bottom-left-radius:0px;\r\n        text-indent:0;\r\n        border:1px solid #d02718;\r\n        display:inline-block;\r\n        color:#ffffff !important;\r\n        font-family:Georgia;\r\n        font-size:15px;\r\n        font-weight:bold;\r\n        font-style:normal;\r\n        height:41px;\r\n        line-height:41px;\r\n        width:250px;\r\n        text-decoration:none;\r\n        text-align:center;\r\n        text-shadow:1px 1px 0px #810e05;\r\n    }\r\n    .emd_dl_red_darker:hover {\r\n        background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #c62d1f), color-stop(1, #f24537) );\r\n        background:-moz-linear-gradient( center top, #c62d1f 5%, #f24537 100% );\r\n        filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#c62d1f', endColorstr='#f24537');\r\n        background-color:#c62d1f;\r\n    }.emd_dl_red_darker:active {\r\n        position:relative;\r\n        top:1px;\r\n    }<\/style><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aprende a utilizar instrucciones de bucle en Facilino.<\/p>\n","protected":false},"author":1,"featured_media":1977,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[97],"tags":[],"class_list":["post-1961","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-facilino-tutorial"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/diode.png","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1930,"url":"https:\/\/dyor.webs.upv.es\/en\/facilino-suma-numeros\/","url_meta":{"origin":1961,"position":0},"title":"Tutorial 1: Adding up Two Numbers with Facilino","author":"soporte","date":"Monday May 29th, 2017","format":false,"excerpt":"Learn how to use functions with return, join strings, some basic math operation and show results through the Facilino's console. Example of summing up two numbers. In this post, we will explain how functions work in Facilino through a simple example. We will show, step by step how to use\u2026","rel":"","context":"In &quot;Facilino Tutorial&quot;","block_context":{"text":"Facilino Tutorial","link":"https:\/\/dyor.webs.upv.es\/en\/category\/programacion\/facilino\/facilino-tutorial\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/func_with_return_setup_loop2.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/func_with_return_setup_loop2.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/05\/func_with_return_setup_loop2.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2379,"url":"https:\/\/dyor.webs.upv.es\/en\/facilino-myblocks\/","url_meta":{"origin":1961,"position":1},"title":"Introduction to Facilino MyBlocks","author":"soporte","date":"Friday December 15th, 2017","format":false,"excerpt":"In this entry, we introduce the block creation tool of Facilino: Facilino MyBlocks. Facilino MyBlocks is a tool for creating your own blocks with Facilino. The aim of this tool is that is can be used for advanced users that want to implement a feature that is not implemented in\u2026","rel":"","context":"In &quot;Facilino Manual&quot;","block_context":{"text":"Facilino Manual","link":"https:\/\/dyor.webs.upv.es\/en\/category\/programacion\/facilino\/facilino-manual\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/12\/FacilinoMyBlocks.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/12\/FacilinoMyBlocks.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/12\/FacilinoMyBlocks.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/12\/FacilinoMyBlocks.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/12\/FacilinoMyBlocks.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2017\/12\/FacilinoMyBlocks.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":3925,"url":"https:\/\/dyor.webs.upv.es\/en\/instrucciones-para-el-control-de-flujo-en-facilino\/","url_meta":{"origin":1961,"position":2},"title":"Control flow instructions in Facilino","author":"soporte","date":"Tuesday June  5th, 2018","format":false,"excerpt":"In this post, we explain instructions related to the control flow of a program in Facilino. What is the control flow? In microcontrollers, the program flow, that how instructions are executed is usually sequential. This means that instructions are executed in order \"as they appear\". In Facilino, \"sequentially\" is achieved\u2026","rel":"","context":"In &quot;Facilino Tutorial&quot;","block_context":{"text":"Facilino Tutorial","link":"https:\/\/dyor.webs.upv.es\/en\/category\/programacion\/facilino\/facilino-tutorial\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2018\/06\/inicio_repetir.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":3885,"url":"https:\/\/dyor.webs.upv.es\/en\/logica-booleana-facilino\/","url_meta":{"origin":1961,"position":3},"title":"Boolean logic instructions in Facilino","author":"soporte","date":"Monday May 28th, 2018","format":false,"excerpt":"In this post, we explain the use of Boolean logic instructions in Facilino. What's boolean logic? Boolean logic is the set of relations between tow binary variables, that is, variables that can only take two possible values: true or false. Binary, a.k.a boolean, variables are very important within the context\u2026","rel":"","context":"In &quot;Facilino Tutorial&quot;","block_context":{"text":"Facilino Tutorial","link":"https:\/\/dyor.webs.upv.es\/en\/category\/programacion\/facilino\/facilino-tutorial\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2018\/05\/facilino_logic.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":3859,"url":"https:\/\/dyor.webs.upv.es\/en\/funciones-facilino\/","url_meta":{"origin":1961,"position":4},"title":"Functions and Procedures in Facilino","author":"soporte","date":"Thursday May 24th, 2018","format":false,"excerpt":"In this post, we explain the use of functions and procedures in Facilino. We can find the set of instructions related with functions and procedures within the \"Functions\" category in Facilino. Functions and procedures will allow us to stack a set of instructions that you will be able to call\u2026","rel":"","context":"In &quot;Facilino Tutorial&quot;","block_context":{"text":"Facilino Tutorial","link":"https:\/\/dyor.webs.upv.es\/en\/category\/programacion\/facilino\/facilino-tutorial\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2018\/05\/facilino_functions_input_type.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":3895,"url":"https:\/\/dyor.webs.upv.es\/en\/instrucciones-matriz-leds-facilino\/","url_meta":{"origin":1961,"position":5},"title":"Instructions for 8&#215;8 LEDs matrix in Facilino","author":"soporte","date":"Monday May 28th, 2018","format":false,"excerpt":"In this post, we explain the set of instructions available in Facilino to draw anything you want in 8x8 LEDs matrix. Available Instructions Facilino has a set of instructions to draw different patterns in an 8x8 LEDs matrix. All drawing instructions require the numbers of the CS, DIN and CLK\u2026","rel":"","context":"In &quot;Facilino Tutorial&quot;","block_context":{"text":"Facilino Tutorial","link":"https:\/\/dyor.webs.upv.es\/en\/category\/programacion\/facilino\/facilino-tutorial\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2018\/05\/led_matrix_orientation_bb.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2018\/05\/led_matrix_orientation_bb.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2018\/05\/led_matrix_orientation_bb.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2018\/05\/led_matrix_orientation_bb.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/posts\/1961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/comments?post=1961"}],"version-history":[{"count":0,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/posts\/1961\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/media\/1977"}],"wp:attachment":[{"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/media?parent=1961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/categories?post=1961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/tags?post=1961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}