Blue LED matrix (8x16) program. Gets text string through bluetooth and displays it on led matrix. Also has a clock function- get system time from a phone through bluetooth and enters clock mode. In clock mode it acts as a clock showing hours and minutes and blinking led every second. Clock mode can be broken if a text string is received through bluetooth.
Dependencies: mbed
Diff: text.cpp
- Revision:
- 2:3cc1e2dec7a2
- Child:
- 3:35a47548d29d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/text.cpp Wed Jun 25 16:24:03 2014 +0000 @@ -0,0 +1,408 @@ +#include "text.h" +#include "mbed.h" + +Serial pc(USBTX, USBRX); + +text::text(){ +}; + +void text::generate(string input){ + LocalFileSystem local("local"); + stringLength = input.length(); + pc.printf("\r\nStarting generation, string length: %i", stringLength); + FILE *fp = fopen("/local/out.txt", "w"); + pc.printf("\r\nOpened a text file out.txt"); + calcLength(input); + fprintf(fp, "%i\r\n", length); + for (int i = 0; i < stringLength; i++){ + pc.printf("\r\nTaking letter "); + pc.putc(input.at(i)); + letters(input.at(i)); + pc.printf("\r\nDone with "); + pc.putc(input.at(i)); + tempCheck(); + for (int j = 0; j < letSize; j++){ + for (int g = 7; g > (-1); g--){ + fprintf(fp, "%i", temp[g][j]); + } + fprintf(fp,"\r\n"); + } + fprintf(fp, "00000000\r\n"); + } + for (int i = 0; i < 15; i++){ + fprintf(fp, "00000000\r\n"); + } + fclose(fp); +} + +void text::letters(char take){ + switch (take){ + case 'A': + letSize = 4; + int a[8][8] = { + {0, 1, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + }; + memcpy(temp, a, sizeof(a)); + break; + case 'B': + letSize = 4; + int b[8][8] = { + {1, 1, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 1, 0, 0, 0, 0, 0}, + }; + memcpy(temp, b, sizeof(b)); + break; + case 'C': + letSize = 4; + int c[8][8] = { + {0, 1, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {0, 1, 1, 0, 0, 0, 0, 0}, + }; + memcpy(temp, c, sizeof(c)); + break; + case 'D': + letSize = 4; + int d[8][8] = { + {1, 1, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 1, 0, 0, 0, 0, 0}, + }; + memcpy(temp, d, sizeof(d)); + break; + case 'E': + letSize = 4; + int e[8][8] = { + {1, 1, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 1, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 1, 1, 1, 0, 0, 0, 0}, + }; + memcpy(temp, e, sizeof(e)); + break; + case 'F': + letSize = 4; + int f[8][8] = { + {1, 1, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 1, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + }; + memcpy(temp, f, sizeof(f)); + break; + case 'G': + letSize = 4; + int g[8][8] = { + {0, 1, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {0, 1, 1, 0, 0, 0, 0, 0}, + }; + memcpy(temp, g, sizeof(g)); + break; + case 'H': + letSize = 4; + int h[8][8] = { + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + }; + memcpy(temp, h, sizeof(h)); + break; + case 'I': + letSize = 1; + int i[8][8] = { + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + }; + memcpy(temp, i, sizeof(i)); + break; + case 'J': + letSize = 3; + int j[8][8] = { + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {1, 0, 1, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0}, + }; + memcpy(temp, j, sizeof(j)); + break; + case 'K': + letSize = 4; + int k[8][8] = { + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 1, 0, 0, 0, 0, 0}, + {1, 0, 1, 0, 0, 0, 0, 0}, + {1, 1, 0, 0, 0, 0, 0, 0}, + {1, 0, 1, 0, 0, 0, 0, 0}, + {1, 0, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + }; + memcpy(temp, k, sizeof(k)); + break; + case 'L': + letSize = 3; + int l[8][8] = { + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 1, 1, 0, 0, 0, 0, 0}, + }; + memcpy(temp, l, sizeof(l)); + break; + case 'M': + letSize = 5; + int m[8][8] = { + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 1, 0, 1, 1, 0, 0, 0}, + {1, 0, 1, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + }; + memcpy(temp, m, sizeof(m)); + break; + case 'N': + letSize = 4; + int n[8][8] = { + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + }; + memcpy(temp, n, sizeof(n)); + break; + case 'O': + letSize = 4; + int o[8][8] = { + {1, 1, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 1, 1, 0, 0, 0, 0}, + }; + memcpy(temp, o, sizeof(o)); + break; + case 'P': + letSize = 4; + int p[8][8] = { + {1, 1, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + }; + memcpy(temp, p, sizeof(p)); + break; + case 'R': + letSize = 4; + int r[8][8] = { + {1, 1, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 1, 0, 0, 0, 0, 0}, + {1, 0, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + }; + memcpy(temp, r, sizeof(r)); + break; + case 'S': + letSize = 4; + int s[8][8] = { + {0, 1, 1, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0}, + {1, 1, 1, 0, 0, 0, 0, 0}, + }; + memcpy(temp, s, sizeof(s)); + break; + case 'T': + letSize = 5; + int t[8][8] = { + {1, 1, 1, 1, 1, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + }; + memcpy(temp, t, sizeof(t)); + break; + case 'U': + letSize = 4; + int u[8][8] = { + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0}, + {0, 1, 1, 0, 0, 0, 0, 0}, + }; + memcpy(temp, u, sizeof(u)); + break; + case 'V': + letSize = 5; + int v[8][8] = { + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {0, 1, 0, 1, 0, 0, 0, 0}, + {0, 1, 0, 1, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + }; + memcpy(temp, v, sizeof(v)); + break; + case 'Z': + letSize = 4; + int z[8][8] = { + {1, 1, 1, 1, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 1, 1, 1, 0, 0, 0, 0}, + }; + memcpy(temp, z, sizeof(z)); + break; + case 'W': + letSize = 5; + int w[8][8] = { + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 1, 0, 1, 0, 0, 0}, + {0, 1, 0, 1, 1, 0, 0, 0}, + {0, 1, 0, 1, 0, 0, 0, 0}, + }; + memcpy(temp, w, sizeof(w)); + break; + case ' ': + letSize = 3; + int gap[8][8] = { + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + }; + memcpy(temp, gap, sizeof(gap)); + break; + default : + letSize = 1; + int def[8][8] = { + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + }; + memcpy(temp, def, sizeof(def)); + } +} + +void text::tempCheck(){ + for (int i = 0; i < 5; i++){ + pc.printf("\r\n"); + for (int j = 7; j > (-1); j--){ + pc.printf("%i", temp[j][i]); + } + } +} + +void text::calcLength(string input){ + length = 0; + for (int i = 0; i < stringLength; i++){ + letters(input.at(i)); + length += letSize + 1; + } + length += 15; +} \ No newline at end of file