Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char* digitPinsOff[4] = {"l", "i", "h", "f"};
- char* digitPinsOn[4] = {"L", "I", "H", "F"};
- char* digits[10] = {
- "KGDBAJkgdbaj", "GDgd", "KGEABkgeab", "KGEDBkgedb", "JEGDjegd",
- "KJEDBkjedb", "KJABDEkjabdeH", "KGDkgd", "ABDEJGKabdejgk", "BDEJGEKbdejgk"
- };
- int displayed[4] = {6, 1, 9, 7};
- int received[4] = {0, 0, 0, 0};
- void setup() {
- for (int i = 2; i < 14; i++) {
- pinMode(i, OUTPUT);
- digitalWrite(i, LOW);
- }
- Serial.begin(9600);
- }
- void loop() {
- // displays the number 2169.
- // Uh.
- displayDigitAt(1, displayed[0]);
- displayDigitAt(2, displayed[1]);
- displayDigitAt(3, displayed[2]);
- displayDigitAt(4, displayed[3]);
- if (Serial.available() > 0) {
- int i = 0;
- int j = 0;
- while (i < 4 && j < 1000) {
- char unsafe = Serial.read();
- if ('0' <= unsafe && unsafe <= '9') {
- received[i] = unsafe - '0';
- i++;
- } else {
- received[i] = displayed[i];
- }
- j++;
- displayDigitAt(1, displayed[0]);
- displayDigitAt(2, displayed[1]);
- displayDigitAt(3, displayed[2]);
- displayDigitAt(4, displayed[3]);
- //Serial.write(unsafe);
- }
- for (int i = 0; i < 4; i++) {
- displayed[i] = received[i];
- }
- //Serial.write("\n");
- }
- }
- void displayDigitAt(int pos, int digitToDisplay) {
- parseLetter(digitPinsOff[pos - 1]);
- parseLetter(digits[digitToDisplay]);
- parseLetter(digitPinsOn[pos - 1]);
- }
- void parseLetter(char* str) {
- int len = strlen(str);
- for (int i = 0; i < len; i++) {
- char pinCode = str[i];
- if (65 <= pinCode && pinCode <= 76) {
- digitalWrite(pinCode - 63, HIGH);
- }
- else {
- digitalWrite(pinCode - 95, LOW);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment