int caracter;
int buzzer = 14; /*declaramos que el buzzer esta conectado en el pin 14*/
/*creamos una funcion para que reproduzca el sonido de un punto en el buzzer*/
void punto(){
tone(buzzer,440);
delay(100);
noTone(buzzer);
delay(200);
}
/*creamos una fincion para que reproduzca el sonido de una ralla en el buzzer*/
void ralla(){
tone(buzzer,440);
delay(300);
noTone(buzzer);
delay(200);
}
void setup() {
Serial.begin(9600);/*inicializamos la velocidad de transmision del puerto serie*/
}
void loop() {
/*funcion condicional que solo permitira la ejecucion del codigo si-cuando el puerto serie reciva alguna cosa que sea mayor que 0*/
if(Serial.available()>0){
caracter=Serial.read();/*aqui le damos el valor de lectura a la variable caracter previamente creada*/
/*llamamos a la funcion switch con la condicion del valor del caracter*/
switch (caracter) {
/*a continuacion tenemos todos los casos con cada una de las letras del abecedario para traducirlas a codigo morse*/
case 'a':
Serial.print("._ ");
punto();
ralla();
break;
case 'b':
Serial.print("_... ");
ralla();
punto();
punto();
punto();
break;
case 'c':
Serial.print("_._. ");
ralla();
punto();
ralla();
punto();
break;
case 'd':
Serial.print("_.. ");
ralla();
punto();
punto();
break;
case 'e':
Serial.print(". ");
punto();
break;
case 'f':
Serial.print(".._. ");
punto();
punto();
ralla();
punto();
break;
case 'g':
Serial.print("__. ");
ralla();
ralla();
punto();
break;
case 'h':
Serial.print(".... ");
punto();
punto();
punto();
punto();
break;
case 'i':
Serial.print(".. ");
punto();
punto();
break;
case 'j':
Serial.print(".___ ");
punto();
ralla();
ralla();
ralla();
break;
case 'k':
Serial.print("_._ ");
ralla();
punto();
ralla();
break;
case 'l':
Serial.print("._... ");
punto();
ralla();
punto();
punto();
punto();
break;
case 'm':
Serial.print("__ ");
ralla();
ralla();
break;
case 'n':
Serial.print("_. ");
ralla();
punto();
break;
case 'o':
Serial.print("___ ");
ralla();
ralla();
ralla();
break;
case 'p':
Serial.print(".__. ");
punto();
ralla();
ralla();
punto();
break;
case 'q':
Serial.print("__._ ");
ralla();
ralla();
punto();
ralla();
break;
case 'r':
Serial.print("._. ");
punto();
ralla();
punto();
break;
case 's':
Serial.print("... ");
punto();
punto();
punto();
break;
case 't':
Serial.print("_ ");
ralla();
break;
case 'u':
Serial.print(".._ ");
punto();
punto();
ralla();
break;
case 'v':
Serial.print("..._ ");
punto();
punto();
punto();
ralla();
break;
case 'w':
Serial.print(".__ ");
punto();
ralla();
ralla();
break;
case 'x':
Serial.print("_.._ ");
ralla();
punto();
punto();
ralla();
break;
case 'y':
Serial.print("_.__ ");
ralla();
punto();
ralla();
ralla();
break;
case 'z':
Serial.print("__.. ");
ralla();
ralla();
punto();
punto();
break;
case '$':
Serial.println();
delay(1000);
break;
case ' ':
Serial.print("/");
break;
case 195:
Serial.print("__.__ ");
ralla();
ralla();
punto();
ralla();
ralla();
break;
}
}
}