Forum: Mikrocontroller und Digitale Elektronik LCD Display Ausgabe und zeitkritisches Programm


von thomasf (Gast)


Lesenswert?

Hallo allerseits,

ich möchte bei einem Projekt Daten über einen Sensor einlesen, 
berechnen und Ergebnisse über ein 16x2 LCD ausgeben. Das Ganze soll so 
um die 100 Messungen pro Sekunde umfassen. Jetzt habe ich aber bei 
sämtlichen Ansteuerprogrammen für LCD's gesehen, das immer 
Delay-Schleifen eingebaut werden bei der Ausgabe. Habe ich überhaupt 
eine Chance max. 32 Zeichen 100 mal pro Sekunde auf das Display zu 
schreiben ? Bringt es was das LCD im 8-bit Modus anzuschließen, Ausgänge 
sind noch genug da? Oder wo liegen hier realistische Werte für die max. 
Ausgabe von Zeichen an das LCD ? Danke schonmal für die Antworten.

Thomas

von Michael (Gast)


Lesenswert?

Hallo Thomas,

die typische Zeichenausgabe braucht ca. 40µS bei den 16x2 Displays; 
8-bit Ausgabe bringt es nicht, da der Displaycontroller die Bremse ist.

Zeit sparen kann man dadurch, das man nur geänderte Zeichen ausgibt. 
Letzlich ist es meines Erachtens aber unsinnig, ein LC-Display mit 100Hz 
'aufzufrischen', da niemand es so schnell ablesen kann. Die meisten 
LC-Module werden ohnehin nicht die neuen Zeichen so schnell anzeigen 
können (die flüssigen Kristalle brauchen auch ihre Zeit).

Michael

von thomasf (Gast)


Lesenswert?

Ok, habe mir die Sache nochmal durchdacht. Es würde genügen, wenn intern 
der Sensor 100 mal pro Sekunde erfaßt wird und die Daten berechnet 
werden. Eine Ausgabe könnte dann auch auf 5x pro Sekunde beschränkt 
werden bei 16 Zeichen (Änderung nur in einer Zeile) Das sollte dann 
reichen denke ich. Die Berechnungen an sich stellen bei 8 MHz und ASM 
kein Zeitproblem dar.

Thomas

von Schmittchen (Gast)


Lesenswert?

Bist du in der Lage 5 Werte/s im Kopf zu verarbeiten? Ich nehme an, daß 
du so viele Werte ausgeben willst, um eine Tendenz ablesen zu können. 
Da wäre es sinnvoll, wenn du zusätzlich noch eine Tendenzanzeige 
programmierst. Dann reicht auch <5mal pro Sekunde. Nur so als weitere 
Idee.

Schmittchen.

von Rudolf Sosnowsky (Gast)


Lesenswert?

Hallo Thomas,

Schmittchen hat Recht. Numerische Werte kannst Du gar nicht so schnell 
verarbeiten. Wenn Du eine Balkenanzeige machst, mag das angehen. Die 
Geschwindigkeit des Fluids spielt natürlich auch eine Rolle. Ich würde 
die Messung von einem Timer interruptgesteuert durchführen und die 
Rohdaten irgendwo ablegen. Das Hauptprogramm macht dann die Umrechnung 
für die Anzeige, ebenfalls timergesteuert. Ein anderer Teil des 
Hauptprogramms übernimmt nur die Ausgabe auf das Display, inklusive 
Formatierung. Damit hast Du z.B. folgende Möglichkeiten (Zahlen nur als 
Beispiel!):

1. Messung und Speicherung alle 10 ms
2. Umrechnung und Mittelwertbildung im Hauptprogramm alle 100ms
3. Formatierung und Ausgabe alle 500ms

Gruß, Rudolf.

Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de

von thomasf (Gast)


Lesenswert?

Hallo,

