Serieller Monitor/ Ausgabe

Guten Tag,
ich habe eine Schaltung mit dem Arduino Board und einer 4 Digit 7 Segment Anzeige und möchte gerne eine 4 Stellige Zahl über den Monitor auf die 7 Segment Anzeige ausgeben, aber wie? :confused:

Ich bin damit jetzt schon seit mehreren Stunden beschäftigt, und finde einfach keine Lösung.

Würde mich über eine schnelle hilfe Freuen.

MfG Steven

#define SegA_An digitalWrite(13, LOW)
#define SegA_Aus digitalWrite(13, HIGH)
#define SegB_An digitalWrite(12, LOW)
#define SegB_Aus digitalWrite(12, HIGH)
#define SegC_An digitalWrite(11, LOW)
#define SegC_Aus digitalWrite(11, HIGH)
#define SegD_An digitalWrite(10, LOW)
#define SegD_Aus digitalWrite(10, HIGH)
#define SegE_An digitalWrite(9, LOW)
#define SegE_Aus digitalWrite(9, HIGH)
#define SegF_An digitalWrite(8, LOW)
#define SegF_Aus digitalWrite(8, HIGH)
#define SegG_An digitalWrite(7, LOW)
#define SegG_Aus digitalWrite(7, HIGH)
#define Speed 200
void setup()
{
	Serial.begin(9600);
	pinMode(13, OUTPUT);
	pinMode(7, OUTPUT);
	pinMode(10, OUTPUT);
	pinMode(8, OUTPUT);
	pinMode(12, OUTPUT);
	pinMode(9, OUTPUT);
	pinMode(11, OUTPUT);
	pinMode(5, OUTPUT);
	pinMode(4, OUTPUT);
	pinMode(3, OUTPUT);
	pinMode(2, OUTPUT);
	digitalWrite(5, HIGH);
	digitalWrite(4, HIGH);
	digitalWrite(3, HIGH);
	digitalWrite(2, HIGH);

}

const byte Muster[10] = { 63, 6, 91, 79, 102, 109, 125, 7, 127, 111 };
void Zeige(byte Position, byte Zahl)
{
	digitalWrite(5, LOW);
	digitalWrite(4, LOW);
	digitalWrite(3, LOW);
	digitalWrite(2, LOW);

	if (Position == 1)
		digitalWrite(5, HIGH);
	if (Position == 2)
		digitalWrite(4, HIGH);
	if (Position == 3)
		digitalWrite(3, HIGH);
	if (Position == 4)
		digitalWrite(2, HIGH);


	byte d = Muster[Zahl];
	if (d & 1)SegA_An;
	else SegA_Aus;
	if (d & 2)SegB_An;
	else SegB_Aus;
	if (d & 4)SegC_An;
	else SegC_Aus;
	if (d & 8)SegD_An;
	else SegD_Aus;
	if (d & 16)SegE_An;
	else SegE_Aus;
	if (d & 32)SegF_An;
	else SegF_Aus;
	if (d & 64)SegG_An;
	else SegG_Aus;
	delay(5);
}

void Zeige4(int i)
{
	byte t, h, z, e;
	t = i / 1000; i -= t * 1000;
	h = i / 100; i -= h * 100;
	z = i / 10; i -= z * 10;
	e = i / 1; 
	Zeige(1, t);
	Zeige(2, h);
	Zeige(3, z);
	Zeige(4, e);
}

void Zeit(int i)
{
	byte m, s;
	m = i / 60;
	s = i - m * 60;
	Zeige4(m * 100 + s);
}
void loop()
{
	if (Serial.available())
	{
		delay(100);
		while (Serial.available())
		{
			Zeige4(Serial.read());
		}
	}
	
}

Schaltung fertig? Fragst Du nach dem Sketch oder Zahleneingabe?

Tastatur-Abfrage:

void setup() {
Serial.begin(9600); // Kontrollausgabe über seriellen Monitor
// CHECK Fenster: es kommt Müll, wenn nicht 'kein Zeilenende' eingestellt ist!
}
void loop() {
Serial.flush();
// horche an der seriellen Schnittstelle
// nach Zahl
// z.B. 1234
int Auswahl = 0;
int serial_a = 0;
int serial_nr = 0;
while (Serial.available() > 0)
{
{
serial_nr = serial_nr * 10;
serial_a = Serial.read() - '0'; // ASCII-Textversatz für 0 entfernen
serial_nr = serial_nr + serial_a;
delay(5); // delay in between reads for stability
}
}
Auswahl = int(serial_nr);
Serial.println(Auswahl);
}

Zahleneingabe: Arduino über USB an PC, Monitor mit [Strg]+[Shift]+[M] starten, 4-stellige-Zahl eintippen und mit [Enter] senden.

Habe eine Lösung gefunden. Trotzdem danke!

void loop()
{
	if (Serial.available() >= 4)
	{
		int i = (Serial.read() - 48) * 1000;
		i += (Serial.read() - 48) * 100;
		i += (Serial.read() - 48) * 10;
		i += (Serial.read() - 48) * 1;
		Nummer = i;
		delay(50);
		Serial.println(Serial.available());
		while (Serial.read() != -1);
		Serial.println(Serial.available());
	}
	

	Zeige4(Nummer);	
}