Diferencia entre revisiones de «Arrays»

De ArduWiki
Saltar a: navegación, buscar
(Vea también)
 
(No se muestran 6 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 +
Esta variación en el ejemplo For Iop de iteración muestra cómo usar una matriz. Una matriz es una variable con varias partes. Si piensas en una variable como una taza que contiene valores, podrías pensar en una matriz como una bandeja de cubitos de hielo. Es como una serie de tazas vinculadas, todas las cuales pueden tener el mismo valor máximo.
 +
 +
El ejemplo For Iop de iteración muestra cómo encender seis (6) LED conectados a los pines 2 a 7 de la placa Arduino o Genuino, con ciertas limitaciones (los pines deben numerarse contiguamente, y los LED deben encenderse en secuencia).
 +
 +
Este ejemplo muestra cómo puede activar una secuencia de pines cuyos números no son contiguos ni necesariamente secuenciales. Para hacer esto, puede poner los números de pin en una matriz y luego usar los bucles para iterar sobre la matriz.
 +
 +
Esta técnica de poner los pines en una matriz es muy útil. No tiene que tener los pines secuenciales entre sí, o incluso en el mismo orden. Los puedes reorganizar en el orden que desee.
  
 
== Placa aplicable ==
 
== Placa aplicable ==
Línea 4: Línea 11:
  
 
== Código ==
 
== Código ==
 +
En este ejemplo usa 6 LED conectado cada ánodo via resistencia de 220 ohms a los pines digitales 2~7 pero de manera desordenada. Los cátodos están todos a GND. Note que aquí el orden de los LED está determinado la matriz y no por su orden físico.
 +
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 +
const byte led[] = {2, 7, 4, 6, 5, 3};    //Pines de cada LED
 +
const byte tot = sizeof(led);            //Numero de LEDs
 +
const byte tiempo = 300;                  //Retardo
 +
 +
void setup() {
 +
  for (byte n=0; n<tot; n++) {
 +
      pinMode(led[n], OUTPUT);
 +
  }
 +
}
 +
 +
void loop() {
 +
  //Ascendente
 +
  for (byte n=0; n<tot; n++) {
 +
      digitalWrite(led[n], HIGH);  //Prende LED
 +
      delay(tiempo);
 +
      digitalWrite(led[n], LOW);  //Apaga LED
 +
  }
 +
  //Descendente
 +
  for (byte n=tot-1; n>=0; n--) {
 +
      digitalWrite(led[n], HIGH);  //Prende LED
 +
      delay(tiempo);
 +
      digitalWrite(led[n], LOW);  //Apaga LED
 +
  }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== Comentarios ==
 
== Comentarios ==
 +
* La función [[sizeof()]] nos descubre el numero de LEDs por el numero de pines definidos en la matriz '''led[]''' pero tenga en cuenta que el primer elemento de la matriz es 0 y el ultimo es el numero de elementos - 1.
  
 
== Vea también ==
 
== Vea también ==
* [[If statement conditional]]
+
<categorytree mode=all>Estructuras de control</categorytree>
* [[Switch case 1]]
+
 
* [[Switch case 2]]
+
== Referencias ==
* [[Fox loop iteration]]
+
* [https://www.arduino.cc/en/Tutorial/Arrays Ejemplos de Arduino]
* [[While statement conditional]]
 
  
 
[[Category:Estructuras de control]]
 
[[Category:Estructuras de control]]

Revisión actual del 22:16 6 may 2019

Esta variación en el ejemplo For Iop de iteración muestra cómo usar una matriz. Una matriz es una variable con varias partes. Si piensas en una variable como una taza que contiene valores, podrías pensar en una matriz como una bandeja de cubitos de hielo. Es como una serie de tazas vinculadas, todas las cuales pueden tener el mismo valor máximo.

El ejemplo For Iop de iteración muestra cómo encender seis (6) LED conectados a los pines 2 a 7 de la placa Arduino o Genuino, con ciertas limitaciones (los pines deben numerarse contiguamente, y los LED deben encenderse en secuencia).

Este ejemplo muestra cómo puede activar una secuencia de pines cuyos números no son contiguos ni necesariamente secuenciales. Para hacer esto, puede poner los números de pin en una matriz y luego usar los bucles para iterar sobre la matriz.

Esta técnica de poner los pines en una matriz es muy útil. No tiene que tener los pines secuenciales entre sí, o incluso en el mismo orden. Los puedes reorganizar en el orden que desee.

Placa aplicable

Todas.

Código

En este ejemplo usa 6 LED conectado cada ánodo via resistencia de 220 ohms a los pines digitales 2~7 pero de manera desordenada. Los cátodos están todos a GND. Note que aquí el orden de los LED está determinado la matriz y no por su orden físico.

const byte led[] = {2, 7, 4, 6, 5, 3};    //Pines de cada LED
const byte tot = sizeof(led);             //Numero de LEDs
const byte tiempo = 300;                  //Retardo

void setup() {
   for (byte n=0; n<tot; n++) {
      pinMode(led[n], OUTPUT);
   }
}

void loop() {
   //Ascendente
   for (byte n=0; n<tot; n++) {
      digitalWrite(led[n], HIGH);  //Prende LED
      delay(tiempo);
      digitalWrite(led[n], LOW);   //Apaga LED
   }
   //Descendente
   for (byte n=tot-1; n>=0; n--) {
      digitalWrite(led[n], HIGH);  //Prende LED
      delay(tiempo);
      digitalWrite(led[n], LOW);   //Apaga LED
   }
}

Comentarios

  • La función sizeof() nos descubre el numero de LEDs por el numero de pines definidos en la matriz led[] pero tenga en cuenta que el primer elemento de la matriz es 0 y el ultimo es el numero de elementos - 1.

Vea también


Referencias