USANDO PULSADORES

Los botones son un tipo de elemento externo que nos permite controlar físicamente acciones a realizar por nuestro sistema a través de dar continuidad o no a la señal de entrada en la que están instalados. Como podréis imaginar son parte fundamental de casi cualquier proyecto y son muy fáciles de usar y programar, aunque hay que tener en cuenta un par de detalles a la hora de usarlos.
 

SOBRE EL EMPLEO DE UN RANGO DE NÚMERO ALEATORIO: RANDOM

randomSeed(seed)

Establece un valor, o semilla, como punto de partida para la función random().

Debido a que Arduino es incapaz de crear un verdadero número aleatorio, randomSeed le permite colocar una variable, constante, u otra función de control dentro de la función random, lo que permite generar números aleatorios al azar. Hay una variedad de semillas, o funciones, que pueden ser utilizados en esta función, incluido millis() o incluso analogRead() que permite leer ruido eléctrico a través de un pin analógico.

random(max)

Devuelve un valor aleatorio entre 0 y max.

numAleatorio = random(300);       // escribe un número aleatorio de 0 a 300 en la variable 'numAleatorio'

random(min, max)

La función random devuelve un número aleatorio entero de un intervalo de valores especificado entre los valores min y max.

valor = random(100, 200);             // asigna a la variable 'valor' un numero aleatorio comprendido entre 100 y 200

 

SOBRE EL BUCLE “WHILE”

Ya hemos visto la estructura condicional if y el bucle de repetición for, ambas muy utilizadas en programación, pero al estar conectados al  mundo real nuestro Arduino habrá ocasiones en las que querremos que realice acciones mientras se cumpla una condición  sin importar el número de veces repita: para ello contamos con el comando while.

Su sintaxis es la siguiente:

1
2
3
4

while (condición)
{
// comandos
}

Nuestro ejemplo de aplicación seguirá con el pequeño fragmento de código que hace parpadear el LED 4 de modo que siga parpadeando de forma indefinida mientras se mantenga accionado el pulsador 12.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

int pulsador = 12;
int led= 4;

void setup()
{
  pinMode(pulsador, INPUT);
  pinMode(led, OUTPUT);
}

 void loop()
 {
  while (digitalRead(pulsador) == HIGH)
  {
    digitalWrite(led, HIGH);
    delay(1000);
    digitalWrite(led, LOW);
    delay(1000);
  }
  }

Según hemos visto el comando while se ejecuta mientras se cumpla una condición, hilando más fino, primero se evalúa la condición y si se cumple se ejecuta el código. Hasta aquí todo bien, pero puede que en algún caso queramos o necesitemos que sea al revés: que primero se ejecute el código y que luego se evalúe la condición, para ello existe una variación del comando while que es el do…while y cuya sintaxis es:

1
2
3
4

do
{
// comandos
}while (condición)

Aplicado al ejemplo anterior no notaremos ninguna diferencia de comportamiento, pero hay que recordar que en programación el orden es importante y en proyectos más complejos nos encontraremos con la necesidad de que la condición sea evaluada cuando el código se haya ejecutado al menos una vez.

 

1.       int pulsador = 12;

2.       int led= 4;

3.       void setup()

4.       {

5.       pinMode(pulsador, INPUT);

6.       pinMode(led, OUTPUT);

7.       }

8.       void loop()

9.       {

10.    do

11.    {

12.    digitalWrite(led, HIGH);

13.    delay(1000);

14.    digitalWrite(led, LOW);

15.    delay(1000);

16.    }

17.    while (digitalRead(pulsador) == HIGH)

18.    }

 

ESTE ARCHIVO RESUME TODO EL CONTENIDO Y LO AMPLIA CON EJEMPLOS. OS RECOMIENDO QUE LO CONSULTÉIS


USANDO PULSADORES.pdf (474932)