also ich möchte die Beschleunigung messen (mittels Sensor). Ausgegeben 
werden soll (ermittelt oder daraus  errechnet) der zurückgelegte Weg, 
die vergangene Zeit sowie die aktuelle Geschwindigkeit. Nebenbei sollen 
ein Maximalwertspeicher sowie Schlüsselwerte (400m Zeit, 1000m Zeit 
etc.) gespeichert werden und bei Bedarf per Tastendruck nach Messende 
aufgerufen werden können.
Ich müßte also nur den Weg und die Geschwindigkeit zeitkritisch 
berechnen für die Ausgabe. Zeit und Beschleunigung liegen ja direkt vor 
und müssen nur formatiert werden. Sollte doch zu machen sein ?!?!?
Ach ja, die Messgenauigkeit sollte schon nicht zu schlecht sein, also 
bei der Bestimmung der 400m Zeit maximal 0,1 sek Abweichung ! Sonst kann 
ich auch 2 Lichtschranken und ne Stopuhr nehmen und das Projekt wäre 
sinnlos :-)

von Schmittchen (Gast)


Lesenswert?

> Sollte doch zu machen sein ?!?!?
> die Messgenauigkeit sollte schon nicht zu schlecht sein
Ich bin da sehr skeptisch. Ich gehe davon aus, daß du zu Fuß unterwegs 
bist. Da gibts jede Menge Stöße, die viel stärker sind als die 
tatsächlich interessierende Größe (Beschleunigung in Bewegungsrichtung) 
- auch wenn du einen Sensor nimmst, der 2 Beschleunigungsrichtungen 
messen kann (und evtl. Störungen rausrechnen/minimieren kannst...?).

Je nachdem wo du die Sensoren am Köper anbringen willst, treten 
unterschiedliche Störungen auf.
Am Fuß/Bein: Starke Erschütterungen in Hochrichtung -> Verfälschung 
der zu messenden Werte in Laufrichtung (u.a. da der Fuß sich "dreht" und 
dadurch die Sensoren mitdreht).
Brustgurt: weniger Erschütterungen als am Fuß, aber auch fast keine 
Beschleunigungsänderungen in Laufrichtung. Oberkörper bewegt sich ja 
ziemlich gleichförmig.
Du kannst mit dem Sensor aber nur Beschleunigungen messen, also 
Geschwindigkeits_änderungen_.

Die Auswertung der sauberen Signale (wenns die nur gäbe) würde nicht so 
schwer ausfallen. Um die Geschwindigkeit zu ermitteln mußt du 1x 
integrieren, für den Weg mußt du 2fach integrieren. Die Zeit kannst du 
mitzählen.

Eine GPS-Auswertung würde ich als genauer einschätzen als die 
Beschleunigungsmessergeschichte.

Du hast also ganz andere Probleme, als 5 Werte/s visuell zu erfassen.

Schmittchen "hoffentlich nicht am Thema vorbei".

von thomasf (Gast)


Lesenswert?

Hallo,

nein, das ganze wird in einem Auto/Motorrad mitgeführt. Aber du hast 
recht, ich hatte auch zur Fehlerkorrektur vor den 2. Ausgang des Sensors 
(ADXL202 von Analog Devices) auszulesen.
Ich weiß, das es prinzipiell funktioniert, habe das schonmal am Notebook 
erfaßt (mit AD Wandler). Nun möchte ich das Ganze in ein kompaktes Gerät 
bauen. Ich versteife mich jetzt nicht unbedingt auf eine hohe Anzahl an 
Ausgaben von Werten pro Sekunde, mich interessiert ja eigentlich nur was 
technisch mit AVR und LCD machbar ist :-)

von Schmittchen (Gast)


Lesenswert?

> das ganze wird in einem Auto/Motorrad mitgeführt
Aha. Da kann ich mir das schon eher vorstellen. Durch die Angabe 
400m/1000m habe ich auf Läufer/Leichtathletik getippt.

Idee: Wenn du den Sensor nur schwach mechanisch mit dem Auto in 
Stoßrichtung (Hochachse) koppelst (also dem Sensor quasi extra 
Stoßdämpfer verpaßt), dann wären die Erschütterungen zumindest etwas 
gedämpft. Aber das bringt dann deine Meßreihe ans Licht (deren 
Ergebnisse du hier sicher bekannt gibst?!).
Für das Auto/Moped-Projekt sehe ich deutlich bessere Chancen auf eine 
höhere Genauigkeit als beim LäuferModell.

Aber nochmal: Du kannst nur Geschwindigkeits_änderungen_ messen. 
Konstante Geschwindkeit kannst du direkt nicht von Stillstand 
unterscheiden. Also ein Boardcomputer im herkömlichen Sinne wird daraus 
nicht (aber das willst du ja auch nicht).

Analog hat einige interessante Appnotes auf der Webseite. U.a. auch ein 
Pedometer (hier wird aber nur erkannt, wann der Fuß aufsetzt und mit der 
durchschnittlichen Schrittlänge multipliziert).

Wenn du deinen Sensor dann um 90° drehst, dann kannst du auch noch die 
Kurvenbeschleunigung messen - oder die Kurvenlage (tilt).

Zur Auswertung: Du schreibst, daß du die Werte mit einem AD-Wandler 
eingelesen hast. Der ADXL202 bietet aber auch einen "duty cycle output", 
den könntest du per ICP und Timer auch Auslesen, evtl. wird das genauer, 
da die DA-AD-Wandlung entfällt.

Halte uns auf dem Laufenden.

Schmittchen.

von Rudolf Sosnowsky (Gast)


Lesenswert?

Hallo Thomas,

irgendwie verstehe ich nicht, warum Du die Streckenfunktionen über einen 
Beschleuingungssensor erfassen willst. Einfacher ist doch, irgendwo an 
Deinem Fahrzeug ein Wegsignal abzugreifen. Dann hast Du die Zeit (von 
Deiner AVR-Zeitbasis) und den Weg (von Deinem Weggeber).
Deine Größen bestimmst Du wie folgt:
- zurückgelegter Weg: Zahl der Wegimpulse durch Wegkonstante (Impulse 
pro Strecke)
- vergangene Zeit: AVR-Zeitbasis
- aktuelle Geschwindigkeit: Delta Strecke durch Delta Zeit
- Maximalwertspeicher: trivial
- Schlüsselwerte (400m Zeit, 1000m Zeit etc.): trivial

Oder hab ich Dein Problem nicht verstanden?

Gruß, Rudolf.

Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de

von Christian (Gast)


Lesenswert?

Hi Thomas,

ich würde auch die Idee von Rudolf verwirklichen - ich hab' mich mal ein 
wenig mit Beschleunigungsmessung und Berechnung der Strecke daraus 
beschäftigt. Ich weiß nicht, welche Erfolge du bereits mit deinem Laptop 
hattest, aber ich kann mir fast nicht vorstellen, dass es dir gelungen 
ist damit eine Strecke zu messen!!
Problem:
die Erdbeschleunigungs wird mitgemessen - du musst also das ganze 
absolut waagrecht halten um die Erdbeschleunigung weglassen zu können - 
dabei hilft dir auch dein 2. Beschleunigungssensor nicht, da er nicht 
zwischen Winkeländerung und tatstächlich zu messender Beschleunigung 
unterscheiden kann.

2. Prob:
Bias: - die Genauigkeit ist glaub ich 2mg oder 4mg - setz doch mal in 
deine Formel ein Rauschen von 2mg über 60sek ein und sag' mir welche 
Geschwindigeit du dann hast - bei Streckenmesssung ist der Fehler durch 
2x integrieren noch viel viel größer!!!!

3.Prob:
der digitalport ist möglicherweise aufgrund der Vibrationen im Fahrzeug 
unbrauchbar - Abhilfe: Analogausgang nutzen und filtern!! Bsp: 
http://autopilot.sourceforge.net/rev2.2.html mitte

Das angesprochene Problem mit der nicht vorhandenen Beschleunigung bei 
konst. Geschwindigkeit wäre eigentlich gar kein Problem - dafür gibt es 
schon Formeln...

Ich hab' keine Ahnung wie gut du bereits informiert bistoder nicht, aber 
folgende Suchworte könnten dir bei google weiterhelfen: "integration 
beschleunigung" INS .....

Interessante Links:
http://www.electronic-engineering.ch/study/ins/ins.html (ganz unten auf 
der Seite gibts ne deutsche Version!!!!) Lies dir das auf jeden Fall 
durch - da steht drin warums nicht geht (ich war auch enttäuscht weil 
ich meine Idee anfangs auch großartig fand)

