Dein Code dürfte nicht kompilieren.
if (number==1)
{
digitalWrite(g,HIGH);
digitalWrite(g2,HIGH);
}
g und g2 sind hier nicht definiert. Du wolltest wahrscheinlich _g und _g2 nehmen.
void Display(int number);
aber
SegmentDisplay.Display('1');
Einmal definierst Du den Parameter als Integer und übergibst der Methode dann einen Character. Auch hier wird der Compiler Fehler ausspucken.
SegmentDisplay (a,b,c,d,e,f,g,a2,b2,c2,d2,e2,f2,g2);
Das sollte wahrscheinlich eine Objekt-Erzeugung werden, aber das Objekt hat keinen Namen. Der Code sollte eher so aussehen:
SegmentDisplay ssd(a,b,c,d,e,f,g,a2,b2,c2,d2,e2,f2,g2);
void setup(){
ssd.Display('1');
}
Hier fehlt das Semikolon:
int array[]={a,b,c,d,e,f,g,a2,b2,c2,d2,e2,f2,g2}
Das macht wenig Sinn:
#ifndef SegmentDisplay_h
#define SegmentDisplay
Damit dürfte der Code kompilieren (sprich: das sind Fehler die der Compiler auch findet, dafür bräuchtest Du das Forum nicht zu bemühen), auch wenn der Code noch nicht viel Vernünftiges produziert.