Projeto 4 - Código MORSE com o Arduino

Neste projeto utilizaremos o Arduino para representar o Código MORSE.

O Código Morse é um padrão de comunicação que utiliza pontos (.) e traços (-), de forma combinada,
para enviar mensagens. Cada caractere pode ser representado por uma sequência única de pontos e traços.

Veja na tabela abaixo a representação de alguns caracteres:




Esses sinais, quando convertidos  em  digital,  são  enviados  na forma de ligado e desligado (1 e 0); assim, é   possível   enviar   uma mensagem   utilizando   um   LED controlado pelo Arduino. Um sinal curto  representa  um  ponto  e  um sinal longo representa um traço.

Exemplo:

A palavra "MAKER" ficaria assim:    --    .-    -.-    .    .-. 
                                         M   A    K    E   R


Faça a montagem conforme o esquema abaixo desenhado no software Fritzing.

Obs.: observe que desta vez estamos utilizando um resistor para evitar que o LED queime.





Ligue o Arduino no PC, configure os drivers necessários e teste os códigos nas linguagens abaixo:

Scratch for Arduino:


Exemplo para piscar o Código Morse "SOS" repetidamente no Arduino.



Desafio:

- Crie funções para facilitar e deixar o código mais eficiente e elegante
- Crie funções para algumas teclas, ou seja, o LED deve piscar conforme a tecla pressionada

Arduino:


Exemplo para piscar o Código Morse "SOS" repetidamente no Arduino.



Copie e cole este código na interface do Arduino,, compile e grave na placa Arduino:

int led = 13;

void setup() {
  pinMode(led, OUTPUT);
}

void loop () {

  digitalWrite(led, 1);
  delay(200);
  digitalWrite(led, 0);
  delay(200);
  digitalWrite(led, 1);
  delay(200);
  digitalWrite(led, 0);
  delay(200);
  digitalWrite(led, 1);
  delay(200);
  digitalWrite(led, 0);
  delay(200);
 
  delay(1000);
 
  digitalWrite(led, 1);
  delay(600);
  digitalWrite(led, 0);
  delay(600);
  digitalWrite(led, 1);
  delay(600);
  digitalWrite(led, 0);
  delay(600);
  digitalWrite(led, 1);
  delay(600);
  digitalWrite(led, 0);
  delay(600);
 
  delay(1000); 
 
  digitalWrite(led, 1);
  delay(200);
  digitalWrite(led, 0);
  delay(200);
  digitalWrite(led, 1);
  delay(200);
  digitalWrite(led, 0);
  delay(200);
  digitalWrite(led, 1);
  delay(200);
  digitalWrite(led, 0);
  delay(200);
 
  delay(3000);
 
}


Desafios:

- Utilize um comando de repetição (laços de repetição) para deixar o código mais enxuto.
- Crie funções para facilitar a escrita do código.
- Crie funções para determinadas letras ou palavras.