int led = 13; //define el pin donde está conectado el LED//
int buzzer = 12; //define el pin donde está conectada la bocina//
const char* morse = ".... --- .-.. .-"; //palabra en código morse//cadena de caracteres//const: variable que no cambia, char: variable apuntador para 1 carácter//
int avanza = 0; //recorre el código morse, carácter por carácter//
void setup() { //objeto para configurar entradas y salidas//
pinMode(led, OUTPUT); //pin, salida digital//
pinMode(buzzer, OUTPUT); //bocina, salida digital//
}1
void loop() { //objeto para el código que maneja la lógica continua y repetitiva del programa//
char currentChar = morse[avanza]; //carácter actual de la cadena morse utilizando avanza. Recorre la palabra carácter por carácter//
if (currentChar == '.') { //si el carácter actual es un punto, se ejecutará la función "prenderPunto()"//
prenderPunto();
} else if (currentChar == '-') { //si el carácter actual es una línea, se ejecutará la función "prenderLinea()"//
prenderLinea();
}
delay(1000); //espera un tiempo antes de pasar al siguiente carácter//
avanza++; //se recorre un lugar para leer el siguiente carácter//
}
void prenderPunto() { //función para encender el LED y la bocina si el carácter actual es un punto (menor duración)//
digitalWrite(led, HIGH); //prende el LED//
digitalWrite(buzzer, HIGH); //prende la bocina//
tone(12,282,300); //activa la bocina conectada al pin 12 y produce un tono de 282 Hz durante 300 ms. (pin,frecuencia,duración)//
delay(300); //pausa de 300 ms. Después de reproducir el tono, el programa espera antes de continuar con las siguientes instrucciones//
digitalWrite(led, LOW); //apaga el LED//
digitalWrite(buzzer, LOW); //apaga la bocina//
}
void prenderLinea() { //función para encender el LED y la bocina si el carácter actual es una linea (mayor duración)//
digitalWrite(led, HIGH); //prende el LED//
digitalWrite(buzzer, HIGH); //prende la bocina//
tone(12,282,500); //activa la bocina conectada al pin 12 y produce un tono de 282 Hz durante 500 ms. (pin,frecuencia,duración)//
delay(500); //pausa de 500 ms. Después de reproducir el tono, el programa espera antes de continuar con las siguientes instrucciones//
digitalWrite(led, LOW); //apaga el LED//
digitalWrite(buzzer, LOW); //apaga la bocina//
}