Guest User

CW encoder for Arduino

a guest
Jul 7th, 2017
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.45 KB | None | 0 0
  1. //////////////////////////////////////
  2. // MADE BY SHARPY NIORO && SUNSHINE //
  3. //////////////////////////////////////
  4. //        JUST FOR LULZ [c]         //
  5. //////////////////////////////////////
  6.  
  7. unsigned long dahLen;
  8. String code, string; // THE CODE OF LAST CHAR AND STRING OF CHARS YOU'VE ENTERED
  9.  
  10. void setup() {
  11.  dahLen = 250; // LENGTH OF DAH IN MS
  12.  Serial.begin(9600); // BEGINS THE MONOLOGUE
  13.  pinMode(13, OUTPUT); // PREPARES THE LED TO BE USED
  14.  pinMode(9, OUTPUT); // PREPARES THE SPEAKER TO MAKE THE 'BEEEEE' SOUNDS
  15. }
  16.  
  17. void loop() // STARTS THE LOOP
  18. {
  19.   if (Serial.available() > 0) // IF SOMETHING NEW IN SERIAL MONITOR (SM)
  20.   {
  21.     string = Serial.readString(); // READS WHAT YOU'VE ENTERED
  22.     string.toUpperCase(); // FEEDS THE LETTERS TO MAKE THEM BIGGER
  23.     convert(); // SUMMONS THE ANGELS TO ENCODE THE MORSE
  24.   }
  25. }
  26.  
  27. void convert()
  28. {
  29.   static String letters[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-",
  30.                              ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", ".-.-.-", "--..--", "-----", ".----", "..---", "...--",
  31.                              "....-", ".....", "-....", "--...", "---..", "----.", "---.", "..--..", ".--.-.", "---...", ".----.", "-....-", "-..-.",
  32.                              ".-..-.", "-...-"
  33.                             }; // ARRAY OF MORSE
  34.   static char Alphabet[] = {'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', '.', ',',
  35.                             '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', '?', '@', ':', '\'', '-', '/', '"', '=', ' ', ']'
  36.                            }; // ARRAY OF ENGLISH CHARS
  37.   int i = 0, i2 = 0; // SET THE indexes TO 0
  38.   while (i2 != string.length()) // WHILE THERE ARE CHARACTERS IN YOUR STRING
  39.   {
  40.     while (Alphabet[i] != ']') // WHILE NOT ARRAY ENDED [COULD BE MADE A LOT BETTER BUT I DON'T HAVE A TIME]
  41.     {
  42.       if (Alphabet[i] == string[i2]) // IF CURRENT LETTER FOUND IN THE ARRAY
  43.       {
  44.         code = letters[i]; // ASSIGNS THE CODE FOR THE CURRENT LETTER
  45.         play(string[i2 + 1] == ' '); // PLAYES THE 'BEE' SOUND
  46.         i = 0;
  47.         break;
  48.       }
  49.       i++; // GROW UP
  50.     }
  51.     code = ""; // RESETS THE code VALUE
  52.     i2++; // GROW UP SEQUEL
  53.   }
  54.   Serial.println(); // BREAKS THE LINE
  55.   string = ""; // KILLS THE STRING
  56. }
  57.  
  58. void playUnit(bool dah)
  59. {
  60.   tone(9, 400); // BEATS THE SPEAKER WITH ELECTRICITY TO MAKE IT MAKE THE 'BEEE' SOUND
  61.   delay(dah ? dahLen : dahLen/3); // WAITS FOR THE TIME WHEN YOU'LL FIND THE GIRLFRIEND [FOREVER]
  62.   noTone(9); // SHUTS UP THE SPEAKER
  63. }
  64. void play(bool eow)
  65. {
  66.   int i = 0; // RESETS THE index
  67.   while (i != code.length()) // WHILE THERE ARE SOME CHARS IN CODE
  68.   {
  69.     if(code[i] == '-') // IF DAH...
  70.       Serial.print("-"); // ...PRINT DAH
  71.     else // IF NOT
  72.       Serial.print("."); // PRINT NOT
  73.     playUnit(code[i] == '-'); // STARTS THE TORTURE FOR THE SPEAKER
  74.     if(i != (code.length() - 1)) // IF THIS IS NOT THE END
  75.       delay(dahLen/3); // WAIT ONE TIME UNIT
  76.     i++; // GROW UP
  77.   }
  78.   if(!eow) // IF NOT THE END OF THE WORLD (eow)...
  79.   {
  80.     Serial.print(" "); // ...PRINT THE SPACE AND TIME MAP
  81.     delay(dahLen); // ...WAIT
  82.   }
  83.   else // IF THE eow IS NEAR...
  84.   {
  85.     Serial.print(" /"); // ...PRINTS THE /
  86.     delay((dahLen/3)*7); // ...WAITS FOR THE SEVEN WONDERS TO BE BUILT
  87.   }
  88. }
Add Comment
Please, Sign In to add comment