Ishita Bose / Mbed 2 deprecated LightMorseCode

Dependencies:   TextLCD mbed

Committer:
ibose3
Date:
Wed Oct 21 18:06:05 2015 +0000
Revision:
0:303fe443c3d4
Takes in light from a photocell and translates it to English characters on an LCD Screen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ibose3 0:303fe443c3d4 1 #include "mbed.h"
ibose3 0:303fe443c3d4 2 #include "TextLCD.h"
ibose3 0:303fe443c3d4 3
ibose3 0:303fe443c3d4 4 TextLCD lcd(p14, p16, p17, p18, p19, p20);
ibose3 0:303fe443c3d4 5
ibose3 0:303fe443c3d4 6 int Value = 0;
ibose3 0:303fe443c3d4 7 int First = 1;
ibose3 0:303fe443c3d4 8 int printSignal = 0;
ibose3 0:303fe443c3d4 9 int clearSignal = 0;
ibose3 0:303fe443c3d4 10
ibose3 0:303fe443c3d4 11 void printChar(int val) {
ibose3 0:303fe443c3d4 12 switch(val) {
ibose3 0:303fe443c3d4 13 case 0:
ibose3 0:303fe443c3d4 14 break;
ibose3 0:303fe443c3d4 15 case 184:
ibose3 0:303fe443c3d4 16 lcd.putc('a');
ibose3 0:303fe443c3d4 17 break;
ibose3 0:303fe443c3d4 18 case 3752:
ibose3 0:303fe443c3d4 19 lcd.putc('b');
ibose3 0:303fe443c3d4 20 break;
ibose3 0:303fe443c3d4 21 case 15080:
ibose3 0:303fe443c3d4 22 lcd.putc('c');
ibose3 0:303fe443c3d4 23 break;
ibose3 0:303fe443c3d4 24 case 936:
ibose3 0:303fe443c3d4 25 lcd.putc('d');
ibose3 0:303fe443c3d4 26 break;
ibose3 0:303fe443c3d4 27 case 8:
ibose3 0:303fe443c3d4 28 lcd.putc('e');
ibose3 0:303fe443c3d4 29 break;
ibose3 0:303fe443c3d4 30 case 2792:
ibose3 0:303fe443c3d4 31 lcd.putc('f');
ibose3 0:303fe443c3d4 32 break;
ibose3 0:303fe443c3d4 33 case 3816:
ibose3 0:303fe443c3d4 34 lcd.putc('g');
ibose3 0:303fe443c3d4 35 break;
ibose3 0:303fe443c3d4 36 case 680:
ibose3 0:303fe443c3d4 37 lcd.putc('h');
ibose3 0:303fe443c3d4 38 break;
ibose3 0:303fe443c3d4 39 case 40:
ibose3 0:303fe443c3d4 40 lcd.putc('i');
ibose3 0:303fe443c3d4 41 break;
ibose3 0:303fe443c3d4 42 case 48056:
ibose3 0:303fe443c3d4 43 lcd.putc('j');
ibose3 0:303fe443c3d4 44 break;
ibose3 0:303fe443c3d4 45 case 3768:
ibose3 0:303fe443c3d4 46 lcd.putc('k');
ibose3 0:303fe443c3d4 47 break;
ibose3 0:303fe443c3d4 48 case 2984:
ibose3 0:303fe443c3d4 49 lcd.putc('l');
ibose3 0:303fe443c3d4 50 break;
ibose3 0:303fe443c3d4 51 case 952:
ibose3 0:303fe443c3d4 52 lcd.putc('m');
ibose3 0:303fe443c3d4 53 break;
ibose3 0:303fe443c3d4 54 case 232:
ibose3 0:303fe443c3d4 55 lcd.putc('n');
ibose3 0:303fe443c3d4 56 break;
ibose3 0:303fe443c3d4 57 case 15288:
ibose3 0:303fe443c3d4 58 lcd.putc('o');
ibose3 0:303fe443c3d4 59 break;
ibose3 0:303fe443c3d4 60 case 12008:
ibose3 0:303fe443c3d4 61 lcd.putc('p');
ibose3 0:303fe443c3d4 62 break;
ibose3 0:303fe443c3d4 63 case 61112:
ibose3 0:303fe443c3d4 64 lcd.putc('q');
ibose3 0:303fe443c3d4 65 break;
ibose3 0:303fe443c3d4 66 case 744:
ibose3 0:303fe443c3d4 67 lcd.putc('r');
ibose3 0:303fe443c3d4 68 break;
ibose3 0:303fe443c3d4 69 case 168:
ibose3 0:303fe443c3d4 70 lcd.putc('s');
ibose3 0:303fe443c3d4 71 break;
ibose3 0:303fe443c3d4 72 case 56:
ibose3 0:303fe443c3d4 73 lcd.putc('t');
ibose3 0:303fe443c3d4 74 break;
ibose3 0:303fe443c3d4 75 case 696:
ibose3 0:303fe443c3d4 76 lcd.putc('u');
ibose3 0:303fe443c3d4 77 break;
ibose3 0:303fe443c3d4 78 case 2744:
ibose3 0:303fe443c3d4 79 lcd.putc('v');
ibose3 0:303fe443c3d4 80 break;
ibose3 0:303fe443c3d4 81 case 3000:
ibose3 0:303fe443c3d4 82 lcd.putc('w');
ibose3 0:303fe443c3d4 83 break;
ibose3 0:303fe443c3d4 84 case 15032:
ibose3 0:303fe443c3d4 85 lcd.putc('x');
ibose3 0:303fe443c3d4 86 break;
ibose3 0:303fe443c3d4 87 case 60344:
ibose3 0:303fe443c3d4 88 lcd.putc('y');
ibose3 0:303fe443c3d4 89 break;
ibose3 0:303fe443c3d4 90 case 15272:
ibose3 0:303fe443c3d4 91 lcd.putc('z');
ibose3 0:303fe443c3d4 92 break;
ibose3 0:303fe443c3d4 93 }
ibose3 0:303fe443c3d4 94 }
ibose3 0:303fe443c3d4 95
ibose3 0:303fe443c3d4 96 void MorseCode(int tick) {
ibose3 0:303fe443c3d4 97 if(tick) {
ibose3 0:303fe443c3d4 98 printSignal = 0;
ibose3 0:303fe443c3d4 99 clearSignal = 0;
ibose3 0:303fe443c3d4 100
ibose3 0:303fe443c3d4 101 Value = Value << 1;
ibose3 0:303fe443c3d4 102 Value += 1;
ibose3 0:303fe443c3d4 103 }
ibose3 0:303fe443c3d4 104 else {
ibose3 0:303fe443c3d4 105 printSignal += 1;
ibose3 0:303fe443c3d4 106 clearSignal += 1;
ibose3 0:303fe443c3d4 107
ibose3 0:303fe443c3d4 108 Value = Value << 1;
ibose3 0:303fe443c3d4 109 }
ibose3 0:303fe443c3d4 110
ibose3 0:303fe443c3d4 111 if(First) {
ibose3 0:303fe443c3d4 112 lcd.cls();
ibose3 0:303fe443c3d4 113 First = 0;
ibose3 0:303fe443c3d4 114 }
ibose3 0:303fe443c3d4 115
ibose3 0:303fe443c3d4 116 //Prints character after 3 ticks
ibose3 0:303fe443c3d4 117 if(printSignal == 3) {
ibose3 0:303fe443c3d4 118 printChar(Value);
ibose3 0:303fe443c3d4 119 printSignal = 0;
ibose3 0:303fe443c3d4 120 Value = 0;
ibose3 0:303fe443c3d4 121 }
ibose3 0:303fe443c3d4 122
ibose3 0:303fe443c3d4 123 //Clears screen after 20 ticks
ibose3 0:303fe443c3d4 124 if(clearSignal == 20) {
ibose3 0:303fe443c3d4 125 lcd.cls();
ibose3 0:303fe443c3d4 126 clearSignal = 0;
ibose3 0:303fe443c3d4 127 }
ibose3 0:303fe443c3d4 128 }