 
{"id":442,"date":"2020-12-04T15:23:18","date_gmt":"2020-12-04T15:23:18","guid":{"rendered":"http:\/\/papime101620.computounam.mx\/?page_id=442"},"modified":"2023-05-04T23:54:17","modified_gmt":"2023-05-04T23:54:17","slug":"arreglos-bidimensionales","status":"publish","type":"page","link":"https:\/\/iaciduino.enp.unam.mx\/index.php\/manual-de-programacion-con-arduino\/arreglos-bidimensionales\/","title":{"rendered":"Arreglos bidimensionales"},"content":{"rendered":"\n<p>En esta lecci\u00f3n aprender\u00e1s a utilizar arreglos bidimensionales para almacenar y manipular datos del mismo tipo en la resoluci\u00f3n de problemas.<\/p>\n\n\n\n<p><\/p>\n\n\n<p>Cuando para solucionar un problema es necesario el registro de datos en tablas, \u00e9stas se pueden representar dentro de un programa con arreglos bidimensionales.<\/p>\n<h2><span style=\"color: #000080;\">\u00bfQu\u00e9 es un arreglo bidimensional?<\/span><\/h2>\n<blockquote>\n<p>Es una colecci\u00f3n ordenada de elementos colocados en filas y columnas. Los&nbsp; elementos almacenados son referenciados utilizando dos \u00edndices: el \u00edndice de la fila y el \u00edndice de la columna.&nbsp;<\/p>\n<\/blockquote>\n<p>Los arreglos bidimensionales son conocidos como matrices. En la vida cotidiana los conocemos como tablas compuestas por renglones o filas y columnas. En la Figura 1 puedes observar la una representaci\u00f3n gr\u00e1fica de un arreglo bidimensional.<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/Matriz.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Figura1. Representaci\u00f3n de un arreglo bidimensional<\/figcaption><\/figure><\/div>\n\n<p>Un arreglo bidimensional se compone de los siguientes elementos:<\/p>\n<ul>\n<li><strong>Nombre del arreglo o matriz.&nbsp; <\/strong>Es el nombre que se le asigna al arreglo bidimensional, como el nombre de una variable.<\/li>\n<li><strong>Elementos.<\/strong> Cada uno de las datos almacenados que componen el arreglo bidimensional.<\/li>\n<li><strong>Celda. <\/strong>Cada uno de los espacios de almacenamiento<strong>.<\/strong><\/li>\n<li><strong>\u00edndice filas. <\/strong>El n\u00famero de cada celda que forma la fila del arreglo. Comienza con el n\u00famero 0.<\/li>\n<li><strong>\u00cdndice columnas. <\/strong>El n\u00famero de cada celda que forma una columna del arreglo. Comienza con el n\u00famero 0.<\/li>\n<\/ul>\n<p>En un arreglo bidimensional, cada elemento&nbsp; tiene una posici\u00f3n que se identifica mediante dos \u00edndices: el de su fila y el de su columna.<\/p>\n<h2><span style=\"color: #000080;\">Declaraci\u00f3n de arreglos bidimensionales<\/span><\/h2>\n<p>En Arduino la declaraci\u00f3n de un arreglo bidimensional se realiza indicando entre corchetes [ ] las dimensiones de las filas y de las columnas de la siguiente manera:<\/p>\n<h3><span style=\"color: #0000ff;\">Sintaxis<\/span><\/h3>\n\n\n<p class=\"has-white-color has-text-color has-background\" style=\"background-color:#002b7a\">tipoDato nombreArreglo [n\u00fameroFilas] [n\u00fameroColumnas];<\/p>\n\n\n<p>Ejemplo<\/p>\n<p>Declaraci\u00f3n de un arreglo bidimensional de 8X8 que almacena los colores de una imagen. &nbsp;<\/p>\n<pre><span style=\"color: #0000ff;\">int<\/span> imagen[8][8];<\/pre>\n<p>Declaraci\u00f3n de un arreglo&nbsp; de 4X3 que almacena valores num\u00e9ricos reales de las variaciones de voltaje.<\/p>\n<pre><span style=\"color: #0000ff;\">float<\/span> voltaje[4][3];<\/pre>\n<h2><span style=\"color: #000080;\">Declaraci\u00f3n e inicializaci\u00f3n&nbsp;<\/span><\/h2>\n<p>Al igual que un arreglo unidimensional, una matriz se puede inicializar al momento de hacer su declaraci\u00f3n:<\/p>\n<h3><span style=\"color: #0000ff;\">Sintaxis<\/span><\/h3>\n\n\n<p class=\"has-white-color has-text-color has-background\" style=\"background-color:#002b7a\">int matriz[n\u00fameroFilas][n\u00fameroColumnas] = { {elemento1,elemento2,&#8230;} , {&#8230;} };<\/p>\n\n\n<p>Ejemplo:<\/p>\n<p>Observa en la Figura 2 la declaraci\u00f3n e inicializaci\u00f3n de una matriz en una sola instrucci\u00f3n.<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/InicializacionMatriz-2.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Figura 2. Declaraci\u00f3n e inicializaci\u00f3n de una matriz<\/figcaption><\/figure><\/div>\n\n<p>Otra forma de hacer la inicializaci\u00f3n es acomodar los valores de forma vertical para identificar visualmente las filas y las columnas de la matriz.<\/p>\n<pre><span style=\"color: #0000ff;\">int<\/span> matriz = { {1,2,0};<br>               {3,4,1};<br>               {0,4,2};<br>               {9,5,4}};<\/pre>\n<h2><span style=\"color: #000080;\">Acceso a&nbsp; los valores&nbsp;<\/span><\/h2>\n<div class=\"page\" title=\"Page 87\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: inherit;\">Durante la ejecuci\u00f3n de un programa, para acceder a elemento de un arreglo bidimensional se requiere especificar la posici\u00f3n que ocupa haciendo uso de los dos \u00edndices, &nbsp;uno que indica la fila y otro para indicar la columna, cada uno entre corchetes [ ].&nbsp; Tanto para asignar alg\u00fan valor como para la lectura, se hace uso de la siguiente sintaxis:<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span style=\"color: #0000ff;\">Sintaxis<\/span><\/h3>\n\n\n<p class=\"has-white-color has-text-color has-background\" style=\"background-color:#002b7a\">nombreMatriz[\u00edndiceFila] [\u00edndiceColumna] <\/p>\n\n\n<p><strong>Par\u00e1metros<\/strong><\/p>\n<p><strong>nombreMatriz \u2013&nbsp; <\/strong>Nombre del arreglo bidimensional<\/p>\n<p><strong>\u00edndiceFila \u2013 <\/strong>El n\u00famero de&nbsp; fila de la celda que guarda el valor<\/p>\n<p><strong>\u00edndiceColumna \u2013 <\/strong>El n\u00famero de&nbsp; columna de la celda que guarda el valor<\/p>\n<p>Los siguientes ejemplos de asignaci\u00f3n de valores en una matriz tomando como base la matriz de la figura 2.:<\/p>\n<pre><span style=\"color: #3366ff;\">int<\/span> matriz[4][3]; \/\/ Se declara el  arreglo bidimensional<br>valSensor[0][0] = 1; \/\/ se asigna el valor 1 en la fila 0, columna 0<br>valSensor[3][0] = 9; \/\/ se asigna el valor 9 en la fila 3, columna 0<br>valSensor[2][1] = 4; \/\/ se asigna el valor 4 en la fila 2, columna 1<\/pre>\n<p>Los siguientes ejemplos son de recuperaci\u00f3n o lectura de valores tomando como base la matriz de la Figura 2:<\/p>\n<pre><span style=\"color: #0000ff;\">int<\/span> matriz = { {1,2,0}; {3,4,1}; {0,4,2}; {9,5,4}};<br><span style=\"color: #0000ff;\">int<\/span> valor1 = matriz[0][2];  <span style=\"color: #808080;\">\/\/ Se recupera y asigna el valor 0 a la variable valor1<\/span><br><span style=\"color: #0000ff;\">int<\/span> valor2 = lecturas[2][2];  <span style=\"color: #808080;\">\/\/ Se recupera y asigna el valor 2 a la variable valor2<\/span><\/pre>\n<h2><span style=\"color: #000080;\">Recorrido de un arreglo bidimensional<\/span><\/h2>\n<p>En un arreglo&nbsp; bidimensional se puede accesar a todos los elementos realizando un recorrido por los elementos de cada fila como lo muestra la Figura 3.&nbsp;<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/recorridoFilas.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Figura 3. Recorrido de un arreglo bidimensional por cada fila<\/figcaption><\/figure><\/div>\n\n<p>El recorrido consiste en accesar a cada elemento de una fila, cuando termina, contin\u00faa&nbsp; con la fila siguiente y as\u00ed sucesivamente hasta recorrer la \u00faltima fila. Para hacer el barrido se utiliza la&nbsp; t\u00e9cnica de ciclos anidados que permite recorrer las dos dimensiones del arreglo. Se utiliza un for <span style=\"font-size: inherit;\">para recorrer cada fila,&nbsp; y dentro del ciclo otro for&nbsp; para recorrer cada columna de las filas.&nbsp;<\/span><\/p>\n<p>En el siguiente ejemplo se realiza el barrido del arreglo bidimensional y se imprimen cada uno de los valores&nbsp;<\/p>\n<pre><span style=\"color: #0000ff;\"><span style=\"color: #808080;\">\/\/ Recorrido de una arreglo bidimensional <br><\/span><br>int<\/span> fila; <span style=\"color: #808080;\">\/\/Declara la variable fila para manejar el \u00edndice de la fila<\/span><br><span style=\"color: #0000ff;\">int<\/span> columna; <span style=\"color: #808080;\">\/\/Declara la variable columna para manejar el \u00edndice de la columna<\/span><br><span style=\"color: #808000;\">for<\/span> (fila = 0; fila&lt;totalFila; fila ++) { <span style=\"color: #808080;\">\/\/ for recorre cada fila<\/span><br><span style=\"color: #808000;\">  for<\/span> (columna=0; columna&lt;totalColumna; columna++) { <span style=\"color: #808080;\">\/\/ for recorre la columna<\/span><br><span style=\"color: #ff6600;\">       Serial.print<\/span> (matriz[fila][columna]); <span style=\"color: #808080;\">\/\/Imprime el valor en de matriz<\/span><br>  }<br>}<\/pre>\n<p>Ahora que hemos revisado la declaraci\u00f3n, inicializaci\u00f3n y manipulaci\u00f3n de arreglos bidimensionales, vamos a realizar el siguiente ejemplo:<\/p>\n<p>Se desea programar un circuito electr\u00f3nico que despliegue los n\u00fameros del 0 al 9&nbsp; en un display de 7 segmentos, utilizando un arreglo bidimensional&nbsp; para el almacenamiento de los segmentos del display que deben ser iluminados. (Figura 4).&nbsp;<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/EjemploArreglosB.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Figura 4 . Conexi\u00f3n de un led de 7 segmentos a la tarjeta Arduino UNO<\/figcaption><\/figure><\/div>\n\n<p>Para crear este circuito vamos a explicar c\u00f3mo funciona un display de 7 segmentos&nbsp;<\/p>\n<h3><span style=\"color: #0000ff;\">Display de 7 segmentos<\/span><\/h3>\n<p>Es un dispositivo opto-electr\u00f3nico formado por leds que permite visualizar n\u00fameros del 0 al 9.&nbsp; Cada led es un segmento &nbsp;del display&nbsp; y est\u00e1 identificado &nbsp;por una letra (<strong>a,b,c,d,e,f,g y p para el punto decimal<\/strong>) como lo muestra la figura 5.&nbsp;<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/Display7Segmentos-2.png\" alt=\"\" width=\"252\" height=\"373\"\/><figcaption class=\"wp-element-caption\">Figura 5. Display de 7 segmentos<\/figcaption><\/figure><\/div>\n\n<p>Existen dos tipos de display y se caracterizan por la forma de conexi\u00f3n&nbsp;<\/p>\n<ul>\n<li>Anodo com\u00fan: todos los leds (segmentos)&nbsp;comparten el mismo \u00e1nodo (V+) y cada led tiene su propio c\u00e1todo.&nbsp; Los segmentos se iluminan con valor l\u00f3gico 0&nbsp;(0V en el c\u00e1todo) y se apagan con valor l\u00f3gico 1 (V+).<\/li>\n<li>C\u00e1todo com\u00fan : Todos los leds (segmentos) comparten el mismo c\u00e1todo (0V) y cada led tiene su propio \u00e1nodo. <strong>Los segmentos se iluminan con valor l\u00f3gico 1<\/strong>&nbsp;(V+ en el \u00e1nodo) y se apagan con valor l\u00f3gico 0 (0V):<\/li>\n<\/ul>\n<p>Observa el siguiente video para aprender a encender el&nbsp; display de 7 segmentos:<\/p>\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Display 7 segmentos TablaEncendido\" width=\"720\" height=\"405\" src=\"https:\/\/www.youtube.com\/embed\/43F4cpVs02g?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Tabla de encendido del display de 7 segmentos<\/figcaption><\/figure>\n\n\n<p>Para nuestro circuito utilizaremos de c\u00e1todo com\u00fan,&nbsp; es decir, que tiene un pin com\u00fan conectado a los negativos de los LED\u2019s (c\u00e1todo) y para generar los n\u00fameros, se debe asignar el valor 1 (voltaje positivo ) al segmento que se requiere encender para formar un n\u00famero.<\/p>\n<p>Como observaste&nbsp; en el video,&nbsp; para formar el n\u00famero 1 se requiere encender el segmento b y c del display, asignando el valor 1 (ON),&nbsp; &nbsp;y apagar los segmentos a,d,e,f, g y p asignando el valor&nbsp; 0&nbsp; (OFF). En la siguiente tabla (figura 6) se muestran los valores l\u00f3gicos que cada segmento debe tener para formar&nbsp; y desplegar&nbsp; el n\u00famero&nbsp; de la primera columna:<\/p>\n<p><\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/MatrizDisplay.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Figura 6. Tabla de valores por segmento para el display <\/figcaption><\/figure>\n\n\n<p>Ahora que comprendimos c\u00f3mo funciona el&nbsp; display de 7 segmentos,&nbsp; en la programaci\u00f3n del circuito declaramos un&nbsp; arreglo bidimensional y lo inicializamos con&nbsp; los valores de cada segmento de acuerdo a&nbsp; la tabla de la figura 7.<\/p>\n<pre> byte Digitos[10][8] = <span style=\"color: #808080;\">\/\/ Declaraci\u00f3n de la matriz con los valores de cada segmento <\/span><br><span style=\"color: #808080;\"><span style=\"color: #000000;\">{<\/span>                      \/\/  del display de 7 segmentos<\/span><br>{ 1,1,1,1,1,1,0,0 }, <span style=\"color: #808080;\">\/\/ 0<\/span> <br>{ 0,1,1,0,0,0,0,0 }, <span style=\"color: #808080;\">\/\/ 1<\/span><br>{ 1,1,0,1,1,0,1,0 }, <span style=\"color: #808080;\">\/\/ 2<\/span><br>{ 1,1,1,1,0,0,1,0 }, <span style=\"color: #808080;\">\/\/ 3<\/span><br>{ 0,1,1,0,0,1,1,0 }, <span style=\"color: #808080;\">\/\/ 4<\/span><br>{ 1,0,1,1,0,1,1,0 }, <span style=\"color: #808080;\">\/\/ 5<\/span><br>{ 1,0,1,1,1,1,1,0 }, <span style=\"color: #808080;\">\/\/ 6<\/span><br>{ 1,1,1,0,0,0,0,0 }, <span style=\"color: #808080;\">\/\/ 7<\/span><br>{ 1,1,1,1,1,1,1,0 }, <span style=\"color: #808080;\">\/\/ 8<\/span><br>{ 1,1,1,0,0,1,1,0 }  <span style=\"color: #808080;\">\/\/ 9<\/span><br>};<\/pre>\n<p>El display estar\u00e1 conectado a los pines del&nbsp; 5 al 11 de la tarjeta Arduino,&nbsp; y enviar\u00e1 al led que se requiera encender el valor HIGH (1)&nbsp; y LOW (0) para apagarlo, entonces debemos configurar cada pin de salida. Utilizando un ciclo para indicar las instrucciones&nbsp; de configuraci\u00f3n del pin 5 al 11 quedar\u00eda el c\u00f3digo como sigue:&nbsp;&nbsp;<\/p>\n<pre><span style=\"color: #808000;\"><span style=\"color: #0000ff;\"> int<\/span> pinLed;<br> for<\/span> (pinLed = 5; pinLed&lt;=12; pinLed++)<br>    { <span style=\"color: #ff6600;\">pinMode<\/span>(pinLed, <span style=\"color: #0000ff;\">OUTPUT<\/span>); }<\/pre>\n<p>Para generar&nbsp; los n\u00fameros del 0 al 9 se debe hacer un&nbsp; recorrido de los valores de la matriz Digitos[ ][ ] y&nbsp; encender los segmentos del display.&nbsp; Utilizamos ciclos anidados&nbsp; e indicamos cu\u00e1l segmento se debe encender con la instrucci\u00f3n digitalWrite como se muestra:<\/p>\n<pre><span style=\"color: #808000;\">for<\/span> (i=0; i&lt;=9; i++) <span style=\"color: #808080;\">\/\/Ciclo para recorrer las filas de la matriz Digitos[][]<\/span><br>{<br><span style=\"color: #808000;\">  for<\/span> ( j= 0 ; j&lt;8 ; j++) <span style=\"color: #808080;\">\/\/Ciclo para recorrer las columnas de la matriz Digitos[][]<\/span><br>    { pinLed = j+5; <span style=\"color: #808080;\">\/\/ Se asigna a pinLed el pin a encender<\/span><br><span style=\"color: #ff6600;\">      digitalWrite<\/span>(pinLed,Digitos[i][j]); <span style=\"color: #808080;\">\/\/Enciende el LED con el valor de [i][j]<\/span><br>    }<br><span style=\"color: #ff6600;\">    delay<\/span>(1000);<br>} <\/pre>\n<p>Con este ejercicio ponemos en pr\u00e1ctica la declaraci\u00f3n, inicializaci\u00f3n, acceso y recorrido de un arreglo bidimensional.<\/p>\n<h2><span style=\"color: #000080;\">Manos a la obra<\/span><\/h2>\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2021\/01\/ArmandoCircuitosAnimado-1.gif\" alt=\"\" width=\"150\" height=\"150\"\/><figcaption class=\"wp-element-caption\">Armando Circuitos<\/figcaption><\/figure><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Ahora que ya conoces c\u00f3mo utilizar el display de 7 segmentos y el uso de los arreglos bidimensionales, vamos a realizar una pr\u00e1ctica que consiste en la construcci\u00f3n y programaci\u00f3n de un circuito electr\u00f3nico que encienda en un display de 7segmentos los n\u00fameros d\u00edgitos, es decir\u00a0 del 0 al 9.<\/p>\n<\/div>\n<\/div>\n\n\n<h3><span style=\"color: #0000ff;\">Materiales<\/span><\/h3>\n<p>Los materiales necesarios para realizar la pr\u00e1ctica son los siguientes:<\/p>\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"296\" data-id=\"809\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/computadora.png\" alt=\"\" class=\"wp-image-809\"\/><figcaption class=\"wp-element-caption\">Computadora<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"296\" data-id=\"466\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/ide_arduino.png\" alt=\"\" class=\"wp-image-466\"\/><figcaption class=\"wp-element-caption\">IDE Arduino<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"296\" data-id=\"684\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/tarjeta.png\" alt=\"\" class=\"wp-image-684\"\/><figcaption class=\"wp-element-caption\">Tarjeta Arduino UNO<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"297\" height=\"296\" data-id=\"808\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/cable.png\" alt=\"cable USB tipo AB\" class=\"wp-image-808\"\/><figcaption class=\"wp-element-caption\">Cable USB tipo AB<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"297\" data-id=\"1251\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/display_7segmentos.png\" alt=\"\" class=\"wp-image-1251\"\/><figcaption class=\"wp-element-caption\">Led 7 segmentos<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"296\" data-id=\"683\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/protoboard.png\" alt=\"\" class=\"wp-image-683\"\/><figcaption class=\"wp-element-caption\">Protoboard<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"297\" data-id=\"687\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/resistencia-220.png\" alt=\"\" class=\"wp-image-687\"\/><figcaption class=\"wp-element-caption\">7 resistencias 220 ohms <\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"297\" data-id=\"686\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/jumper.png\" alt=\"\" class=\"wp-image-686\"\/><figcaption class=\"wp-element-caption\">9 cables jumper macho-macho<\/figcaption><\/figure>\n<\/figure>\n\n\n<p>Para que comprendas mejor las conexiones y el funcionamiento del circuito electr\u00f3nico que vas a crear, primero explicaremos c\u00f3mo trabaja un display de 7 segmentos . Los otros materiales ya los hemos utilizado en pr\u00e1cticas anteriores de este manual, si no te acuerdas o deseas repasar las caracter\u00edsticas t\u00e9cnicas y funcionamiento de alguno de los componentes electr\u00f3nicos, puedes dar clic sobre su imagen para consultar su informaci\u00f3n.&nbsp;<\/p>\n<h3><span style=\"color: #0000ff;\">C\u00f3mo conectar el display de&nbsp; 7 segmentos<\/span><\/h3>\n<p>C\u00f3mo vimos anteriormente un display de 7 segmentos es un dispositivo opto-electr\u00f3nico formado por leds que permite visualizar n\u00fameros del 0 al 9.En el siguiente video te explicamos c\u00f3mo se debe conectar el display.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Display 7 segmentos Conexio\u0301n\" width=\"720\" height=\"405\" src=\"https:\/\/www.youtube.com\/embed\/osSlZ7do9fU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Conexi\u00f3n del  Display de 7 segmentos<\/figcaption><\/figure>\n\n\n<h2><span style=\"color: #000080;\">Construcci\u00f3n del circuito electr\u00f3nico<\/span><\/h2>\n<p>Realiza las conexiones del circuito electr\u00f3nico que se muestra en el diagrama esquem\u00e1tico de la Figura 7. Recuerda que&nbsp; cada terminal del display va conectado a una&nbsp; resistencia y el&nbsp; c\u00e1todo com\u00fan&nbsp; a la tierra<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2020\/12\/CircuitoMatrices-1.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Figura 7 Diagrama esquem\u00e1tico del circuito electr\u00f3nico  con un  display  de 7 segmentos<\/figcaption><\/figure>\n\n\n<h2><span style=\"color: #000080;\">Programaci\u00f3n del circuito electr\u00f3nico<\/span><\/h2>\n<p>Captura el c\u00f3digo del programa en el IDE de Arduino.&nbsp; Procura hacerlo tu mismo para conseguir un aprendizaje de la codificaci\u00f3n de las instrucciones.&nbsp;&nbsp;<\/p>\n<pre><span style=\"color: #808080;\">\/* Manual de programaci\u00f3n con Arduino<\/span><br><span style=\"color: #808080;\">* Pr\u00e1ctica: Uso de arreglos bidimensionales<\/span><br><span style=\"color: #808080;\">* Objetivo: Programa que despliega contador del 0 al 9 <\/span><br><span style=\"color: #808080;\">* con un led de 7 segmentos<\/span><br><span style=\"color: #808080;\">* Fecha: noviembre 2020<\/span><br><span style=\"color: #808080;\">* Autor: Milagros Pacheco Casta\u00f1eda<\/span><br><span style=\"color: #808080;\">*\/<\/span><br><span style=\"color: #0000ff;\">byte<\/span> Digitos[10][8] = <span style=\"color: #808080;\">\/\/ Declaramos el arreglo bidimensional con los valores <\/span><br>{                    <span style=\"color: #808080;\">\/\/ para encender los segmentos del led<\/span><br>{ 1,1,1,1,1,1,0,0 }, <span style=\"color: #808080;\">\/\/ 0<\/span> <br>{ 0,1,1,0,0,0,0,0 }, <span style=\"color: #808080;\">\/\/ 1<\/span><br>{ 1,1,0,1,1,0,1,0 }, <span style=\"color: #808080;\">\/\/ 2<\/span><br>{ 1,1,1,1,0,0,1,0 }, <span style=\"color: #808080;\">\/\/ 3<\/span><br>{ 0,1,1,0,0,1,1,0 }, <span style=\"color: #808080;\">\/\/ 4<\/span><br>{ 1,0,1,1,0,1,1,0 }, <span style=\"color: #808080;\">\/\/ 5<\/span><br>{ 1,0,1,1,1,1,1,0 }, <span style=\"color: #808080;\">\/\/ 6<\/span><br>{ 1,1,1,0,0,0,0,0 }, <span style=\"color: #808080;\">\/\/ 7<\/span><br>{ 1,1,1,1,1,1,1,0 }, <span style=\"color: #808080;\">\/\/ 8<\/span><br>{ 1,1,1,0,0,1,1,0 }  <span style=\"color: #808080;\">\/\/ 9<\/span><br>};<br><br><span style=\"color: #0000ff;\">int<\/span> i; <span style=\"color: #808080;\">\/\/ Declaramos i para llevar el \u00edndice de las filas<\/span><br><span style=\"color: #0000ff;\">int<\/span> j; <span style=\"color: #808080;\">\/\/ Declaramos j para llevar el \u00edndice de las columnas<\/span><br><span style=\"color: #0000ff;\">int<\/span> pinLed; \/<span style=\"color: #808080;\">\/ Declaramos variable pinLed para manejar los pines<\/span><br><span style=\"color: #0000ff;\"><br>void<\/span> <span style=\"color: #808000;\">setup<\/span>()<br>{ <span style=\"color: #808080;\">\/\/ Configuramos los pines 5 a 12 de la placa Arduino como salida<\/span><br><span style=\"color: #808000;\">  for<\/span> (pinLed = 5; pinLed&lt;=12; pinLed++)<br><span style=\"color: #ff6600;\">  pinMode<\/span>(pinLed, OUTPUT);<br>}<br><br><span style=\"color: #0000ff;\">void<\/span> <span style=\"color: #808000;\">loop<\/span>()<br>{<br>\/\/ <span style=\"color: #808080;\">for anidados para recorrer la matriz Digitos<\/span><br><span style=\"color: #808000;\">   for<\/span> (i=0; i&lt;=9; i++) <span style=\"color: #808080;\">\/\/ Recorre las filas<\/span><br>   {<br><span style=\"color: #808000;\">      for<\/span> ( j= 0 ; j&lt;8 ; j++) <span style=\"color: #808080;\">\/\/ Recorre las columnas<\/span><br>      {  pinLed = j+5; <span style=\"color: #808080;\">\/\/ Se asigna a pinLed el pin a trabajar<\/span><br><span style=\"color: #ff6600;\">         digitalWrite<\/span>(pinLed , Digitos[i][j]) ; <span style=\"color: #808080;\">\/\/ Encendemos el segmento del led<\/span><br>      }<br><span style=\"color: #ff6600;\">      delay<\/span>(1000);<br>   } <br>}<\/pre>\n<p>Compila, depura y sube el sketch a la tarjeta Arduino UNO.&nbsp;<\/p>\n<h2><span style=\"color: #000080;\">Funcionamiento del circuito electr\u00f3nico<\/span><\/h2>\n<p>Prueba el funcionamiento de tu circuito electr\u00f3nico. Verifica el funcionamiento del circuito, debe ser semejante a la simulaci\u00f3n que se muestra a continuaci\u00f3n. Presiona el bot\u00f3n<strong> Iniciar simulaci\u00f3n&nbsp;<\/strong>observa c\u00f3mo el display enciende los n\u00fameros del 0 al 9.&nbsp;<\/p>\n\n\n<iframe loading=\"lazy\" width=\"725\" height=\"453\" src=\"https:\/\/www.tinkercad.com\/embed\/3WdWN1dpVlY?editbtn=1\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n\n\n\n<p>Si en tu navegador no se muestra la simulaci\u00f3n, ingresa al enlace <a href=\"https:\/\/www.tinkercad.com\/embed\/3WdWN1dpVlY?editbtn=1\">https:\/\/www.tinkercad.com\/embed\/3WdWN1dpVlY?editbtn=1<\/a><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2021\/02\/Autoecaluacio\u0301nArmandoCircuitos.gif\" alt=\"logo-autoevaluaci\u00f3n\" class=\"wp-image-3237\" width=\"150\" height=\"150\"\/><\/figure><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3><span style=\"color: #000080;\">Autoevaluaci\u00f3n<\/span><\/h3>\n<\/div>\n<\/div>\n\n\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-21\" class=\"h5p-iframe\" data-content-id=\"21\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Ejercicio 26 Arreglos bidimensionales\"><\/iframe><\/div>\n\n\n\n<p>Arduino. (2020). <em>Gu\u00eda de Referencia de Arduino<\/em>. <a href=\"https:\/\/www.arduino.cc\/reference\/es\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.arduino.cc\/reference\/es\/<\/a><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/iaciduino.enp.unam.mx\/wp-content\/uploads\/2021\/01\/ledAprende.gif\" alt=\"para aprender m\u00e1s\" class=\"wp-image-2607\" width=\"150\" height=\"150\"\/><\/figure><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3><span style=\"color: #000080;\">Para aprender m\u00e1s<\/span><\/h3>\n<\/div>\n<\/div>\n\n\n\n<p>Prometec (s\/f). Display de 7 segmentos. <a href=\"https:\/\/www.prometec.net\/display-7segmentos\/\">https:\/\/www.prometec.net\/display-7segmentos\/<\/a><\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/iaciduino.enp.unam.mx\/index.php\/manual-de-programacion-con-arduino\/arreglos-unidimensionales\/\">&lt; Arreglos unidimensionales<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-right\"><a href=\"https:\/\/iaciduino.enp.unam.mx\/index.php\/manual-de-programacion-con-arduino\/funciones\/\">Funciones ><\/a><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>En esta lecci\u00f3n aprender\u00e1s a utilizar arreglos bidimensionales para almacenar y manipular datos del mismo tipo en la resoluci\u00f3n de problemas. Cuando para solucionar un problema es necesario el registro de datos en tablas, \u00e9stas se pueden representar dentro de<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":18,"menu_order":26,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-442","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages\/442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/comments?post=442"}],"version-history":[{"count":111,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages\/442\/revisions"}],"predecessor-version":[{"id":6825,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages\/442\/revisions\/6825"}],"up":[{"embeddable":true,"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/pages\/18"}],"wp:attachment":[{"href":"https:\/\/iaciduino.enp.unam.mx\/index.php\/wp-json\/wp\/v2\/media?parent=442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}