Hi
Nein, brauchst du nicht
Ich habe einen 4 Stelligen Tacho mit lediglich 2 doppel-7-segment-anzeigen und 2 Widerständen gebaut. Hatten auch gemeinsame Anode, also muss man "nur" die anderen Pins auf Masse setzen.
int za[] = {1,2,3,4,5,6,7};
int z0[] = {1,2,3,4,5,6};
int z1[] = {2,3};
int z2[] = {1,2,4,5,7};
int z3[] = {1,2,3,4,7};
int z4[] = {2,3,6,7};
int z5[] = {1,3,4,6,7};
int z6[] = {1,3,4,5,6,7};
int z7[] = {1,2,3};
int z8[] = {1,2,3,4,5,6,7};
int z9[] = {1,2,3,4,6,7};
int zE[] = {1,4,5,6,7};
int zr[] = {5,7};
int anzeige[] = {13,12,11,10};
void Anzeigen(int wert)
{
if(wert < 1000)
{
char buffer[3];
itoa(wert, buffer, 10);
zeigean(buffer[0], 0);
zeigean(buffer[1], 1);
zeigean(buffer[2], 2);
}
else
{
zeigean(10, 0);
zeigean(11, 1);
zeigean(11, 2);
}
}
void zeigean(char w, int a)
{
pinMode(anzeige[a], OUTPUT);
digitalWrite(anzeige[a], HIGH);
for(int i=0;i<7;i++)
{
pinMode(za[i]-1, INPUT);
}
switch(w)
{
case '0':
for(int i = 0; i < 6; i++)
{
pinMode(z0[i]-1, OUTPUT);
delay(2);
}
break;
case '1':
for(int i = 0; i < 2; i++)
{
pinMode(z1[i]-1, OUTPUT);
}
break;
case '2':
for(int i = 0; i < 5; i++)
{
pinMode(z2[i]-1, OUTPUT);
}
break;
case '3':
for(int i = 0; i < 5; i++)
{
pinMode(z3[i]-1, OUTPUT);
}
break;
case '4':
for(int i = 0; i < 4; i++)
{
pinMode(z4[i]-1, OUTPUT);
}
break;
case '5':
for(int i = 0; i < 5; i++)
{
pinMode(z5[i]-1, OUTPUT);
}
break;
case '6':
for(int i = 0; i < 6; i++)
{
pinMode(z6[i]-1, OUTPUT);
}
break;
case '7':
for(int i = 0; i < 3; i++)
{
pinMode(z7[i]-1, OUTPUT);
}
break;
case '8':
for(int i = 0; i < 7; i++)
{
pinMode(z8[i]-1, OUTPUT);
}
break;
case '9':
for(int i = 0; i < 6; i++)
{
pinMode(z9[i]-1, OUTPUT);
}
break;
case 10:
for(int i = 0; i < 5; i++)
{
pinMode(zE[i]-1, OUTPUT);
}
break;
case 11:
for(int i = 0; i < 2; i++)
{
pinMode(zr[i]-1, OUTPUT);
}
break;
}
for(int i=0;i<7;i++)
{
pinMode(za[i]-1, INPUT);
}
//digitalWrite(anzeige[a],LOW);
pinMode(anzeige[a], INPUT);
}
Is aber "nur" der code für ne dreistellige Anzeige
Müsstest nur die Pins anpassen.
Pin 13: Anzeige 1, Anode
Pin 12: Anzeige 1, Anode
Pin 11: Anzeige 1, Anode
Pin 10: Anzeige 1, Anode
Die Pins 0 - 6 sind die Kathoden von a - g.
Den Code solltest du eig sehr leicht verstehen, is wirklich sehr einfach aufgebaut
MFG, Robdeflop®