Datenauswertung Inkrementalgeber

Gast #2618794
Lesenswert?

Hallo,
folgendes Problem:

Ich habe einen Inkrementalgeber, der über ein Arduino Board mit einem 
ATMEL ATMEGA328 Impulse für eine Bewegung hoch bzw. runter zählt. Dabei 
sollen Hin- und Her- Bewegungen über die Zeit als Messdaten 
aufgezeichnet werden.
Als Zeitstempel wird der interne Wert des zur Zeit laufenden Prozessors 
verwendet.

Die Echtzeitausgabe der Werte über die serielle Schnittstelle ist 
anscheinend zu langsam, sodass die Abtastung nicht mehr schnell genug 
läuft und Signale verloren gehen.

Nun wäre es hilfreich, zum Beispiel 1000 Schritte in ein Array 
aufzunehmen, also in einer Art Aufzeichnungsphase, der Geber wird dabei 
bewegt, anschließend wäre die Aufzeichnungsphase vorbei und das Array 
wird dann über die seriellle Schnittstelle ausgegeben. Diese Lösung 
funktioniert bereits, allerdings begrenzt der Speicher des Mega328 das 
ganze erheblich, sodass nur 400 Werte gespeichert werden können 
innerhalb eines Arrays.
Hat jemand eine Idee, das ganze irgendwie anders zu machen, also die 
Werte irgendwie zu speichern oder ausgeben zu können, ohne die 
eigentliche Abtastung des SIgnals dabei zu stören?

Bin für jeden Tipp dankbar!
Gast #2618823
Lesenswert?

Habe mich präzise genug formuliert. Also an einem Rad wird per Hand 
gedreht, und zu jedem daraufhin erzeugten Impuls soll eine Zeit mit 
gepsiechert werden.
Beispiel:
Ich drehe 5 Schritte nach vorne, Zähler zählt 5 Schritte nach vorne, und 
speichert zu jedem Wert die jeweilge aktuelle Zeit. Diese entnehme ich 
einfach aus der Laufzeit des Mikrocontrollers seit Programmstart (dafür 
ausreichend). Es geht darum, die Daten anschließend als Kurve Schritte 
über der Zeit aufzutragen.
#2618883
Lesenswert?

@  testuser (Gast)

>Die Echtzeitausgabe der Werte über die serielle Schnittstelle ist
>anscheinend zu langsam, sodass die Abtastung nicht mehr schnell genug
>läuft und Signale verloren gehen.

Kann passieren.

>Hat jemand eine Idee, das ganze irgendwie anders zu machen, also die
>Werte irgendwie zu speichern oder ausgeben zu können, ohne die
>eigentliche Abtastung des SIgnals dabei zu stören?

Mit einem FIFO, der muss nur kurze Burst von Daten puffern. 
Sinnvollerweise puffert man nur die kurzen Zeitstempel + 
Richtungsinformation, den String für den UART baut man hinter dem FIFO 
zusammen, das spart massiv Speicher.

MfG
Falk
Gast #2618994
Lesenswert?

Vielen Dank für eure Antworten.

Ich habe jetzt für die genaue Abtastung einen Timer - Interrupt 
verwendet und außerdem die Übertragung bei der Ausgabe auf 115,200 kBaud 
gestellt (habe es die ganze Zeit auf 9600 kBaud betrieben, einfach nicht 
daran gedacht) Danke hier an Frank F.

So scheint das ganze nun gut zu laufen, sodass ich mir den FIFO sparen 
kann. Aber danke für die Info darüber Falk.

Super wie schnell man hier Antworten erhält. Danke nochmal.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren