Forum: Mikrocontroller und Digitale Elektronik Tachometer auf Display


von Axel P. (funkydunky)


Lesenswert?

Hi,
ich programmiere gerade ein Tachometer für einen kleinen Motor, welches 
auf ein LCD Display ausgegeben werden soll.(Geschwindgkeitsmessung und 
LCD Ansteurung funzt schon)

Ich dachte mir, das ich ein Tachometer wie auch im Auto zeichne(Ein 
Kreis, und vielleicht 330Grad werden zur Geschwindigkeitsanzeige 
genutzt. Unten ist dann halt eine Lücke zwischen Min und Max 
Geschwindigkeit)
Maximal sollen 400 km/h dargestellt werden können, und sagen wir ich 
nutze 330° zur Anzeige, dann würde 1 km/h Geschw.änderung doch 
330/400=0,6 Grad Zeigeränderung entsprechen, oder?
Dann müßte ich doch nur von einem Nullpunkt ausgehen, die Anzahl der 
Gradsegmente aufaddieren die der jeweiligen Geschwindigkeit entsprechen 
und das dann in xy-Polarkoordinaten umrechnen...

Würde das erstmal so funktionieren?

Aber für die Berechnungen brauche ich ja trigonometrische 
Funktionen..ist das nicht ar...langsam? Kann man das irgendwie durch 
Tricks vereinfachen und die sin/cos Funktionen vermeiden? Ich habe da 
Linien/Kreisalgorithmen von einem Herrn Bresenham gefunden, die ziemlich 
genial zu sein scheinen und ganz ohne sowas auskommen. Gibts sowas 
ähnliches auch für sinus etc?
Oder ist mein ganzer Ansatz Mist und zu Umständlich?

noch eine Frage zur Polarkoordinatenumrechnung:
Ich habe bei Wikipedia geschaut, und diese ganzen Polarformeln haben als 
0Grad Ursprung die X-Achse. Kann man diesen Ursprung auch irgendwie an 
eine andere Stelle legen(wie würde sich das in der Formel auswirken?

Und wie wirken sich globale Variablen auf die Geschwindigkeit aus? 
Werden die irgendwie langsamer angesprochen? Oder ist das egal?

Sorry falls das alles Kindergartenfragen sind, aber ich bin Anfänger und 
muss noch viel lernen. Evtl hab ich auch erstmal ganz andere Probleme 
als mich um irgendwelche Geschwindigkeitsoptimierungen zu kümmern ;P

P.S: Ich arbeite auf einem H8S irgendwas Hitachi mikroc.

von Condi (Gast)


Lesenswert?

Welche Auflösung hat das Display und wieviele Pixel Durchmesser hat der 
Kreis?

von Axel P. (funkydunky)


Lesenswert?

also das display hat 240*128 und der kreis hat einen durchmesser von 
120px

von Condi (Gast)


Lesenswert?

Naja dann wird das eh nix mit 0,6 Grad. Wie zeichnest du denn den Kreis?

Im Prinzip brauchst du ja nur den Mittelpunkt und dann eine Tabelle mit 
60 x,y Punkten. Die sollten einen viertel Kreis ergeben. Den kannst du 
dann in alle Richtungen drehen wie du es brauchst. Den Zeiger kannst du 
dann mit dem Bresenham bzw. dem Anstieg machen. Du hast ja dann den 
Mittelpunkt und auch die Zielkoordinaten vom Kreis.

http://de.wikipedia.org/wiki/Bresenham-Algorithmus

Hier ist auch Beispielcode dabei.

von Axel P. (funkydunky)


Lesenswert?

also den kreis zeichne ich mit dem bresenham kreisalgorithmus von 
wikipedia...das funktioniert auch wunderbar.

das mit der tabelle ist eine idee. ich las mir das mal durch den kopf 
gehen und versuche da ne lösung für mich zufinden und das irgendwie 
hinzufrickeln

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.