Drehzahlmesser mit 4 stelliger 7Segment-Anzeige

Hi Michaela,

du machst es also so das du 3x den vorherigen gemittelten und angezeigten Wert
mit dem aktuellen Meßwert addierst und dann durch 4 teilst. Ist ne recht einfache
Methode. Der Meßwert tendiert also langsam mit jeder Messung immer mehr zum
wirklichen Wert bleibt soweit relativ ruhig.

Die Methode kann man wunderbar verwenden wenn man zB die Drehzahl eines Motors
anzeigen will den man anschaltet und dann in der Drehzahl kaum bis garnicht verändert.

Ich hab aber leider folgendes ...
Man spannt nen Bohrer/Senker/... ein und schaltet die Maschine an. Dann sieht man
das die Drehzahl nicht zum Bohrdurchmesser oder Material paßt. Also dreht man am
Knopf des Frequenzumrichters bis die gewünschte Drehzahl erreicht ist. Bei der
Verstellung kann man da auch mal schnell von 500 auf 4000 drehen oder von 6000
zurück auf 1000. Bei deiner Methode läuft der Anzeigewert aber leider sehr langsam
hinter der Verstellung der Drehzahl hinterher. Man will nun nicht 10-20sec warten bis
man den tatsächlichen Wert auf der Anzeige sieht. Das würde die "menschliche
Regelstrecke" ... Anzeige ansehen <-> Wert verstellen ... doch relativ stark behindern.

Ich habe also als Drehzahl einen sehr "dynamischen" Wert vor mir der auch mal schnell
hoch oder runtergedreht wird. Man muß also innerhalb von einer Sekunde auch den
tatsächlichen Wert ablesen können der grade anliegt.

Bei dir wird der vorherige Anzeigewert bei der neuen Mittelwertbildung mit 75%
gewichtet und der neue Meßwert mit 25%. Daraus wird der neue Anzeigewert
gebildet. Du schleppst also etliche Messungen bei der neuen Anzeige mit die bei
der Verstellung der Drehzahl auf der Anzeige eine sehr zähe Reaktion bewirken.

Gruß
Dino
 
hihihi, wenn genau gelesen haettest, wird die Drehzahl erst ab einer bestimmten Mindestdrehzahl geglaettet. Wenn die Glaetterei wegen mir 20 Impulse hinterherhinkt, bis die aktuelle Zahl hast, dann ist das bei einem Update von 1 mal pro sec wohl nervig, aber wenn pro sec 20 oder 30 Impulse hast, was einer Drehzahl von 1200 bzw. 1800 Umdrehungen entspricht, dann isses egal.
Richtig oder richtig???

gruss
wolf
 
Hallo Leute,

ich hab jetzt eure Drehzahlanzeige für mein Moped nachgebaut :cool:. Ich habe nur eins geändert:
Frequenz = 480000000 / Zahl
in
Frequenz = 240000000 / Zahl
da mein Moped für einen Impuls 2 Umdrehungen macht.

Jedoch läuft das Programm nicht richtig, beim Einschalten wird nur "0-0-0-0" angezeigt, jedoch flackert die Anzeige

.


Nach sehr kurzem Ausschalten wird nun eine Drehzahl angezeigt, die natürlich wieder flackert :fie:. Ich hab mir mal die mühe gemacht, eine .gif Datei zu erstellen:

http://imgflip.com/gifgenerator

Habt ihr eine Idee wie ich das flackern und korrekte Drehzahlen bekomm? Als Impulsgeber hab ich vorübergehend nen NE555 ;) Nach Berechnungen müssten 6352 U/m angezeigt werden :stupid:
 
Hi Nici,

ich hab jetzt eure Drehzahlanzeige für mein Moped nachgebaut :cool:. Ich habe nur eins geändert:
naja ... im ersten Beitrag sieht man wo er her ist (mikrocontroller.net). Der liegt jetzt auch schon wieder nen Jahr hier rum :rolleyes: Müßte ich mich jetzt auch erstmal wieder etwas länger mit befassen.

Gruß
Dino
 
Hi
Mal abgesehen davon, das dies Beiträge von 2011 sind, wo du dich einklinkst, will ich mal versuchen, dir ein wenig zu helfen.
Die Anzeige scheint am Programmzyklus zu hängen und du hast vermutlich ein paar mathematische Formeln, die du abarbeitest. d. h. dein Programmzyklus ist nicht konstant gleich. Ich vermute mal, du programmierst in BASCOM. Da vergißt man schnell, das je nach Art der Zahlenformate auch ein nicht geringer Zeitaufwand für den Zyklus zur Berechnung verbraten wird.
Um eine konstant gleichmäßige Anzeige zu bekommen, solltest du im Controller einen Zeittakt von 1 mSek durch Interrupt erzeugen.
Dann gehst du folgendermaßen vor. Dein Programm bearbeitet die Werte, die du anzeigen möchtest, wandelt sie in 7 Segment-Code und schiebt diese konvertierten Zahlen in einen Puffer. Das passiert in der Hauptschleife!

--> Der Interrupt schaltet alle Segmente aus!
--> Holt den Code für die nächste Stelle und gibt diesen aus.
--> Schiebt das Adressbit, Enablebit oder wie du es nennen magst auf die nächste Anzeigestelle
--> schaltet die Anzeige wieder ein.

Nun ist die Anzeige unabhängig von der Programmzykluszeit und das Flackern sollte ein Ende haben.
Wichtig ist halt, das du Berechnen der Zahlenwerte und umsetzen in 7Segmentcode dem Hauptprogramm überläßt und in der ISR nur den Puffer mit dem Code anfaßt.
Gruß oldmax
 
Hallo,

und noch ein etwas länger liegendes Projekt ...

Letzter produktiver Beitrag von mir: 07.04.2011, 20:31

am 20.04.2013, 09:25
Der liegt jetzt auch schon wieder nen Jahr hier rum :rolleyes:

und am 22.04.2013, 09:27
Mal abgesehen davon, das dies Beiträge von 2011 sind, wo du dich einklinkst, ...

Ui ui ui ... :rolleyes: :eek: Noch ne Bauteilleiche auf dem Schreibtisch die auf Vollendung wartet :p
Wird auch mal Zeit das es da weitergeht. Liegt auch schon 2,5 Jahre rum :eek: Na mal sehen ...

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)