http://www.genesys-offenburg.de/archiv/iss/inertial.htm
http://www.media.mit.edu/resenv/imu/

mfg

Christian

von thomasf (Gast)


Lesenswert?

Hallo,

ich danke allen erst einmal für die Beiträge. Also an der mathematischen 
Umsetzung wirds nicht hapern. Ich denke nach ein paar Semestern 
Physik-Vorlesung sollte das Grundwissen da sein :-). Um die Mess-Fehler 
zu korrigieren, muss ich ein paar Versuchsreihen durchführen, ist auch 
klar.
Ich habe mir übrigens von Analog Devices ein paar PDF-Dokumente zu dem 
ADXL202 heruntergeladen. Unter anderem werden hier die Punkte 
Fehlerreduzierung, Kalibrierung und mathematische Operationen intensiv 
abgehandelt. @Christian: Es sind nach diesen Unterlagen von AD wohl auch 
Messungen mit Auflösungen von 1 mg möglich ! Von dem ADXL202 gibt es 
mittlerweile 2 Ausführungen, eine verbesserte mit höherer Genauigkeit 
ist verfügbar.
Auf jeden Fall wird es hier einen Link geben mit meinem Projekt, 
versprochen !

von thomasf (Gast)


Lesenswert?

Hallo nochmal,

zu allen anderen Vorschlägen einen Wegimpuls einfließen zu lassen: Das 
funktioniert nicht, zumindest nicht mit der Genauigkeit wie bei der 
Beschleunigung. Es gibt hier noch viel schlimmere Störgrößen, z.B. 
Schlupf an den Rädern oder z.B. die Ausdehnung von Reifen bei hohen 
Geschwindigkeiten durch die Fliehkraft u.s.w. Das Gerät soll bei 
(legalen!) Beschleunigungsrennen ins Auto gebaut werden. Und bei solchen 
Rennen hab ich schon Fahrzeuge gesehen, die auf fast 400m 2 schwarze 
Linien gezogen haben. Deren km-Zähler wird da wohl 800m angezeigt haben 
:-) Die Eingangsgröße Beschleunigung scheint mir nach reiflicher 
Überlegung ideal.
Nochmal zum Thema Einfluß von Stößen etc. auf die Genauigkeit: Es sind 
natürlich nur entsprechende Straßen für Messungen geeignet, logisch. Das 
auf Kopfsteinpflaster nur Müll rauskommt ist schon klar :-))

von Rudolf Sosnowsky (Gast)


Lesenswert?

Hallo Thomas,

hättest Du uns diese Randbedingungen von Anfang an mitgeteilt, hätten 
wir hier nicht herumorakeln müssen...
Interessant war die Diskussion trotzdem.

Gruß, Rudolf.

Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de

von Andreas H (Gast)


Lesenswert?

und wenn Du die Geschwindigkeit an den antriebslosen Rädern abgreifst? 
Sofern Du natürlich kein Allrad betriebenes fahrezug verwendest...

Im TV bei den Testberichten (Motorvision oder Auto-Motor-Sport-TV) sieht 
man häufig, daß die für Ihre Tests ein Zusätzliches Speichenrad ähnlich 
wie vom Fahrrad außen an der Karosse befestigen und mitführen, ich nehme 
mal an, daß das bei Beschleunigungsrennen wohl nicht so cool kommt, 
oder? ;-)

Ich wäre auf jeden Fall mal neugierig, was bei Deinem Projekt bei 
rauskommt. Wäre klasse, wenn Du das irgendwo im Netz veröffentlichen 
würdest.

ciao,
Andi

von Andreas H (Gast)


Lesenswert?

Hallöchen nochmal...

Ich hab grad noch was interessantes im netz gefunden, während ich auf 
der Suche nach Radarsensoren für Alarmanlagen war... man findet halt 
allen Mist nur nicht was man sucht... ;-)

Sieh mal hier:
http://www.mso-technik.de/precisionfarm.html#tgss

Es handelt sich um eine Geschwindigkeitserfassung per Radarsensor, 
könnte genau das richtige für Dein Projekt sein... Auf der Seite geht es 
zwar eigentlich um Landwirtschaftliche Technik, aber 
theoretisch.........

ciao,
Andi

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.