Adhyoksh Jyoti
Published

Morse messenger

Send your messages to the receiver in Morse code.

IntermediateProtip1 hour453
Morse messenger

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();
    input.toLowerCase();
    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++;
    }
  }
}

HTML code

HTML
<html>
    <head>
        <title>Morse messenger</title>
        <script type="text/javascript" src="https://cloud.boltiot.com/static/js/boltCommands.js"></script>
        <script>setKey('{{ApiKey}}','{{Name}}');</script>
    </head>
    <body onload="serialBegin(9600)">
        <p>Enter your message:</p>
        <form>
            <input type="text" id="string"><br>
            <input type="button" value="Click to send message" onclick="serialWrite(data())" />
        </form>
        <script>
            function data()
            {
                var str=document.getElementById("string").value;
                return str;
            }
        </script>
    </body>
</html>

Credits

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

Comments

Please log in or sign up to comment.