Placa arduino
Breadboard
4 Rezistente 220k
Afisaj 7 segmente 4 cifre
Fire
Circuit :
Display:
Pinul
Pinul
Pinul
Pinul
Pinul
Pinul
Pinul
Pinul
Pinul
Pinul
Pinul
Pinul
Placa Arduino:
1
se conecteaza la
pinul 10
2
se conecteaza la
pinul 9
3
se conecteaza la
pinul 13
4
se conecteaza la
pinul 8
5
se conecteaza la
pinul 12
6 + rezistor se conecteaza la pinul 5
7
se conecteaza la
pinul 7
8 + rezistor se conecteaza la pinul 4
9 + rezistor se conecteaza la pinul 3
10
se conecteaza la
pinul 11
11
se conecteaza la
pinul 6
12 + rezistor se conecteaza la pinul 2
Codul :
boolean DigitOn = LOW;
boolean DigitOff = HIGH;
boolean SegOn=HIGH;
boolean SegOff=LOW;
int DigitPins[] = {2, 3, 4, 5};
int SegmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
//looks terrible, but I didn't find a way to copy Arrays or merge
them from parts
//N is for numbers and NxP is a number with a decimal point
behind
int BLANK[] = {LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW};
int N0[]
= {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, LOW};
int N0P[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, HIGH};
int N1[]
= {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW};
int N1P[] = {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH};
int N2[]
= {HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, LOW};
int N2P[] = {HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH};
int N3[]
= {HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, LOW};
int N3P[] = {HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, HIGH};
int N4[]
= {LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, LOW};
int N4P[] = {LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, HIGH};
int N5[]
= {HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
int N5P[] = {HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, HIGH};
int N6[]
= {HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int N6P[] = {HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int N7[]
= {HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW};
int N7P[] = {HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH};
int N8[]
= {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int N8P[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int N9[]
= {HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
int N9P[] = {HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, HIGH};
int MIN[] = {LOW, LOW, LOW, LOW, LOW, LOW, HIGH, LOW};
//The letters K, M, N, T, V, W, Z are off limits with a 7 segment
display
//Some letters like D, G, Q are hard to recognize, as D is like O and
G like 6
int A[] = {HIGH, HIGH, HIGH, LOW, HIGH, HIGH, HIGH, LOW};
int B[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int C[] = {HIGH, LOW, LOW, HIGH, HIGH, HIGH, LOW, LOW};
int D[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, LOW};
int E[] = {HIGH, LOW, LOW, HIGH, HIGH, HIGH, HIGH, LOW};
int F[] = {HIGH, LOW, LOW, LOW, HIGH, HIGH, HIGH, LOW};
int G[] = {HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int H[] = {LOW, HIGH, HIGH, LOW, HIGH, HIGH, HIGH, LOW};
int I[] = {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW};
int J[] = {LOW, HIGH, HIGH, HIGH, HIGH, LOW, LOW, LOW};
int L[] = {LOW, LOW, LOW, HIGH, HIGH, HIGH, LOW, LOW};
int O[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, LOW};
int P[] = {HIGH, HIGH, LOW, LOW, HIGH, HIGH, HIGH, LOW};
int Q[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, HIGH};
int R[] = {HIGH, HIGH, HIGH, LOW, HIGH, HIGH, HIGH, LOW};
int S[] = {HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
int U[] = {LOW, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, LOW};
int Y[] = {LOW, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
//Array of pointers for the 4 digits
int* lights[4];
==
==
==
==
lights[counter] = N0P;
tmp++;
} else {
lights[counter] = N0;
}
break;
case '1':
if (tmp < 8 && (incoming[tmp
',')) {
lights[counter] = N1P;
tmp++;
} else {
lights[counter] = N1;
}
break;
case '2':
if (tmp < 8 && (incoming[tmp
',')) {
lights[counter] = N2P;
tmp++;
} else {
lights[counter] = N2;
}
break;
case '3':
if (tmp < 8 && (incoming[tmp
',')) {
lights[counter] = N3P;
tmp++;
} else {
lights[counter] = N3;
}
break;
case '4':
if (tmp < 8 && (incoming[tmp
',')) {
lights[counter] = N4P;
tmp++;
} else {
lights[counter] = N4;
}
+ 1] == '.' || incoming[tmp + 1]
+ 1] == '.' || incoming[tmp + 1]
+ 1] == '.' || incoming[tmp + 1]
+ 1] == '.' || incoming[tmp + 1]
==
==
==
==
==
break;
case '5':
if (tmp < 8 && (incoming[tmp
',')) {
lights[counter] = N5P;
tmp++;
} else {
lights[counter] = N5;
}
break;
case '6':
if (tmp < 8 && (incoming[tmp
',')) {
lights[counter] = N6P;
tmp++;
} else {
lights[counter] = N6;
}
break;
case '7':
if (tmp < 8 && (incoming[tmp
',')) {
lights[counter] = N7P;
tmp++;
} else {
lights[counter] = N7;
}
break;
case '8':
if (tmp < 8 && (incoming[tmp
',')) {
lights[counter] = N8P;
tmp++;
} else {
lights[counter] = N8;
}
break;
case '9':
if (tmp < 8 && (incoming[tmp
',')) {
lights[counter] = N9P;
+ 1] == '.' || incoming[tmp + 1]
+ 1] == '.' || incoming[tmp + 1]
+ 1] == '.' || incoming[tmp + 1]
+ 1] == '.' || incoming[tmp + 1]
+ 1] == '.' || incoming[tmp + 1]
tmp++;
} else {
lights[counter] = N9;
}
break;
case '-':
lights[counter] = MIN;
if (tmp < 8 && (incoming[tmp + 1] == '.' || incoming[tmp
== ',')) {
tmp++;
}
break;
//with letters the decimal point is ignored!
//if you need it, just write AP, BP etc with HIGH in the
position
case 'a': //falls through to the next case
case 'A':
lights[counter] = A;
if (tmp < 8 && (incoming[tmp + 1] == '.' || incoming[tmp
== ',')) {
tmp++;
}
break;
case 'b': //falls through to the next case
case 'B':
lights[counter] = B;
if (tmp < 8 && (incoming[tmp + 1] == '.' || incoming[tmp
== ',')) {
tmp++;
}
break;
case 'c': //falls through to the next case
case 'C':
lights[counter] = C;
if (tmp < 8 && (incoming[tmp + 1] == '.' || incoming[tmp
== ',')) {
tmp++;
}
break;
case 'd': //falls through to the next case
case 'D':
+ 1]
last
+ 1]
+ 1]
+ 1]
==
==
==
==
==
lights[counter] = D;
if (tmp < 8 && (incoming[tmp + 1] == '.'
',')) {
tmp++;
}
break;
case 'e': //falls through to the next case
case 'E':
lights[counter] = E;
if (tmp < 8 && (incoming[tmp + 1] == '.'
',')) {
tmp++;
}
break;
case 'f': //falls through to the next case
case 'F':
lights[counter] = F;
if (tmp < 8 && (incoming[tmp + 1] == '.'
',')) {
tmp++;
}
break;
case 'g': //falls through to the next case
case 'G':
lights[counter] = G;
if (tmp < 8 && (incoming[tmp + 1] == '.'
',')) {
tmp++;
}
break;
case 'h': //falls through to the next case
case 'H':
lights[counter] = H;
if (tmp < 8 && (incoming[tmp + 1] == '.'
',')) {
tmp++;
}
break;
case 'i': //falls through to the next case
case 'I':
lights[counter] = I;
|| incoming[tmp + 1]
|| incoming[tmp + 1]
|| incoming[tmp + 1]
|| incoming[tmp + 1]
|| incoming[tmp + 1]
|| incoming[tmp + 1]
|| incoming[tmp + 1]
|| incoming[tmp + 1]
|| incoming[tmp + 1]
|| incoming[tmp + 1]
|| incoming[tmp + 1]
== ',')) {
tmp++;
==
==
==
==
}
break;
case 'r': //falls through to the next case
case 'R':
lights[counter] = R;
if (tmp < 8 && (incoming[tmp + 1] == '.' || incoming[tmp +
',')) {
tmp++;
}
break;
case 's': //falls through to the next case
case 'S':
lights[counter] = S;
if (tmp < 8 && (incoming[tmp + 1] == '.' || incoming[tmp +
',')) {
tmp++;
}
break;
case 'u': //falls through to the next case
case 'U':
lights[counter] = U;
if (tmp < 8 && (incoming[tmp + 1] == '.' || incoming[tmp +
',')) {
tmp++;
}
break;
case 'y': //falls through to the next case
case 'Y':
lights[counter] = Y;
if (tmp < 8 && (incoming[tmp + 1] == '.' || incoming[tmp +
',')) {
tmp++;
}
break;
case 1 ... 43: counter--; break;//special chars are ignored
//44 to 46 are , - .
case 47: counter--; break;//special chars are ignored
//chars between Z and a
case 91 ... 96: counter--; break;//special chars are ignored
1]
1]
1]
1]