LED матрица на микроконтроллере ATmega328p или самопальный модуль Arduino. Часть первая — Разработка
class Jsus {
public:
void init() {
pinMode(5, 1);
pinMode(6, 1);
pinMode(7, 1);
pinMode(9, 1);
pinMode(10, 1);
pinMode(11, 1);
pinMode(12, 1);
pinMode(13, 1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(9,0);
digitalWrite(10,0);
digitalWrite(11,0);
digitalWrite(12,0);
digitalWrite(13,0);
};
void path(char bits[5]) {
for (int l = 0;l < 5;l++) {
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 1);
if (l == 1) digitalWrite(13, 0);
if (l == 2) digitalWrite(12, 0);
if (l == 3) digitalWrite(11, 0);
if (l == 4) digitalWrite(10, 0);
if (l == 0) digitalWrite(9, 0);
digitalWrite(7, 1);
for (int i = 0; i < 8;i++) {
digitalWrite(6, 1);
digitalWrite(5, (bits[l] >> i) & 1);
digitalWrite(6, 0);
}
digitalWrite(7, 0);
delay(2);
}
};
void message(String text, int Delay) {
int len = text.length();
for (int i = 0; i < len; i++) {
for (int Delay_ = 0; Delay_ < Delay/15; Delay_++){
if (text[i] == 32) { char Symbol[5] = {0,0,0,0,0}; path(Symbol); } //
if (text[i] == 43) { char Symbol[5] = {8,8,62,8,8}; path(Symbol); } // +
if (text[i] == 45) { char Symbol[5] = {8,8,8,8,8}; path(Symbol); } // -
if (text[i] == 61) { char Symbol[5] = {20,20,20,20,20}; path(Symbol); } // =
if (text[i] == 95) { char Symbol[5] = {1,1,1,1,1}; path(Symbol); } // _
if (text[i] == 41) { char Symbol[5] = {62,65,0,0,0}; path(Symbol); } // )
if (text[i] == 40) { char Symbol[5] = {0,0,0,65,62}; path(Symbol); } // (
if (text[i] == 123) { char Symbol[5] = {0,65,65,54,8}; path(Symbol); } // {
if (text[i] == 125) { char Symbol[5] = {8,54,65,65,0}; path(Symbol); } // }
if (text[i] == 62) { char Symbol[5] = {8,20,34,65,0}; path(Symbol); } // >
if (text[i] == 60) { char Symbol[5] = {0,65,34,20,8}; path(Symbol); } // <
if (text[i] == 46) { char Symbol[5] = {0,0,1,0,0}; path(Symbol); } // .
if (text[i] == 44) { char Symbol[5] = {0,0,3,2,0}; path(Symbol); } // ,
if (text[i] == 63) { char Symbol[5] = {48,72,69,64,48}; path(Symbol); } // ?
if (text[i] == 33) { char Symbol[5] = {0,0,125,0,0}; path(Symbol); } // !
if (text[i] == 64) { char Symbol[5] = {58,69,93,65,62}; path(Symbol); } // @
if (text[i] == 35) { char Symbol[5] = {20,127,20,127,20}; path(Symbol); } // #
if (text[i] == 36) { char Symbol[5] = {38,73,127,73,50}; path(Symbol); } // $
if (text[i] == 37) { char Symbol[5] = {19,11,4,50,49}; path(Symbol); } // %
if (text[i] == 94) { char Symbol[5] = {0,32,64,32,0}; path(Symbol); } // ^
if (text[i] == 58) { char Symbol[5] = {0,0,0,34,0}; path(Symbol); } // :
if (text[i] == 42) { char Symbol[5] = {8,20,42,20,8}; path(Symbol); } // *
if (text[i] == 38) { char Symbol[5] = {2,53,73,73,54}; path(Symbol); } // &
if (text[i] == 34) { char Symbol[5] = {0,112,0,112,0}; path(Symbol); } // "
if (text[i] == 59) { char Symbol[5] = {0,0,0,38,2}; path(Symbol); } // ;
if (text[i] == 48) { char Symbol[5] = {62,65,65,65,62}; path(Symbol); } // 0
if (text[i] == 49) { char Symbol[5] = {0,1,127,33,16}; path(Symbol); } // 1
if (text[i] == 50) { char Symbol[5] = {49,73,69,67,49}; path(Symbol); } // 2
if (text[i] == 51) { char Symbol[5] = {54,73,73,65,34}; path(Symbol); } // 3
if (text[i] == 52) { char Symbol[5] = {5,127,37,20,12}; path(Symbol); } // 4
if (text[i] == 53) { char Symbol[5] = {6,73,73,73,114}; path(Symbol); } // 5
if (text[i] == 54) { char Symbol[5] = {38,73,73,73,62}; path(Symbol); } // 6
if (text[i] == 55) { char Symbol[5] = {96,80,79,64,64}; path(Symbol); } // 7
if (text[i] == 56) { char Symbol[5] = {54,73,73,73,54}; path(Symbol); } // 8
if (text[i] == 57) { char Symbol[5] = {62,73,73,73,50}; path(Symbol); } // 9
if (text[i] == 97) { char Symbol[5] = {1,62,37,37,18}; path(Symbol); } // a
if (text[i] == 65) { char Symbol[5] = {3,28,36,28,3}; path(Symbol); } // A
if (text[i] == 98) { char Symbol[5] = {6,9,9,9,126}; path(Symbol); } // b
if (text[i] == 66) { char Symbol[5] = {6,57,73,73,127}; path(Symbol); } // B
if (text[i] == 99) { char Symbol[5] = {18,33,33,33,30}; path(Symbol); } // c
if (text[i] == 67) { char Symbol[5] = {34,65,65,65,62}; path(Symbol); } // C
if (text[i] == 100) { char Symbol[5] = {126,9,9,9,6}; path(Symbol); } // d
if (text[i] == 68) { char Symbol[5] = {62,65,65,65,127}; path(Symbol); } // D
if (text[i] == 101) { char Symbol[5] = {26,37,37,37,30}; path(Symbol); } // e
if (text[i] == 69) { char Symbol[5] = {65,65,73,73,127}; path(Symbol); } // E
if (text[i] == 102) { char Symbol[5] = {0,32,36,31,4}; path(Symbol); } // f
if (text[i] == 70) { char Symbol[5] = {64,64,72,72,127}; path(Symbol); } // F
if (text[i] == 103) { char Symbol[5] = {62,73,73,74,48}; path(Symbol); } // g
if (text[i] == 71) { char Symbol[5] = {38,73,73,65,62}; path(Symbol); } // G
if (text[i] == 104) { char Symbol[5] = {0,7,8,8,63}; path(Symbol); } // h
if (text[i] == 72) { char Symbol[5] = {127,8,8,8,127}; path(Symbol); } // H
if (text[i] == 105) { char Symbol[5] = {0,0,47,0,0}; path(Symbol); } // i
if (text[i] == 73) { char Symbol[5] = {0,65,127,65,0}; path(Symbol); } // I
if (text[i] == 106) { char Symbol[5] = {0,94,1,1,2}; path(Symbol); } // j
if (text[i] == 74) { char Symbol[5] = {126,1,1,1,6}; path(Symbol); } // J
if (text[i] == 107) { char Symbol[5] = {0,16,9,6,63}; path(Symbol); } // k
if (text[i] == 75) { char Symbol[5] = {64,33,18,12,127}; path(Symbol); } // K
if (text[i] == 108) { char Symbol[5] = {0,1,63,0,0}; path(Symbol); } // l
//if (text[i] == 76) { char Symbol[5] = {1,1,1,1,127}; path(Symbol); } // L
if (text[i] == 109) { char Symbol[5] = {15,16,24,16,15}; path(Symbol); } // m
if (text[i] == 77) { char Symbol[5] = {63,64,56,64,63}; path(Symbol); } // M
if (text[i] == 110) { char Symbol[5] = {31,32,32,32,63}; path(Symbol); } // n
if (text[i] == 78) { char Symbol[5] = {127,4,8,16,127}; path(Symbol); } // N
if (text[i] == 111) { char Symbol[5] = {14,17,17,17,14}; path(Symbol); } // o
if (text[i] == 79) { char Symbol[5] = {62,65,65,65,62}; path(Symbol); } // O
if (text[i] == 112) { char Symbol[5] = {0,24,36,36,63}; path(Symbol); } // p
if (text[i] == 80) { char Symbol[5] = {56,68,68,68,63}; path(Symbol); } // P
if (text[i] == 113) { char Symbol[5] = {31,36,36,36,24}; path(Symbol); } // q
if (text[i] == 81) { char Symbol[5] = {61,66,65,65,62}; path(Symbol); } // Q
if (text[i] == 114) { char Symbol[5] = {0,48,16,32,63}; path(Symbol); } // r
if (text[i] == 82) { char Symbol[5] = {56,69,70,68,63}; path(Symbol); } // R
if (text[i] == 115) { char Symbol[5] = {0,18,37,41,18}; path(Symbol); } // s
//if (text[i] == 83) { char Symbol[5] = {38,73,73,73,50}; path(Symbol); } // S
if (text[i] == 116) { char Symbol[5] = {0,2,17,62,16}; path(Symbol); } // t
if (text[i] == 84) { char Symbol[5] = {64,64,127,64,64}; path(Symbol); }// T
if (text[i] == 117) { char Symbol[5] = {29,2,1,1,30}; path(Symbol); } // u
if (text[i] == 85) { char Symbol[5] = {126,1,1,1,126}; path(Symbol); } // U
if (text[i] == 118) { char Symbol[5] = {60,2,1,2,60}; path(Symbol); } // v
if (text[i] == 86) { char Symbol[5] = {124,2,1,2,124}; path(Symbol); } // V
if (text[i] == 119) { char Symbol[5] = {30,1,6,1,30}; path(Symbol); } // w
if (text[i] == 87) { char Symbol[5] = {126,1,6,1,126}; path(Symbol); } // W
if (text[i] == 120) { char Symbol[5] = {17,10,4,10,17}; path(Symbol); } // x
if (text[i] == 88) { char Symbol[5] = {99,20,8,20,99}; path(Symbol); } // X
if (text[i] == 121) { char Symbol[5] = {56,4,6,57,0}; path(Symbol); } // y
if (text[i] == 89) { char Symbol[5] = {112,8,7,8,112}; path(Symbol); } // Y
if (text[i] == 122) { char Symbol[5] = {17,25,21,19,17}; path(Symbol); } // z
if (text[i] == 90) { char Symbol[5] = {97,81,73,69,67}; path(Symbol); } // Z
if (text[i] == 76) { char Symbol[5] = {24,60,30,60,24}; path(Symbol); } // L
if (text[i] == 83) { char Symbol[5] = {6,113,1,113,6}; path(Symbol); } // S
}
}
};
};
Jsus matrix;