blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • O que é?
  • Como o Código Morse Funciona?
  • Prática
  • Materiais Necessários para o Projeto Código Morse com Arduino
  • Montagem
  • Código
  • Funcionamento
  • Sobre o Autor
Projetos

Código Morse com Arduino

Eletrogate 6 de abril de 2023

Introdução

No post de hoje, nós iremos aprender sobre o Código Morse e como ele funciona! O código Morse foi criado em 1835  pelo pintor, físico e inventor, Samuel Finley Breese Morse. Por volta do Século XIX o código era muito usado por marinheiros. Inclusive, o primeiro resgate marítimo registrado usando código Morse foi em 1889, no estreito de Dover.

Fonte: pt.wikipedia.org/wiki/Estreito_de_Dover


O que é?

O código Morse é um sistema binário de números, letras e sinais gráficos. Como o nome já diz, um sistema binário funciona com dois tipos de “informações”. O código binário, por exemplo, utiliza apenas o 0 e o 1, já o código Morse utiliza pontos e traços.

Fonte: escoteirodesbravador.blogspot.com

Fonte: cursoenemgratuito.com.br


Como o Código Morse Funciona?

A transmissão do código Morse pode ser feita várias maneiras. Ele pode ser transmitido por pulsos elétricos, intervalos de sons ou até intervalos de luz (piscadas de luz). A primeira invenção a realmente usar o código Morse de forma efetiva para longas distâncias foi o telégrafo. Os operadores tinham que saber interpretar os cliques, para transferi-los em pontos e traços. Pouco tempo depois, foi notado que os operadores teriam mais facilidade em pegar os sinais se eles fossem escutados. Daí, o código Morse passou a ser mais usado por sons, (bips curtos para pontos e bips longos para traços).

E uma curiosidade: o teclado como nós conhecemos hoje em dia, na sua formatação mais conhecida “QWERTY”, surgiu por causa dos operadores de telégrafo, que tinham que passar o código recebido para texto. Porém, eles tinham que digitar muito rápido o que captavam e, com isso, surgiu o teclado QWERTY, em que as letras mais comuns do inglês ficam mais próximas. Hoje em dia, existem mais formatações de teclado, como, por exemplo: Dvorak, KALQ, MALTRON, JCUKEN, etc.

Teclado QWERTY

Teclado DVORAK
Fonte: Wikipedia

Teclado kalq
Fonte: Tecmundo

Aqui, o mais diferente da lista:

Teclado MALTRON


Prática

Vamos aprender na prática como o Código Morse funciona com o Arduino!


Materiais Necessários para o Projeto Código Morse com Arduino

  • Uno R3 + Cabo Usb para Arduino
  • Buzzer Ativo 5v
  • Mini Protoboard 170 pontos
  • Jumpers – Macho/Macho – 65 Unidades

cta_cart


Montagem


Código

O código será o seguinte:

//Converte os caracteres em dados char
char charecters[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', '"', '$', '&', '(', ')', '_', '+', '=', '-', ':', ';', '@', '\'', ',', '.', '/', '?', ' '};
char* morse[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", "-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.", "-·-·--", "·-··-·", "···-··-", "·-···", "-·--·", "-·--·-", "··--·-", "·-·-·", "-···-", "-····-", "---···", "-·-·-·", "·--·-·", "·----·", "--··--", "·-·-·-", "-··-·", "··--··", " "};
int len = 55;

//instancia em que pino o buzzer vai ficar
int buzzerpin = 12 ;

int dotLen = 150;	// Você pode ajustar a velocidade dos bips aqui
int dashLen = dotLen * 3;
int elemGap = dotLen;
int charGap = dotLen * 2;
int Space = dotLen * 6;

char charDelimiter = '@'; // Usa isso para separar os caracteres

String inputString = "";
boolean stringComplete = false;

void setup() {
  Serial.begin(9600);
  pinMode(buzzerpin, OUTPUT);
  inputString.reserve(200);
}

void loop() {
  serialEvent();
  if (stringComplete) {
    Serial.println(inputString); //imprime no monitor seria a mensagem que você escreveu
    String code = toMorse(inputString); 
    Display(code);
    inputString = "";
    stringComplete = false;
  }
}

String toMorse(String inputString) {
  inputString.toLowerCase();
  int inputString_len = inputString.length() + 1;
  char char_array[inputString_len];
  inputString.toCharArray(char_array, inputString_len);
  String finalcode = "";
  for (int i = 0; i < inputString_len; i++) {
    for (int n = 0; n < len; n++) {
      if (char_array[i] == charecters[n] )
      {
        finalcode += morse[n];
        finalcode += charDelimiter; 
      }
    }
  }
  return finalcode;
}

String toString(String code) {
  
  return "";
}

void Display(String code) {
  int code_len = code.length() + 1;
  char code_array[code_len];
  code.toCharArray(code_array, code_len);
  for (int i = 0; i < code_len; i++) {
    if (code_array[i] == '.')
    {
     
      digitalWrite(buzzerpin, HIGH);
      delay(dotLen);
      
      digitalWrite(buzzerpin , LOW);
      delay(elemGap);
      Serial.print(code_array[i]);
    }
    else if (code_array[i] == '-')
    {
     
      digitalWrite(buzzerpin , HIGH);
      delay(dashLen);
      
      digitalWrite(buzzerpin, LOW);
      delay(elemGap);
      Serial.print(code_array[i]);
    }
    else if (code_array[i] == ' ')
    {
      delay(Space);
      Serial.print("   ");
    }
    else if (code_array[i] == charDelimiter)
    {
      delay(charGap);
      Serial.print(" ");
    }
  }
  Serial.println();
  Serial.println("Pronto");
}
void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}

Esse código foi adaptado do Instructables.
Link: https://www.instructables.com/Arduino-Text-to-Morse-code/


Funcionamento

https://blog.eletrogate.com/wp-content/uploads/2023/03/videomorse.mp4

Como podemos ver no monitor serial , o código pegou a palavra e traduziu para o morse e ativou o buzzer de acordo se era um ponto ou um traço.


Sobre o Autor


Arthur Almeida

Estudante do Ensino médio , aficionado por criar novos projetos eletrônicos e automações, principalmente com o Arduino. No meu tempo livre eu gosto de pesquisar sobre novas tecnologias e tento criar projetos com elas.


Eletrogate

6 de abril de 2023

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Sensores

Guia de Uso do Sensor de Chama com Arduino

Eletrogate1 de junho de 2023

Aprenda a usar o Sensor Infravermelho de Chama e Fogo com a placa Arduino Leonardo R3 para dar mais segurança a seus projetos.

Sensores

Guia de Uso do Sensor de Chama com Arduino

Eletrogate1 de junho de 2023

Aprenda a usar o Sensor Infravermelho de Chama e Fogo com a placa Arduino Leonardo R3 para dar mais segurança a seus projetos.

Automação Residencial

Controle de Luminosidade com LDR sem Arduino

Eletrogate25 de maio de 2023

Podemos usar um sensor LDR junto com uma placa Arduino para interpretar a variação luminosa. Mas, também podemos usar poucos componentes eletrônicos para fazer isso, sem programação.

Automação Residencial

Controle de Luminosidade com LDR sem Arduino

Eletrogate25 de maio de 2023

Podemos usar um sensor LDR junto com uma placa Arduino para interpretar a variação luminosa. Mas, também podemos usar poucos componentes eletrônicos para fazer isso, sem programação.

Módulos Wifi

Deauther com NodeMCU ESP-12E

Eletrogate18 de maio de 2023 Atualizado em: 29 maio 2023

No post de hoje, iremos aprender a fazer um deauther com o esp8266. Venha conferir!

Módulos Wifi

Deauther com NodeMCU ESP-12E

Eletrogate18 de maio de 2023 Atualizado em: 29 maio 2023

No post de hoje, iremos aprender a fazer um deauther com o esp8266. Venha conferir!

Componentes Eletronicos

Conhecendo a Pastilha Piezoelétrica

Eletrogate11 de maio de 2023

Como converter energia mecânica em energia elétrica e ainda usar o Arduino para gerenciar isso tudo.

Componentes Eletronicos

Conhecendo a Pastilha Piezoelétrica

Eletrogate11 de maio de 2023

Como converter energia mecânica em energia elétrica e ainda usar o Arduino para gerenciar isso tudo.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

contato@eletrogate.com


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.