Project tutorial
The Morse Reborn

The Morse Reborn

This project lets you write on an LCD using Morse code.

  • 8 views
  • 0 comments
  • 0 respects

Components and supplies

Apps and online services

About this project

Since I was a kid I was obsessed with morse code and electronics. When I discover arduino and its potencial I decided to make a telegraph with my arduino.

This proyect lets you write in an lcd using the morse code. One button for point other button for line, and other button to print.

Code

CodeArduino
/*
 * Nombre del programa: morserenacido.ino
 * Descripción del programa: Este programa permite escribir en un display mediante clave morse. Requiere de un circuito utilizando un display lcd de 16 x 2, tres botones, y un arduino genuino uno.
 * Boton 1: Raya
 * Boton 2 : Punto
 * Boton 3 : Termina el caracter.
 * 
 * Desarrollo: Cesar Gibran Hernandez Orozco
 * Fecha de creación: 29/05/2019
 * Versión: 1.0
 * Correo electronico: supergxp@gmail.com
 * 
 */
const int punto = 12;
const int raya = 13;
const int reset = 5;

int puntoon = HIGH;
int rayaon = HIGH;
int reseton = HIGH;
String Letra;
int rayaon2 = HIGH;
int puntoon2 = HIGH;
int envio2 = HIGH;
int renglon = 0;
int columna = 0;
String envio;

#include <LiquidCrystal.h>

LiquidCrystal lcd (2, 3, 7, 9, 8, 10);

byte as[8]={
  0b00000,
  0b00100,
  0b01010,
  0b10001,
  0b11111,
  0b10001,
  0b10001,
  0b00000
};

byte bs[8]={
  0b00000,
  0b11100,
  0b10010,
  0b10010,
  0b11100,
  0b10010,
  0b10010,
  0b11100
};

byte resets[8]={
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000 
};

byte cs[8]={
  0b00000,
  0b01110,
  0b10000,
  0b10000,
  0b10000,
  0b10000,
  0b01110,
  0b00000 
};

byte ds[8]={
  0b00000,
  0b11100,
  0b10010,
  0b10010,
  0b10010,
  0b10010,
  0b11100,
  0b00000 
};


void setup() {
  Serial.begin(9600);
  pinMode(rayaon, INPUT);
  pinMode(puntoon, INPUT);
  pinMode(reseton, INPUT);

   lcd.begin(16, 2);
   lcd.createChar(2, as);
   lcd.createChar(3, bs);
   lcd.createChar(4, resets);
   lcd.createChar(5, cs);
   lcd.createChar(6, ds);
   
   
  Letra = String();
  envio = String();
   /*
   lcd.print("I ");
   lcd.write(byte(0)); // when calling lcd.write() '0' must be cast as a byte
   lcd.print(" Arduino! ");
   lcd.write((byte) 1);*/
   
}

void loop() {

rayaon = digitalRead(raya);
puntoon =digitalRead(punto);
reseton =digitalRead(reset);

int sensorReading = analogRead(A0);
int delayTime = map(sensorReading, 0, 1023, 200, 1000);




if(rayaon == HIGH){
  rayaon2 = HIGH;
}

if(puntoon == HIGH){
  puntoon2 = HIGH;
}

if(reseton == HIGH){
  envio2 = HIGH;
}
if(rayaon == LOW && rayaon2 == HIGH){
  Letra = Letra + "R";
  Serial.println(Letra);
  //delay(50);
  rayaon2 = rayaon;
}

if(puntoon == LOW && puntoon2 == HIGH){
  Letra = Letra + "P";
  Serial.println(Letra);
  //delay(50);
  puntoon2 = puntoon;
}

if(reseton == LOW && envio2 == HIGH){
  envio2 = reseton;
  Serial.println("entro");
  /*lcd.setCursor(columna, renglon);
  
   Letra = "";
   envio = "";
   columna = columna +1;*/


 if(Letra == "PR"){
   envio = "A";
   Serial.println(envio);
   
   Letra = "";
   columna = columna + 1;
 }

  else if(Letra == "RPPP"){
   envio = "B";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
 
  else if(Letra == "RPP"){
   envio = "D";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
 
   else if(Letra == "RPRP"){
   envio = "C";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }


   else if(Letra == "P"){
   envio = "E";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

   else if(Letra == "PPRP"){
   envio = "F";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

   else if(Letra == "RRP"){
   envio = "G";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

   else if(Letra == "PPPP"){
   envio = "H";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

   else if(Letra == "PP"){
   envio = "I";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

   else if(Letra == "PRRR"){
   envio = "J";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

    else if(Letra == "RPR"){
   envio = "K";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }


   else if(Letra == "PRPP"){
   envio = "L";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

    else if(Letra == "RR"){
   envio = "M";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
    else if(Letra == "RP"){
   envio = "N";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }


    else if(Letra == "RRR"){
   envio = "O";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
    else if(Letra == "PRRP"){
   envio = "P";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
    else if(Letra == "RRPR"){
   envio = "Q";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
    else if(Letra == "PRP"){
   envio = "R";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

    else if(Letra == "PPP"){
   envio = "S";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
    else if(Letra == "R"){
   envio = "T";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
    else if(Letra == "PPR"){
   envio = "U";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

    else if(Letra == "PPPR"){
   envio = "V";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

    else if(Letra == "PRR"){
   envio = "W";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }

    else if(Letra == "RPPR"){
   envio = "X";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
    else if(Letra == "RPRR"){
   envio = "Y";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
    else if(Letra == "RRPP"){
   envio = "Z";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
    else if(Letra == "PRRRR"){
   envio = "1";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "PPRRR"){
   envio = "2";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "PPPRR"){
   envio = "3";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "PPPPR"){
   envio = "4";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "PPPPP"){
   envio = "5";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "RPPPP"){
   envio = "6";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "RRPPP"){
   envio = "7";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "RRRPP"){
   envio = "8";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "RRRRP"){
   envio = "9";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "RRRRR"){
   envio = "0";
   Serial.println(envio);
   Letra = "";
   columna = columna + 1;
 }
  else if(Letra == "PPPPPP"){
   lcd.setCursor(columna, renglon);
   lcd.write(4);
   Letra = "";
   columna = columna + 1;
 }
 else if(Letra == "RRRRRR"){
   renglon = 1;
   columna = 17;
   Letra = "";
   
 }
 
  else{
    Letra = "";
  }
   lcd.setCursor(columna-1, renglon);
 lcd.print(envio);
 envio = "";
}
 

if(renglon == 1 && columna == 17){
  renglon = 0;
  columna = 0;

for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}
 renglon = 0;
  columna = 0;
}

if(columna == 16){
  renglon = 1;
  columna = 0;
 
}

























}

Schematics

Sketch
Sketch rpkhittqns

Comments

Similar projects you might like

Adaptive LED Morse Code Decoder and Timer Interrupt

Project tutorial by shjin

  • 1,895 views
  • 0 comments
  • 15 respects

BigTrak Reborn

Project tutorial by MichaelTiBear

  • 3,108 views
  • 0 comments
  • 8 respects

Magic Morse on Arduino

Project tutorial by Ray Burnette

  • 25,808 views
  • 8 comments
  • 38 respects

Morse Code Transceiver

Project tutorial by Achindra Bhatnagar

  • 17,262 views
  • 13 comments
  • 92 respects

Morse Code Translator

Project showcase by Team ONYX

  • 15,227 views
  • 5 comments
  • 17 respects

Morse Code ( S.O.S )

Project showcase by Hussien Mohamed

  • 5,891 views
  • 1 comment
  • 7 respects
Add projectSign up / Login