Connect a buzzer using D7 as vcc and D4 as gnd. Enter what you want to convert to morse using serial
Dependencies: mbed
Diff: main.cpp
- Revision:
- 0:3669c33270c9
- Child:
- 1:f5b33cb527ce
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Oct 22 09:31:36 2015 +0000 @@ -0,0 +1,125 @@ +#include "mbed.h" + +Serial pc(USBTX, USBRX); +DigitalOut led(LED1); + +//0=dot,1=dash, 2=space +//1. The length of a dot is one unit.2. A dash is three units.3. The space between parts of the same letter is one unit.4. The space between letters is three units.5. The space between words is seven units. +int morseArray[37][5]={ + {0,1,3,3,3},/*A*/ {1,0,0,0,3},/*B*/ {1,0,1,0,3},/*C*/ {0,3,3,3,3},/*D*/ + {0,0,0,0,3},/*E*/ {1,1,0,3,3},/*F*/ {1,1,0,3,3},/*G*/ {0,0,0,0,3},/*H*/ + {0,0,3,3,3},/*I*/ {0,1,1,1,3},/*J*/ {1,0,1,3,3},/*K*/ {0,1,0,0,3},/*L*/ + {1,1,3,3,3},/*M*/ {1,0,3,3,3},/*N*/ {1,1,1,3,3},/*O*/ {0,1,1,0,3},/*P*/ + {1,1,0,1,3},/*Q*/ {0,1,0,3,3},/*R*/ {0,0,0,3,3},/*S*/ {1,3,3,3,3},/*T*/ + {0,0,1,3,3},/*U*/ {0,0,0,1,3},/*V*/ {0,1,1,3,3},/*W*/ {1,0,0,1,3},/*X*/ + {1,0,1,1,3},/*Y*/ {1,1,0,0,3},/*Z*/ {1,1,1,1,1},/*0*/ {0,1,1,1,1},/*1*/ + {0,0,1,1,1},/*2*/ {0,0,0,1,1},/*3*/ {0,0,0,0,1},/*4*/ {0,0,0,0,0},/*5*/ + {1,0,0,0,0},/*6*/ {1,1,0,0,0},/*7*/ {1,1,1,0,0},/*8*/ {1,1,1,1,0},/*9*/ + {2,3,3,3,3}/*space */ +}; +float unitInSeconds=(float)0.1; +float dot=unitInSeconds; +float dash=unitInSeconds*(float)3; +float internalLetterSepeator=dot; +float letterSeperator=dash; +float space= unitInSeconds*(float)7; +char sentence[100]; + +void morse(char letter); + +void beep(int type); + + +int main() +{ + led=1; + printf("Enter the sentence you want to morse\r\n"); + int count = 0; + while (count < (99)) { + sentence[count] = pc.getc(); + if ((sentence[count] == 0x0a) || (sentence[count] == 0x0d)) // end on a carriage return or a line feed. + break; + count ++; + } + + sentence[count] = 0; + printf("you entered: %s\r\n",sentence); + + while (true) { + + for (int i =0; i < sizeof(sentence); i++) { + morse(sentence[i]); + } + wait(2*space); + + } +} + +void morse(char letter) +{ + switch (letter) + { + case 'A':case 'a':{for (int i=0;i<5;i++)beep(morseArray[0][i]);wait(dash); break;} + case 'B':case 'b':{for (int i=0;i<5;i++)beep(morseArray[1][i]);wait(dash); break;} + case 'C':case 'c':{for (int i=0;i<5;i++)beep(morseArray[2][i]);wait(dash); break;} + case 'D':case 'd':{for (int i=0;i<5;i++)beep(morseArray[3][i]);wait(dash); break;} + case 'E':case 'e':{for (int i=0;i<5;i++)beep(morseArray[4][i]);wait(dash); break;} + case 'F':case 'f':{for (int i=0;i<5;i++)beep(morseArray[5][i]);wait(dash); break;} + case 'G':case 'g':{for (int i=0;i<5;i++)beep(morseArray[6][i]);wait(dash); break;} + case 'H':case 'h':{for (int i=0;i<5;i++)beep(morseArray[7][i]);wait(dash); break;} + case 'I':case 'i':{for (int i=0;i<5;i++)beep(morseArray[8][i]);wait(dash); break;} + case 'J':case 'j':{for (int i=0;i<5;i++)beep(morseArray[9][i]);wait(dash); break;} + case 'K':case 'k':{for (int i=0;i<5;i++)beep(morseArray[10][i]);wait(dash); break;} + case 'L':case 'l':{for (int i=0;i<5;i++)beep(morseArray[11][i]);wait(dash); break;} + case 'M':case 'm':{for (int i=0;i<5;i++)beep(morseArray[12][i]);wait(dash); break;} + case 'N':case 'n':{for (int i=0;i<5;i++)beep(morseArray[13][i]);wait(dash); break;} + case 'O':case 'o':{for (int i=0;i<5;i++)beep(morseArray[14][i]);wait(dash); break;} + case 'P':case 'p':{for (int i=0;i<5;i++)beep(morseArray[15][i]);wait(dash); break;} + case 'Q':case 'q':{for (int i=0;i<5;i++)beep(morseArray[16][i]);wait(dash); break;} + case 'R':case 'r':{for (int i=0;i<5;i++)beep(morseArray[17][i]);wait(dash); break;} + case 'S':case 's':{for (int i=0;i<5;i++)beep(morseArray[18][i]);wait(dash); break;} + case 'T':case 't':{for (int i=0;i<5;i++)beep(morseArray[19][i]);wait(dash); break;} + case 'U':case 'u':{for (int i=0;i<5;i++)beep(morseArray[20][i]);wait(dash); break;} + case 'V':case 'v':{for (int i=0;i<5;i++)beep(morseArray[21][i]);wait(dash); break;} + case 'W':case 'w':{for (int i=0;i<5;i++)beep(morseArray[22][i]);wait(dash); break;} + case 'X':case 'x':{for (int i=0;i<5;i++)beep(morseArray[23][i]);wait(dash); break;} + case 'Y':case 'y':{for (int i=0;i<5;i++)beep(morseArray[24][i]);wait(dash); break;} + case 'Z':case 'z':{for (int i=0;i<5;i++)beep(morseArray[25][i]);wait(dash); break;} + case '0':{for (int i=0;i<5;i++)beep(morseArray[26][i]);wait(dash); break;} case '1':{for (int i=0;i<5;i++)beep(morseArray[27][i]);wait(dash); break;} + case '2':{for (int i=0;i<5;i++)beep(morseArray[28][i]);wait(dash); break;} case '3':{for (int i=0;i<5;i++)beep(morseArray[29][i]);wait(dash); break;} + case '4':{for (int i=0;i<5;i++)beep(morseArray[30][i]);wait(dash); break;} case '5':{for (int i=0;i<5;i++)beep(morseArray[31][i]);wait(dash); break;} + case '6':{for (int i=0;i<5;i++)beep(morseArray[32][i]);wait(dash); break;} case '7':{for (int i=0;i<5;i++)beep(morseArray[33][i]);wait(dash); break;} + case '8':{for (int i=0;i<5;i++)beep(morseArray[34][i]);wait(dash); break;} case '9':{for (int i=0;i<5;i++)beep(morseArray[35][i]);wait(dash); break;} + case ' ':{for (int i=0;i<5;i++)beep(morseArray[36][i]);wait(dash); break;} + + } +} + +void beep(int type) +{ + switch(type) + { + case 0:{ + led=1; + wait(dot); + led=0; + wait(dot); + break; + } + case 1:{ + led=1; + wait(dash); + led=0; + wait(dot); + break; + } + case 2:{ + led=0; + wait(space); + break; + } + case 3:{ + break; + } + } +} \ No newline at end of file