MarinV
Published

Simplest Morse Code Translator I Could Make (I think... )

A Morse Code translator using simple commands! (Currently working just with letters)

IntermediateFull instructions provided327
Simplest Morse Code Translator I Could Make (I think... )

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Resistor 10k ohm
Resistor 10k ohm
×1
5 mm LED: Red
5 mm LED: Red
×1
Buzzer
Buzzer
×1
Jumper wires (generic)
Jumper wires (generic)
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Schematic

Code

The code

Arduino
All of the void parts are made to make other commands easier, you just call them in later in the code.
String morse;
char slovo;
const int ton = 2250;

//morse - pomoc:
void crta(){
  tone(9, ton); 
  digitalWrite(4, HIGH); 
  delay(300);
}
void tocka(){
  tone(9, ton);
  digitalWrite(4, HIGH); 
  delay(100);
}
void pauza(){
  noTone(9);
  digitalWrite(4, LOW);
  delay(40);
}
void kraj(){
  noTone(9);
  digitalWrite(4, LOW); 
  delay(250);
}

//abeceda (ENG):
void a(){
  tocka();
  pauza();
  crta();
  kraj();
}
void b(){
  crta();
  pauza();
  tocka();
  pauza();
  tocka();
  pauza();
  tocka();
  kraj();
}
void c(){
  crta();
  pauza();
  tocka();
  pauza();
  crta();
  pauza();
  tocka();
  kraj();
}
void d(){
  crta();
  pauza();
  tocka();
  pauza();
  tocka();
  kraj();
}
void e(){
  tocka();
  kraj();
}
void f(){
  tocka();
  pauza();
  tocka();
  pauza();
  crta();
  pauza();
  tocka();
  kraj();
}
void g(){
  crta();
  pauza();
  crta();
  pauza();
  tocka();
  kraj();
}
void h(){
  tocka();
  pauza();
  tocka();
  pauza();
  tocka();
  pauza();
  tocka();
  kraj();
}
void i(){
  tocka();
  pauza();
  tocka();
  kraj();
}
void j(){
  tocka();
  pauza();
  crta();
  pauza();
  crta();
  pauza();
  crta();
  kraj();
}
void k(){
  crta();
  pauza();
  tocka();
  pauza();
  crta();
  kraj();
}
void l(){
  tocka();
  pauza();
  crta();
  pauza();
  tocka();
  pauza();
  tocka();
  kraj();
}
void m(){
  crta();
  pauza();
  crta();
  kraj();
}
void n(){
  crta();
  pauza();
  tocka();
  kraj();
}
void o(){
  crta();
  pauza();
  crta();
  pauza();
  crta();
  kraj();
}
void p(){
  tocka();
  pauza();
  crta();
  pauza();
  crta();
  pauza();
  tocka();
  kraj();
}
void q(){
  crta();
  pauza();
  crta();
  pauza();
  tocka();
  pauza();
  crta();
  kraj();
}
void r(){
  tocka();
  pauza();
  crta();
  pauza();
  tocka();
  kraj();
}
void s(){
  tocka();
  pauza();
  tocka();
  pauza();
  tocka();
  kraj();
}
void t(){
  crta();
  kraj();
}
void u(){
  tocka();
  pauza();
  tocka();
  pauza();
  crta();
  kraj();
}
void v(){
  tocka();
  pauza();
  tocka();
  pauza();
  tocka();
  pauza();
  crta();
  kraj();
}
void w(){
  tocka();
  pauza();
  crta();
  pauza();
  crta();
  kraj();
}
void x(){
  crta();
  pauza();
  tocka();
  pauza();
  tocka();
  pauza();
  crta();
  kraj();
}
void y(){
  crta();
  pauza();
  tocka();
  pauza();
  crta();
  pauza();
  crta();
  kraj();
}
void z(){
  crta();
  pauza();
  crta();
  pauza();
  tocka();
  pauza();
  tocka();
  kraj();
}

void poruka_u_morse(){
  if(slovo == 'a' || slovo == 'A'){
    Serial.print(".- ");
    a();
  }
  if(slovo == 'b' || slovo == 'B'){
    Serial.print("-... ");
    b();
  }
  if(slovo == 'c' || slovo == 'C'){
    Serial.print("-.-. ");
    c();
  }
  if(slovo == 'd' || slovo == 'D'){
    Serial.print("-.. ");
    d();
  }
  if(slovo == 'e' || slovo == 'E'){
    Serial.print(". ");
    e();
  }
  if(slovo == 'f' || slovo == 'F'){
    Serial.print("..-. ");
    f();
  }
  if(slovo == 'g' || slovo == 'G'){
    Serial.print("--. ");
    g();
  }
  if(slovo == 'h' || slovo == 'H'){
    Serial.print(".... ");
    h();
  }
  if(slovo == 'i' || slovo == 'I'){
    Serial.print(".. ");
    i();
  }
  if(slovo == 'j' || slovo == 'J'){
    Serial.print(".--- ");
    j();
  }
  if(slovo == 'k' || slovo == 'K'){
    Serial.print("-.- ");
    k();
  }
  if(slovo == 'l' || slovo == 'L'){
    Serial.print(".-.. ");
    l();
  }
  if(slovo == 'm' || slovo == 'M'){
    Serial.print("-- ");
    m();
  }
  if(slovo == 'n' || slovo == 'N'){
    Serial.print("-. ");
    n();
  }
  if(slovo == 'o' || slovo == 'O'){
    Serial.print("--- ");
    o();
  }
  if(slovo == 'p' || slovo == 'P'){
    Serial.print(".--. ");
    p();
  }
  if(slovo == 'q' || slovo == 'Q'){
    Serial.print("--.- ");
    q();
  }
  if(slovo == 'r' || slovo == 'R'){
    Serial.print(".-. ");
    r();
  }
  if(slovo == 's' || slovo == 'S'){
    Serial.print("... ");
    s();
  }
  if(slovo == 't' || slovo == 'T'){
    Serial.print("- ");
    t();
  }
  if(slovo == 'u' || slovo == 'U'){
    Serial.print("..- ");
    u();
  }
  if(slovo == 'v' || slovo == 'V'){
    Serial.print("...- ");
    v();
  }
  if(slovo == 'w' || slovo == 'W'){
    Serial.print(".-- ");
    w();
  }
  if(slovo == 'x' || slovo == 'X'){
    Serial.print("-..- ");
    x();
  }
  if(slovo == 'y' || slovo == 'Y'){
    Serial.print("-.-- ");
    y();
  }
  if(slovo == 'z' || slovo == 'Z'){
    Serial.print("--.. ");
    z();
  }

  if(slovo == ' '){
    Serial.print("/ ");
    delay(550);
  }
}


void setup() {
  pinMode(4, OUTPUT); //LED
  pinMode(9, OUTPUT); //spiker
  Serial.setTimeout(25);
  Serial.begin(9600);
}

void loop() {
  while(Serial.available()){

    String poruka = Serial.readString();
    Serial.print("\nPoruka: ");
    Serial.println(poruka);

    Serial.print("Morse: \n");
    for(int i=0; i<poruka.length(); i++){
      slovo = poruka.charAt(i);
      poruka_u_morse();
    }

    if(i>poruka.length()) Serial.print("\n");
  }
}

Credits

MarinV

MarinV

0 projects • 0 followers

Comments