Connect a buzzer using D7 as vcc and D4 as gnd. Enter what you want to convert to morse using serial
Dependencies: mbed
main.cpp
00001 #include "mbed.h" 00002 00003 Serial pc(USBTX, USBRX); 00004 DigitalOut led(D7); 00005 DigitalOut gnd(D4); 00006 00007 //0=dot,1=dash, 2=space 00008 //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. 00009 int morseArray[37][5]={ 00010 {0,1,3,3,3},/*A*/ {1,0,0,0,3},/*B*/ {1,0,1,0,3},/*C*/ {0,3,3,3,3},/*D*/ 00011 {0,0,0,0,3},/*E*/ {1,1,0,3,3},/*F*/ {1,1,0,3,3},/*G*/ {0,0,0,0,3},/*H*/ 00012 {0,0,3,3,3},/*I*/ {0,1,1,1,3},/*J*/ {1,0,1,3,3},/*K*/ {0,1,0,0,3},/*L*/ 00013 {1,1,3,3,3},/*M*/ {1,0,3,3,3},/*N*/ {1,1,1,3,3},/*O*/ {0,1,1,0,3},/*P*/ 00014 {1,1,0,1,3},/*Q*/ {0,1,0,3,3},/*R*/ {0,0,0,3,3},/*S*/ {1,3,3,3,3},/*T*/ 00015 {0,0,1,3,3},/*U*/ {0,0,0,1,3},/*V*/ {0,1,1,3,3},/*W*/ {1,0,0,1,3},/*X*/ 00016 {1,0,1,1,3},/*Y*/ {1,1,0,0,3},/*Z*/ {1,1,1,1,1},/*0*/ {0,1,1,1,1},/*1*/ 00017 {0,0,1,1,1},/*2*/ {0,0,0,1,1},/*3*/ {0,0,0,0,1},/*4*/ {0,0,0,0,0},/*5*/ 00018 {1,0,0,0,0},/*6*/ {1,1,0,0,0},/*7*/ {1,1,1,0,0},/*8*/ {1,1,1,1,0},/*9*/ 00019 {2,3,3,3,3}/*space */ 00020 }; 00021 float unitInSeconds=(float)0.05; 00022 float dot=unitInSeconds; 00023 float dash=unitInSeconds*(float)3; 00024 float internalLetterSepeator=dot; 00025 float letterSeperator=dash; 00026 float space= unitInSeconds*(float)7; 00027 char sentence[100]; 00028 00029 void morse(char letter); 00030 00031 void beep(int type); 00032 00033 00034 int main() 00035 { 00036 gnd=0; 00037 led=0; 00038 printf("Enter the sentence you want to morse\r\n"); 00039 int count = 0; 00040 while (count < (99)) { 00041 sentence[count] = pc.getc(); 00042 if ((sentence[count] == 0x0a) || (sentence[count] == 0x0d)) // end on a carriage return or a line feed. 00043 break; 00044 count ++; 00045 } 00046 00047 sentence[count] = 0; 00048 printf("you entered: %s\r\n",sentence); 00049 00050 while (true) { 00051 00052 for (int i =0; i < sizeof(sentence); i++) { 00053 morse(sentence[i]); 00054 } 00055 wait(10*space); 00056 00057 } 00058 } 00059 00060 void morse(char letter) 00061 { 00062 switch (letter) 00063 { 00064 case 'A':case 'a':{for (int i=0;i<5;i++)beep(morseArray[0][i]);wait(dash); break;} 00065 case 'B':case 'b':{for (int i=0;i<5;i++)beep(morseArray[1][i]);wait(dash); break;} 00066 case 'C':case 'c':{for (int i=0;i<5;i++)beep(morseArray[2][i]);wait(dash); break;} 00067 case 'D':case 'd':{for (int i=0;i<5;i++)beep(morseArray[3][i]);wait(dash); break;} 00068 case 'E':case 'e':{for (int i=0;i<5;i++)beep(morseArray[4][i]);wait(dash); break;} 00069 case 'F':case 'f':{for (int i=0;i<5;i++)beep(morseArray[5][i]);wait(dash); break;} 00070 case 'G':case 'g':{for (int i=0;i<5;i++)beep(morseArray[6][i]);wait(dash); break;} 00071 case 'H':case 'h':{for (int i=0;i<5;i++)beep(morseArray[7][i]);wait(dash); break;} 00072 case 'I':case 'i':{for (int i=0;i<5;i++)beep(morseArray[8][i]);wait(dash); break;} 00073 case 'J':case 'j':{for (int i=0;i<5;i++)beep(morseArray[9][i]);wait(dash); break;} 00074 case 'K':case 'k':{for (int i=0;i<5;i++)beep(morseArray[10][i]);wait(dash); break;} 00075 case 'L':case 'l':{for (int i=0;i<5;i++)beep(morseArray[11][i]);wait(dash); break;} 00076 case 'M':case 'm':{for (int i=0;i<5;i++)beep(morseArray[12][i]);wait(dash); break;} 00077 case 'N':case 'n':{for (int i=0;i<5;i++)beep(morseArray[13][i]);wait(dash); break;} 00078 case 'O':case 'o':{for (int i=0;i<5;i++)beep(morseArray[14][i]);wait(dash); break;} 00079 case 'P':case 'p':{for (int i=0;i<5;i++)beep(morseArray[15][i]);wait(dash); break;} 00080 case 'Q':case 'q':{for (int i=0;i<5;i++)beep(morseArray[16][i]);wait(dash); break;} 00081 case 'R':case 'r':{for (int i=0;i<5;i++)beep(morseArray[17][i]);wait(dash); break;} 00082 case 'S':case 's':{for (int i=0;i<5;i++)beep(morseArray[18][i]);wait(dash); break;} 00083 case 'T':case 't':{for (int i=0;i<5;i++)beep(morseArray[19][i]);wait(dash); break;} 00084 case 'U':case 'u':{for (int i=0;i<5;i++)beep(morseArray[20][i]);wait(dash); break;} 00085 case 'V':case 'v':{for (int i=0;i<5;i++)beep(morseArray[21][i]);wait(dash); break;} 00086 case 'W':case 'w':{for (int i=0;i<5;i++)beep(morseArray[22][i]);wait(dash); break;} 00087 case 'X':case 'x':{for (int i=0;i<5;i++)beep(morseArray[23][i]);wait(dash); break;} 00088 case 'Y':case 'y':{for (int i=0;i<5;i++)beep(morseArray[24][i]);wait(dash); break;} 00089 case 'Z':case 'z':{for (int i=0;i<5;i++)beep(morseArray[25][i]);wait(dash); break;} 00090 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;} 00091 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;} 00092 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;} 00093 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;} 00094 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;} 00095 case ' ':{for (int i=0;i<5;i++)beep(morseArray[36][i]);wait(dash); break;} 00096 00097 } 00098 } 00099 00100 void beep(int type) 00101 { 00102 switch(type) 00103 { 00104 case 0:{ 00105 led=1; 00106 printf("dot "); 00107 wait(dot); 00108 led=0; 00109 wait(dot); 00110 break; 00111 } 00112 case 1:{ 00113 led=1; 00114 printf("dash "); 00115 wait(dash); 00116 led=0; 00117 wait(dot); 00118 break; 00119 } 00120 case 2:{ 00121 led=0; 00122 printf("space "); 00123 wait(space); 00124 break; 00125 } 00126 default:{ 00127 break; 00128 } 00129 } 00130 }
Generated on Tue Jul 12 2022 20:27:46 by
1.7.2