Drehzahlmessung 7 Segment-Anzeige

Hallo miteinander,

ich möchte mit einem Hallsensor die Drehzahl eines Zahnrads messen und diese über eine 4-stellige 7-Segmentanzeige darstellen. Die Drehzahl messe ich durch Impulsezählen etc.

T = pulseIn(pin, HIGH) + pulseIn(pin, LOW);

Die Drehzahl kann ich mir im Seriellen Monitor anzeigen lassen.
Ich hatte vor, die 7_Segmentanzeige mithilfe der SevSeg Library zu betreiben.

Allerdings besteht das Problem, dass die Anzeige nichts anzeigt, die Segmente blinken nur abwechselnd auf.
Woran kann dies liegen bzw. wie kann ich das Problem umgehen?

Freundliche Grüße
kojo753951

kojo753951:
.....
Allerdings besteht das Problem, dass die Anzeige nichts anzeigt, die Segmente blinken nur abwechselnd auf.
Woran kann dies liegen bzw. wie kann ich das Problem umgehen?

Falscher Sketch.
Falsche Hardware.
Falsche Schaltung.

Was kann noch falsch sein, wir können es nicht sehen.

Also poste den kompletten Sketch in Code-Tags und zeig dein Schaltbild.

pulseIn blockiert. Während dieser Zeit macht der Prozessor nichts, die Segmente werden also nicht angesteuert.

Gruß Tommy

Hi

Zumindest werden die Segmente während der Wartezeit nur nicht ANgesteuert - schlimmer wäre es, wenn ein eingeschaltetes Segment während dieser Pause nicht rechtzeitig ABgeschaltet wird.
Beim Multiplexen benutzt man mehr LED-Strom, damit die LED, trotz geringerer Leuchtzeit, ähnlich hell wirkt, wie eine durchgehend angeschaltete LED.
Diesen erhöhten Strom können die LED aber nur eine sehr kurze Zeit ab, deshalb ist es wichtig, daß die LEDs rechtzeitig wieder abgeschaltet werden, sonst brennt die LED durch.

Wie Tommy56 schon schrieb, hält pulsin das Programm an, während Es zählt/auf die andere Flanke wartet.

Hier könntest Du einen Treiber wie MAX7219 (Der wäre allerdings für DOT-Matrix) versuchen - Dieser kümmert sich um das Multiplexing und Ihm werden nur die 'neuen Zahlen' übergeben.
Gleiches gibt es sicher auch für 7-Segment.

MfG

Zu bedenken ist, dass pulseIn eine blockierende Funktion ist. Zumindest bei niedrigen Drehzahlen wird das dazu führen, dass das Programm sehr "träge" wird.

Siebensegment-Anzeigen werden meist mit Multiplex betrieben. Dabei werden immer nur einzelne Segmente eingeschalten. Allerdings passiert das so schnell hintereinander, dass unsere trägen Augen das als "gleichzeitig" wahrnehmen. Dazu muss aber die Anzeige "schnell" angesprochen werden können.
Es gibt Schwierigkeiten, wenn es gleichzeitig stark blockierende Konstrukte (wie pulseIn) eingesetzt werden.

kojo753951:
Die Drehzahl messe ich durch Impulsezählen etc.

T = pulseIn(pin, HIGH) + pulseIn(pin, LOW);

So zählst Du nicht die Impulse sondern die Periodendauer des Impulssignals.

Grüße Uwe