Forum: Mikrocontroller und Digitale Elektronik Programmierprobleme


von Bernd (Gast)


Lesenswert?

Hallo Leute,

ich habe ein programmier Problem und bräuchte Hilfe bzw. Ideen! Ich
habe ein µC (PIC 18F458) den ich mit C programmiere. An dessen A/D Port
habe ich einen Sensor (Hal 805) angeschlossen und an vier Ausgängen ist
eine Transistorbrückenschaltung angeschlossen, die durch entsprechende
Ansteuerung einen Gleichstrommotor bewegt. Der Sensor gibt mir immer
den aktuellen Istwert, an welcher Position sich der Motor gerade
befindet. Durch eine Sollwerteingabe erhält das System den Befehl in
diese Position zu fahren. Ich habe dies über einen ständigen Soll-
Istwert Vergleich realisiert. Das ganze funktioniert auch alles ganz
gut, bis auf die Tatsache, dass der Motor bei erreichen der
Sollposition nicht genau stehen bleibt. Er "ruckelt" quasi immer um
die Position herum.
Meine Vermutung ist es, dass der Sensor um ein paar Digits schwankt und
somit erhält der Motor immer einen neuen Startbefehl. Wodurch kommt
diese Schwankung? Kann ich mir irgendwie Störsignale auf den A/D Port
durch den Motorstrom etc. einfangen? Wie kann ich das beheben? Gibt es
eine Möglichkeit, dass ich mich dem Sollwert schrittweise nähern kann?

Danke für eure Hilfe!

Grüße Bernd

von Michael (Gast)


Lesenswert?

lass doch erst eine Ändeung des Soll-Wertes zu ,wenn die
Ist-Wert-Ändeung eine gewisse Größe erreicht hat.
michael

von Bernd (Gast)


Lesenswert?

Die Sollwerteingabe erfolgt über einen Steuerrechner mittels CAN-Bus.
Den gebe ich einmal vor und die nächste Eibgabe soll erst erfolgen wenn
die Position erreicht ist. Er erreicht den Wert auch bei langem Warten
nicht.
Abhilfe könnte auch eine PWM Steuerung bringen, aber da wies ich nicht,
wie man die Programmiert in C. So fit bin ich darin leider nicht! Hat da
vielleicht jemand nen entsprechenden Code?
Bernd

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.