Advertisement
jtl999

Arduino text to morse code using LED

Mar 30th, 2015
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.06 KB | None | 0 0
  1. /* This program translates characters and full strings into blinking morse code on the Duinobot LED*/
  2.  
  3. /* Some constants that will never change for the purpose of this exercise.*/
  4. const int ledPin = 13;
  5. const int dotDelay = 250;
  6. const int dashDelay = 3*dotDelay;  
  7.  
  8. /* Setup led pin and Serial console at 9600baud*/
  9. void setup()
  10. {
  11.  
  12.   pinMode(ledPin, OUTPUT);
  13.   Serial.begin(9600);
  14.  
  15. }
  16. /* Shows a dotDelay with proper delay using LED*/
  17. void show_dot()
  18. {
  19.     digitalWrite(ledPin,HIGH);
  20.     delay(dotDelay);
  21.     digitalWrite(ledPin,LOW);
  22.     delay(dotDelay);
  23. }
  24. /* Shows a dashDelay with proper delay using LED*/
  25. void show_dash()
  26. {
  27.     digitalWrite(ledPin,HIGH);
  28.     delay(dashDelay);
  29.     digitalWrite(ledPin,LOW);
  30.     delay(dotDelay);
  31. }
  32.  
  33. /* Function for blinking based on letters, accepts one character to keep things simple.*/
  34. void blink(char ch)
  35. {
  36.     /* Switch statement with case for each letter to blink*/
  37.     switch(ch)
  38.     {
  39.         case 'a':
  40.             show_dot();
  41.             show_dash();
  42.             delay (2*dotDelay);
  43.             break;
  44.         case 'b':
  45.             show_dash();
  46.             show_dot();
  47.             show_dot();
  48.             show_dot();
  49.             delay (2*dotDelay);
  50.             break;
  51.         case 'c':
  52.             show_dash();
  53.             show_dot();
  54.             show_dash();
  55.             show_dot();
  56.             delay (2*dotDelay);
  57.             break;
  58.         case 'd':
  59.             show_dash();
  60.             show_dot();
  61.             show_dot();
  62.             delay (2*dotDelay);
  63.             break;
  64.         case 'e':
  65.             show_dot();
  66.             delay (2*dotDelay);
  67.             break;
  68.         case 'f':
  69.             show_dot();
  70.             show_dot();
  71.             show_dash();
  72.             show_dot();
  73.             delay (2*dotDelay);
  74.             break;
  75.         case 'g':
  76.             show_dash();
  77.             show_dash();
  78.             show_dot();
  79.             delay (2*dotDelay);
  80.             break;
  81.         case 'h':
  82.             show_dot();
  83.             show_dot();
  84.             show_dot();
  85.             show_dot();
  86.             delay (2*dotDelay);
  87.             break;
  88.         case 'i':
  89.             show_dot();
  90.             show_dot();
  91.             delay (2*dotDelay);
  92.             break;
  93.         case 'j':
  94.             show_dot();
  95.             show_dash();
  96.             show_dash();
  97.             show_dash();
  98.             delay (2*dotDelay);
  99.             break;
  100.         case 'k':
  101.             show_dash();
  102.             show_dot();
  103.             show_dash();
  104.             delay (2*dotDelay);
  105.             break;
  106.         case 'l':
  107.             show_dot();
  108.             show_dash();
  109.             show_dot();
  110.             show_dot();
  111.             delay (2*dotDelay);
  112.             break;
  113.         case 'm':
  114.             show_dash();
  115.             show_dash();
  116.             delay (2*dotDelay);
  117.             break;
  118.         case 'n':
  119.             show_dash();
  120.             show_dot();
  121.             delay (2*dotDelay);
  122.             break;
  123.         case 'o':
  124.             show_dash();
  125.             show_dash();
  126.             show_dash();
  127.             delay (2*dotDelay);
  128.             break;
  129.         case 'p':
  130.             show_dot();
  131.             show_dash();
  132.             show_dash();
  133.             show_dot();
  134.             delay (2*dotDelay);
  135.             break;
  136.         case 'q':
  137.             show_dash();
  138.             show_dash();
  139.             show_dot();
  140.             show_dash();
  141.             delay (2*dotDelay);
  142.             break;
  143.         case 'r':
  144.             show_dot();
  145.             show_dash();
  146.             show_dot();
  147.             delay (2*dotDelay);
  148.             break;
  149.         case 's':
  150.             show_dot();
  151.             show_dot();
  152.             show_dot();
  153.             delay (2*dotDelay);
  154.             break;
  155.         case 't':
  156.             show_dash();
  157.             delay (2*dotDelay);
  158.             break;
  159.         case 'u':
  160.             show_dot();
  161.             show_dot();
  162.             show_dash();
  163.             delay (2*dotDelay);
  164.             break;
  165.         case 'v':
  166.             show_dot();
  167.             show_dot();
  168.             show_dot();
  169.             show_dash();
  170.             delay (2*dotDelay);
  171.             break;
  172.         case 'w':
  173.             show_dot();
  174.             show_dash();
  175.             show_dash();
  176.             delay (2*dotDelay);
  177.             break;
  178.         case 'x':
  179.             show_dash();
  180.             show_dot();
  181.             show_dot();
  182.             show_dash();
  183.             delay (2*dotDelay);
  184.             break;
  185.         case 'y':
  186.             show_dash();
  187.             show_dot();
  188.             show_dash();
  189.             show_dash();
  190.             delay (2*dotDelay);
  191.             break;
  192.         case 'z':
  193.             show_dash();
  194.             show_dash();
  195.             show_dot();
  196.             show_dot();
  197.             delay (2*dotDelay);
  198.             break;
  199.         /* delay for space (new word)*/
  200.         case ' ':
  201.             delay(6*dotDelay);
  202.             Serial.println("DEBUG: Delay due to new word");
  203.             break;
  204.     }
  205. }
  206. void blinkString(String s)
  207. {
  208.     /* Blink a string by indexing each letter into a single character and sending it to the blink function*/
  209.     s.toLowerCase();
  210.     for (int x = 0; x < s.length(); x++)
  211.     {
  212.         blink((char)s[x]);
  213.         Serial.print ("DEBUG: Blinked a \"");
  214.         Serial.print((char)s[x]);
  215.         Serial.print("\"");
  216.         Serial.println();
  217.     }
  218. }
  219.  
  220.  
  221.  
  222. void loop()
  223. {
  224.     blinkString("ayy lmao");
  225.     delay(6*dotDelay);
  226.     Serial.println("DEBUG: Repeat loop");
  227.  
  228.     return;
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement