1#define ROW1 A0
2#define ROW2 A1
3#define ROW3 A2
4#define ROW4 A3
5#define ROW5 A4
6
7#define COL1 2
8#define COL2 3
9#define COL3 4
10#define COL4 5
11
12const byte rows[]{
13 ROW1,ROW2,ROW3,ROW4,ROW5
14};
15
16void setColumns(byte b) {
17 digitalWrite(COL1, (~b >> 0) & 0x01);
18 digitalWrite(COL2, (~b >> 1) & 0x01);
19 digitalWrite(COL3, (~b >> 2) & 0x01);
20 digitalWrite(COL4, (~b >> 3) & 0x01);
21}
22
23
24
25byte OFF[] = {B0000,B0000,B0000,B0000,B0000};
26byte ALL[] = {B1111,B1111,B1111,B1111,B1111};
27byte A[] = {B1111,B1001,B1111,B1001,B1001};
28byte S[] = {B1111,B0001,B1111,B1000,B1111};
29byte U[] = {B1001,B1001,B1001,B1001,B1111};
30byte H[] = {B1001,B1001,B1111,B1001,B1001};
31byte D[] = {B1111,B1010,B1010,B1010,B1111};
32byte E[] = {B1111,B0001,B0111,B0001,B1111};
33byte R[] = {B1111,B1001,B1111,B0101,B1001};
34byte J[] = {B1111,B1111,B0110,B0110,B0011};
35byte N[] = {B1001,B1011,B1111,B1101,B1001};
36byte I[] ={B1111,B0110,B0110,B0110,B1111};
37
38
39
40void drawScreen(byte buffer2[]){
41 for (byte i = 0; i < 5; i++) {
42 setColumns(buffer2[i]);
43
44 digitalWrite(rows[i], HIGH);
45 delay(2);
46 digitalWrite(rows[i], LOW);
47
48 }
49}
50
51float timeCount = 0;
52
53void setup() {
54
55 for (byte i = 2; i <= 5; i++)
56 pinMode(i, OUTPUT);
57
58
59 pinMode(A0, OUTPUT);
60 pinMode(A1, OUTPUT);
61 pinMode(A2, OUTPUT);
62 pinMode(A3, OUTPUT);
63 pinMode(A4, OUTPUT);
64
65
66}
67
68void loop() {
69 delay(1);
70 timeCount += 1;
71
72
73if(timeCount < 80)
74{
75drawScreen(OFF);
76}
77else if (timeCount < 160)
78{
79drawScreen(OFF);
80}
81else if (timeCount < 240)
82{
83drawScreen(S);
84}
85else if (timeCount < 320)
86{
87drawScreen(OFF);
88}
89else if (timeCount < 400)
90{
91drawScreen(U);
92}
93else if (timeCount < 480)
94{
95drawScreen(OFF);
96}
97else if (timeCount < 560)
98{
99drawScreen(D);
100}
101else if (timeCount < 640)
102{
103drawScreen(OFF);
104}
105else if (timeCount < 720)
106{
107drawScreen(E);
108}
109else if (timeCount < 800)
110{
111drawScreen(OFF);
112}
113else if (timeCount < 880)
114{
115drawScreen(E);
116}
117else if (timeCount < 960)
118{
119drawScreen(OFF);
120}
121else if (timeCount < 1040)
122{
123drawScreen(R);
124}
125else if (timeCount < 1120)
126{
127drawScreen(OFF);
128}
129else if (timeCount < 1200)
130{
131drawScreen(A);
132}
133else if (timeCount < 1280)
134{
135drawScreen(OFF);
136}
137else if (timeCount < 1360)
138{
139drawScreen(ALL);
140}
141else if (timeCount < 1440)
142{
143drawScreen(OFF);
144}
145else {
146
147timeCount = 0;
148}
149
150
151
152
153}
154