miércoles, 1 de marzo de 2017

Con esta configuración intercambiaremos información en la biblioteca serial a partir de un traductor de código morse.

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

Popular Posts

Xochimeh. Con la tecnología de Blogger.