Ermitteln der Schlittengeschwindigkeit eines Druckers

OP #1250175
Lesenswert?

Hallo  alle zusammen!

Bin gerade an der Arbeit an einem Schulprojekt.
Habe hierfür von einem Drucker den Schlitten samt DC-Motor ausgebaut und 
an die Welle des Motors den Drehencoder STEC12E06 (sendet 14 Impulse pro 
Motorumdrehung) gehängt zur Bestimmung der Position des Motors durch das 
Zählen von Impulsen. Den Motor steuere ich mit einem 
L6203-H-Brücken-Baustein an.
Als nächsten Schritt in meinem Projekt muss ich die 
Momentangeschwindigkeit des Motors bestimmen mit Hilfe des PIC18F4550 in 
der Programmiersprache C.
Habe hierfür folgende Überlegung getätigt:
habe schon vorher bestimmt, dass ein Impuls des Drehencoders fast genau 
1mm Fahrtstrecke des Schlittens entspricht. Nun müsste ich nur noch die 
Zeit messen können, die z.B. nach 5 Impulsen des Encoders vergeht. So 
könnte ich dann einfach v=s/t rechnen und schon hätte ich die 
Durchschnittsgeschwindigkeit über eine kurze Strecke, welche eigentlich 
keine großen Abweichungen zur Momentangeschwindigkeit aufweisen sollte 
oder?
Optimaler wäre es für mich aber noch die Momentangeschwindigkeit zu 
bestimmen, doch diese kann man normalerweise nur durch Differenzieren 
ermitteln soweit mir bekannt ist.

könnt ihr mir vielleicht mit Hilfe eines C-Codes weiterhelfen, wie ihr 
die Momentangeschwindigkeit ermitteln würdet mit meinen vorhandenen 
Mitteln und wenn das nicht geht, einfach wie man die benötigte Zeit für 
die Durchschnittsgeschwindigkeit programmtechnisch ermitteln kann 
(vielleicht durch timer0?!?)

Mit Dank im Vorraus
lg
OP #1250329
Lesenswert?

@ Lothar Miller
ist mir wohl bewusst, dass dieses Bauteil nicht ewig halten wird, aber 
mir geht es nur um die Erstellung eines Prototyps und ich habe zu wenig 
Zeit, um noch Alternativen für die momentanen Bauteile zu finden!

@ Rufus t. Firefly
kannst du mir vielleicht einen ungefähren Programmcode dafür zeigen?
Gast #1251080
Lesenswert?

unfug

du hängst den encoder an das capture modul des pic, zählst die zeit 
zwischen 2 flanken mit interrupt und der rest is mathe.

vorteile: du brauchst nicht eine gewisse zeit lang zählen, sondern hast 
das ergebnis sofort nach einem schritt.

nachteil: eventuelle überläufe bei extrem langsamen vorschüben und 
probleme wenn der encoder prellt.
#1251097
Lesenswert?

Christian K. schrieb:
> Habe hierfür von einem Drucker den Schlitten samt DC-Motor ausgebaut und
> an die Welle des Motors den Drehencoder STEC12E06

Ich schätze, diesem völlig ungeeigneten Encoder einigermaßen verläßliche 
Positionsangaben zu entlocken dürfte sogar für nen Softwareprofi recht 
sportlich sein.
In dem Drucker muß doch aber schon irgendein Sensor drin gewesen sein, 
der ist bestimmt viel besser geeignet.


> könnt ihr mir vielleicht mit Hilfe eines C-Codes weiterhelfen, wie ihr
> die Momentangeschwindigkeit ermitteln würdet mit meinen vorhandenen
> Mitteln und wenn das nicht geht, einfach wie man die benötigte Zeit für
> die Durchschnittsgeschwindigkeit programmtechnisch ermitteln kann
> (vielleicht durch timer0?!?)

Du kannst pro Puls die Zeit messen, dann hast Du die Geschwindigkeit.
Da dieser Encoder aber prellt wie Sau, wird das nicht einfach.

Wenn Du nur noch wenig Entwicklungszeit hast, nimm einen optischen 
Encoder.
Ein ungeeignetes Bauteil spart keine Zeit sondern kostet das 10-fache an 
Zeit.


Peter

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