Se trata de emitir señales acústicas y luminosas de SOS en el código Morse.
Componentes necesarios:
- 1 zumbador piezoeléctrico
- 1 Led
Este es un ejercicio para introducir los procedimientos.
La iteración nos evitaba repetir la escritura del mismo código cuando éste se ejecutaba en repeticiones sucesivas. Ahora vamos a ver cómo ahorrarnos repetir el código cuando éste se usa varias veces que no van seguidas.
Vamos a empaquetar el código correspondiente a cada letra en un procedimiento.Las definiciones de los procedimientos se hacen siempre antes de que vayan a ser usados.
Si se van a usar en el void setup() de forma que se ejecuten al comienzo una sola vez, deben estar definidos antes.
Si se van a usar sólo en el void loop() de forma que se ejecuten repitiéndose dentro del bucle infinito pueden ir detrás del void setup() pero antes que el void loop().
Puede definirse un procedimiento que ejecute otro, en este caso, el que se ejecuta tiene que estar definido antes.
Los procedimientos se definen con void seguido del nombre y dos paréntesis vacíos. Se ejecutan con el nombre seguido de los paréntesis vacíos.
Hay que empezar a tener cuidado con la cantidad de llaves anidadas que empiezan a aparecer. Es una buena idea mantener un criterio de colocación que facilite la identificación de los intervalos de código que demarcan.
Una posibilidad es colocar la llave que abre en la misma línea y la que cierra en otra aparte a la misma altura que la primera letra del comando, con el contenido un poco desplazado a la derecha. Las que vayan apareciendo dentro se sitúan de la misma forma con lo que los anidamientos se ven con la indentación.
Una característica muy práctica de la IDE es la que te indica las llaves, corchetes o paréntesis emparejados. Para ello, tienes que colocar el cursor detrás de uno de ellos y su pareja aparece en un recuadro.
Los mensajes de error al compilar también pueden recordarte algún despiste.
Variaciones:
- Definir procedimientos para otras letras y envíar tus propios mensajes en morse.
- Emplear un pulsador que actúe como interruptor para activar o apagar el SOS
CÓDIGO FUENTE
int corto=200;
int pausa=400;
int largo=400;
int espera=1000;
int n=0;
int led=13;
int zumb=10;
void setup (){
pinMode(led,OUTPUT);
pinMode(zumb,OUTPUT);
}
void S(){ //definición del procedimiento que envía la letra S
for(n=0;n<3;n++){
digitalWrite(led, HIGH);
digitalWrite(zumb, HIGH);
delay(corto);
digitalWrite(led,LOW);
digitalWrite(zumb,LOW);
delay(corto);
}
}
void O(){ //definición del procedimiento que envía la letra O
for(n=0;n<3;n++){
digitalWrite(led, HIGH);
digitalWrite(zumb, HIGH);
delay(largo);
digitalWrite(led,LOW);
digitalWrite(zumb,LOW);
delay(largo);
}
}
void loop(){
S(); //Ejecución del procedimiento que envía la letra S
delay(pausa);
O(); //Ejecución del procedimiento que envía la letra O
delay(pausa);
S(); //Ejecución del procedimiento que envía la letra S
delay(espera);
}
Comments (0)
You don't have permission to comment on this page.