Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.
Ki erscheint mir schwer groß - aber egal.
WAS hast Du vor?
Eine Regelung prüft laufend den aktuellen Zustand (Das wird der INPUT sein) und versucht, Das auf SOLL zu bringen.
Dafür wird der Ausgang entsprechend angesteuert - was dahinter passiert, ist der Regelung egal.
Irgendwie muß der OUTPUT also auf den INPUT zurück wirken.
Solange noch nicht Mal klar ist, Wen oder Was Du Wie oder Wieso und überhaupt, lautet die Antwort wohl 'Häh?'
@combie
Durchaus - nur ergibt Das - in meinem Kopf - noch Nicht Rundes!
@peter1984
Wie sieht denn das Signal aus, Welches der Gleichstrom-Motor aktuell aus geben soll (laut dem Sketch) - dieses Signal muß sich ja irgendwie durch die Geschwindigkeit ändern.
DAS sehe ich aber noch nicht - und ein Poti hat an einem DC-Motor nur was verloren, wenn Dieser eine Position anfahren soll - Spricht ein Servo.
peter1984:
Ja, doch, ich bin etwas irritiert, weil Gleichstrommotoren über PWM geregelt werden. Ich möchte aber ein PWM Signal für einen Fahrtenregler.
Ja, dann mach das doch!
Was behindert dich?
OK, ein paar Tipps könnte ich dir geben:
Doku zum PID Regler lesen, solange, bis verstanden
Ein schönes dickes, modernes, C++ Buch anschaffen und auswendig lernen
Ich sag's noch Mal:
DAS, was Du ausgibst, wird's wohl sein.
Der PID-Regler gibt Dir aus der vorherigen und der aktuellen 'Position' einen Wert zurück.
Was Du Damit anstellst, ist dem Regler völlig wumpe.
Wenn besagtes Poti an einen wohl analogen Eingang kommt, muß Dieses aber mechanisch von dem angesteuerten Motor verdreht werden - sonst ist's keine Regelung sondern eine Steuerung - und der PID-Algorithmus schießt von einem Extrem ins Andere.
peter1984:
Ich dachte, ein Poti kommt an einen Analogpin, also A0 und nicht Pin0.
Das Analogpin kann auch als 0 "adressiert werden" außer A0.
Zusammenfassend.
Ein Gleichstrommotor wird mittels PWM in der Geschwindigkeit geregelt. Um die Drehrichtung zu ändern braucht es zusätzlich noch ein Drehrichtungssignal und als Ansteuerung einen H-Brücke.
Ein bürstenloser Gleichstrommotor kann durch einen Fahrtenregler angesteuert werden. Da braucht Du aber einen der in beide Richtungen den Motor dreht. Eine Ansteuerung erfolgt über die servo.h Bibliothek die mit der IDE geleifert wird.
Du brauchst aber für eine PID Regelung eine Positionsbestimmung des Motors bzw von dem was er antreibt bzw der (Umdrehungs)-Geschwindigkeit (je nachdem welche Regelung Du bauen willst).
Nur so weiß der PID-Regler wohin er regeln soll.
Wenn Du die Sollwert über einen Potentiometer einstellst aber keinen Istwert mißt brauchst Du keinen PID-Regler.
Ich dachte das Programm aus der Libary wäre komplett. Einen Auto Fahrtenregler habe ich hier rumliegen. Muss ich die servo.h in das Programm oben einfügen, um den Fahrtenregler anwenden zu können?