En el monitor serie debe poderse escribir el mensaje y ser traducido.
Partes
- Arduino Uno
- Protoboard
- 1 Led
- 1 resistencia 220Ω
Código
/* Con este sketch practicaremos la comunicación serial a partir
* de crear un traductor de letras a código Morse
*/
int pinLed = 9;
char* letras[] = {
"._", "-...", "-.-.", "-..", "..-.", "....", "..", // A - I
".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", //J-R
"...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." // s-z
};
int puntoRetraso = 200;
void setup() {
pinMode (pinLed, OUTPUT);
Serial.begin (9600);
}
void flashPuntoOGuion (char puntoOGuion)
{ digitalWrite (pinLed, HIGH);
if (puntoOGuion == '.')
{
delay (puntoRetraso);
}
else // debe ser una -
{
delay (puntoRetraso * 3);
}
digitalWrite (pinLed, LOW);
delay (puntoRetraso);
}
void flashSecuencia (char* secuencia)
{
int i = 0;
while (secuencia[i] != NULL)
{
flashPuntoOGuion (secuencia[i]);
i++;
}
delay (puntoRetraso * 3);
}
void loop() {
char ch;
if (Serial.available ())
{
ch = Serial.read();
if (ch >= 'a' && ch <= 'z')
{
flashSecuencia (letras [ch - 'a']);
}
else if (ch >= 'A' && ch <= 'Z')
{
flashSecuencia (letras [ch - 'A']);
}
else if (ch == ' ')
{
delay (puntoRetraso * 4);
}
}
}
Clave morse
0 comentarios:
Publicar un comentario