18 mar. 2012

TECNO 4º E.S.O. ARDUINO. V

EJERCICIO SOS

Estamos perdidos y vamos a pedir socorro mandando toda la noche un SOS luminoso para que nos vean los aviones de rescate. Un LED parpadea, emitiendo un SOS en código morse.
En código Morse las letras se representan por pulsos largos (rayas) o cortos (puntos), para nuestro ejemplo necesitamos conocer sólo 2 letras:

  • S: punto-punto-punto
  • O: raya-raya-raya
La duración de los puntos y las rayas es diferente:
Punto:100ms
Raya:300ms
Entre 2 letras hay que hacer una pausa (100ms)
Entre una señal de SOS y la siguiente hay que poner un tiempo de espera (1s)

Tendremos que encender y apagar los leds con sus delays asociados como ya sabemos para determinar la longitud de cada pulso; pero la novedad de este programa es que en lugar de utilizar los milisegundos vamos a declarar al principio unas variables con los valores en cuestión. Así quedará:
int punto=100;
int raya=300;
int pausa=100;
int espera=1000; 

Y luego deberíamos utilizar, por ejemplo: delay(punto);
Realiza el programa


El comando for
Hay que declarar las variables que vamos a usar como contadores en las iteraciones con el comando for. En este caso, el valor con el que las inicialicemos no importa, pues se vuelven a inicializar al ejecutarse el comando for.
int n=0
La iteración con for describe un bucle que se ejecuta un nº de veces que se indica con el valor inicial, el valor final y cuanto cambia la variable en cada iteración. En este caso tenemos tres : empieza en 0, acaba en 2 y cambia añadiendo 1. Es decir:
for(n=0;n<3;n++){       - Una primera vez en que n vale 0
digitalWrite(led, HIGH);   - Una segunda vez en que n vale 1
delay(corto);              - Una tercera vez en que n vale 2
digitalWrite(led,LOW);
delay(corto);
}