lunes, 17 de noviembre de 2014

Uso de variables


Hoy usaremos el mismo montaje de la anterior entrada e intentaremos dar una vuelta de tuerca al ejemplo del día anterior y de paso avanzar un poco en técnicas de programación.

El otro día definimos un retraso de 1 segundo entre cada orden de encendido. ¿Qué pasaría si quisiéramos modificar este valor? Podemos hacer cómo el primer ejemplo, y modificarlo en cada parte del programa que aparezca, o usar una variable.
Veamos como quedaba el otro día el void loop:


{
  digitalWrite(2,HIGH);// Encendemos el Led 1 poniendo su salida en 1, HIGH
  delay(1000); //Espera de un segundo
  digitalWrite(2,LOW);//Apagamos el Led 1 poniendo su pina a 0, o LOW
  digitalWrite(3,HIGH);//Repetimos los mismo pasos hasta el led 4
  delay(1000);
  digitalWrite(3,LOW);
  digitalWrite(4,HIGH);
  delay(1000);
  digitalWrite(4,LOW);
  digitalWrite(5,HIGH);
  delay(1000);
  digitalWrite(5,LOW);
}


En esta caso tendría que ir a modificar cada línea de forma individual, o tener una variable con un valor, y modificando tan solo ese valor, automáticamente se cambiaría en todos los puntos que se use. Quedaría algo así el sketch completo:



//Ejemplo1.1 versión para explicar el uso de variables para parámetros repetitivos
//sobre el ejemplo 1
int d=1000; // variable de tipo integer, que define el tiempo de delay

void setup()

{
  pinMode(2,OUTPUT); //Pin 2 conectado al led 1, definido como salida
  pinMode(3,OUTPUT); //Pin 3 conectado al led 2, definido como salida
  pinMode(4,OUTPUT); //Pin 4 conectado al led 5, definido como salida
  pinMode(5,OUTPUT); //etc...
}
void loop()
{
  digitalWrite(2,HIGH);// Encendemos el Led 1 poniendo su salida en 1, HIGH
  delay(d); //Espera de un segundo
  digitalWrite(2,LOW);//Apagamos el Led 1 poniendo su pina a 0, o LOW
  digitalWrite(3,HIGH);//Repetimos los mismo pasos hasta el led 4
  delay(d);
  digitalWrite(3,LOW);
  digitalWrite(4,HIGH);
  delay(d);
  digitalWrite(4,LOW);
  digitalWrite(5,HIGH);
  delay(d);
  digitalWrite(5,LOW);
 //final del Loop, ahora volverá al incicio del bucle,
 //y se repetirá indefinidamente
}


Ahora, cambiando en el código el valor de d, cambiaría en todo el programa a la vez. En este caso hemos usado una variable del tipo int o integer. Este tipo de variable puede contener un número entero comprendido entre -32.768 y 32.767. Modificar ahora el tiempo de destello es mucho más sencillo.

En el video se puede observar como cada cambio, del valor de d se aplica inmeditamente en todo el programa:



Ya iremos profundizando en el tipo y uso de variables conforme vayamos avanzando. De momento conserva este montaje, que mañana intentaremos mejorarlo un poco más.

No hay comentarios:

Publicar un comentario