Adhyoksh Jyoti
Published

Morse code encoder

Simple project to convert your message into morse code.

IntermediateProtip30 minutes4,693
Morse code encoder

Things used in this project

Story

Read more

Schematics

Circuit schematic

Code

Arduino code

Arduino
int t=75,pin=3;
void morse(char ch)
{
  if(ch=='a')
  {
    digitalWrite(pin,HIGH);
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='b')
  {
    digitalWrite(pin,HIGH);  //Dash
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  //Dot
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  //Dot
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  //Dot
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='c')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='d')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='e')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='f')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='g')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='h')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='i')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='j')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='k')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='l')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='m')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='n')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='o')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='p')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='q')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='r')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='s')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='t')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='u')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='v')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='w')
  {
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='x')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='y')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch=='z')
  {
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(3*t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(t);
    /*---------------------------------*/
    digitalWrite(pin,HIGH);  
    delay(t);
    digitalWrite(pin,LOW);
    delay(3*t);
  }
  else if(ch==' ')
  {
    delay(7*t);
  }
}
void setup() 
{
  Serial.begin(9600);
  pinMode(pin,OUTPUT);
}

void loop() 
{
  String input="";
  if(Serial.available()>0)
  {
    input=Serial.readString();
    Serial.println(input);
    int i=0;
    char ip='a';
    while(ip != '\0')
    {
      ip=input.charAt(i);       // This code gets the charcter at a particular location in the string.
      Serial.println(ip);
      morse(ip);
      i++;
    }
  }
}

Credits

Adhyoksh Jyoti

Adhyoksh Jyoti

11 projects • 9 followers
Electronics and Communication Engineering B.Tech graduate from NIT Srinagar, J&K.

Comments