Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* This program translates characters and full strings into blinking morse code on the Duinobot LED*/
- /* Some constants that will never change for the purpose of this exercise.*/
- const int ledPin = 13;
- const int dotDelay = 250;
- const int dashDelay = 3*dotDelay;
- /* Setup led pin and Serial console at 9600baud*/
- void setup()
- {
- pinMode(ledPin, OUTPUT);
- Serial.begin(9600);
- }
- /* Shows a dotDelay with proper delay using LED*/
- void show_dot()
- {
- digitalWrite(ledPin,HIGH);
- delay(dotDelay);
- digitalWrite(ledPin,LOW);
- delay(dotDelay);
- }
- /* Shows a dashDelay with proper delay using LED*/
- void show_dash()
- {
- digitalWrite(ledPin,HIGH);
- delay(dashDelay);
- digitalWrite(ledPin,LOW);
- delay(dotDelay);
- }
- /* Function for blinking based on letters, accepts one character to keep things simple.*/
- void blink(char ch)
- {
- /* Switch statement with case for each letter to blink*/
- switch(ch)
- {
- case 'a':
- show_dot();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'b':
- show_dash();
- show_dot();
- show_dot();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'c':
- show_dash();
- show_dot();
- show_dash();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'd':
- show_dash();
- show_dot();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'e':
- show_dot();
- delay (2*dotDelay);
- break;
- case 'f':
- show_dot();
- show_dot();
- show_dash();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'g':
- show_dash();
- show_dash();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'h':
- show_dot();
- show_dot();
- show_dot();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'i':
- show_dot();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'j':
- show_dot();
- show_dash();
- show_dash();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'k':
- show_dash();
- show_dot();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'l':
- show_dot();
- show_dash();
- show_dot();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'm':
- show_dash();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'n':
- show_dash();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'o':
- show_dash();
- show_dash();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'p':
- show_dot();
- show_dash();
- show_dash();
- show_dot();
- delay (2*dotDelay);
- break;
- case 'q':
- show_dash();
- show_dash();
- show_dot();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'r':
- show_dot();
- show_dash();
- show_dot();
- delay (2*dotDelay);
- break;
- case 's':
- show_dot();
- show_dot();
- show_dot();
- delay (2*dotDelay);
- break;
- case 't':
- show_dash();
- delay (2*dotDelay);
- break;
- case 'u':
- show_dot();
- show_dot();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'v':
- show_dot();
- show_dot();
- show_dot();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'w':
- show_dot();
- show_dash();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'x':
- show_dash();
- show_dot();
- show_dot();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'y':
- show_dash();
- show_dot();
- show_dash();
- show_dash();
- delay (2*dotDelay);
- break;
- case 'z':
- show_dash();
- show_dash();
- show_dot();
- show_dot();
- delay (2*dotDelay);
- break;
- /* delay for space (new word)*/
- case ' ':
- delay(6*dotDelay);
- Serial.println("DEBUG: Delay due to new word");
- break;
- }
- }
- void blinkString(String s)
- {
- /* Blink a string by indexing each letter into a single character and sending it to the blink function*/
- s.toLowerCase();
- for (int x = 0; x < s.length(); x++)
- {
- blink((char)s[x]);
- Serial.print ("DEBUG: Blinked a \"");
- Serial.print((char)s[x]);
- Serial.print("\"");
- Serial.println();
- }
- }
- void loop()
- {
- blinkString("ayy lmao");
- delay(6*dotDelay);
- Serial.println("DEBUG: Repeat loop");
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement