Was ist der schnelle und elegante Weg, um PWM ohne Mikrocontroller zur Steuerung eines Servomotors zu erzeugen? Mit Potentiometer oder anderen Möglichkeiten, um das Tastverhältnis mit fester Zeitspanne zu steuern.
- Entschuldigung für das Durcheinander, ich möchte ein Hobby-Servo steuern.
Antworten:
Ich empfehle die (GASP!) 555 Timer im "astabilen" Modus . Sie finden alles, was Sie brauchen, im Link, aber ich habe sie hier nur für Sie kopiert!
Der Astable-Modus gibt Ihnen eine variable PWM-Frequenz und ermöglicht auch ein einstellbares Tastverhältnis (Gleichungen für hohe und niedrige Zeiten in der Verbindung).
Die Rennbahn:
Hinweis: Ich würde eine elektrolytische Kappe zwischen Vcc (positive Leitung) und GND (negative Leitung) anbringen, um den Effekt von Einbrüchen der Versorgungsspannung zu verringern.
Die PWM-Frequenz:
Einige Verteidigung für meine Antwort im Vergleich zu anderen in diesem Beitrag. Die meisten anderen Antworten erfordern eine Zwischenwellenform, um ein variables PWM-Signal zu erzeugen, z. B. das gemeinsame Dreieckwellen- / Komparatorverfahren. Ich sehe nicht viel Sinn darin, einen Dreieckwellengenerator (eine bedeutende Schaltung an sich) nur als Zwischenschritt zur Lösung Ihres Problems zu konstruieren.
Der 555 ist ein großartiger Analogchip und bietet genau das, was Sie brauchen. Ich wünschte, die Leute hassen sie nicht so sehr.
quelle
Die altmodische Methode, PWM mit analog gesteuertem Tastverhältnis zu erstellen, besteht darin, das analoge Steuersignal mit einer Dreieckswelle zu vergleichen. Sie erstellen einen Dreieckwellengenerator, der mit der gewünschten PWM-Frequenz läuft. Dieses wird dem negativen Eingang eines Komparators und das analoge Steuersignal dem positiven Eingang zugeführt. Das Ergebnis ist entweder voll hoch oder voll niedrig, aber das Tastverhältnis ist linear proportional zum Steuersignal. Frühe Klasse-D-Audioverstärker arbeiteten beispielsweise nach diesem Prinzip.
In vielen Fällen musste die PWM nicht superlinear sein, sodass die Dreieckswelle keine perfekt geraden Kanten haben muss. Wenn sie ein wenig exponentiell sein dürfen, kann dies die Schaltung vereinfachen.
Hinzugefügt:
Mark Rages wies darauf hin, dass Sie sich, wenn Sie "Servomotor" sagen, möglicherweise auf die kleinen positionsgeregelten Hobbymotoren beziehen, die in Modellflugzeugen und dergleichen verwendet werden. Meine Antwort bezieht sich auf die Steuerung eines Motors unter der Annahme, dass Sie eine analoge Spannung haben, die proportional dazu ist, wie stark Sie den Motor antreiben möchten. Dies gilt nicht für diese "Hobby-Servos". Diese werden nicht durch PWM im üblichen Sinne gesteuert, sondern durch die Impulsbreite, die normalerweise etwa alle 20 bis 50 ms zwischen 1 und 2 ms wiederholt werden muss. Wenn es sich bei dieser Frage wirklich um Hobby-Servos handelt, sollte dies klargestellt werden.
quelle
Dreieckwelle. Komparator. Kontrollschwelle. Das ist die grundlegende Vorgehensweise.
Erzeugen Sie zuerst eine 50Hz Rechteckwelle. Einfachster Weg:
Ich hätte dies mit zwei LM555 tun können, aber ich würde mehr externe Komponenten benötigen.
bearbeiten (über Mikrocontroller)
Ich stimme Olin zu (siehe Kommentare), dass das Ausschließen eines Mikrocontrollers kurzsichtig ist (Olin sagte "albern"). Es gab eine Zeit, in der die Entwicklung für einen Mikrocontroller kompliziert war, aber heute stimmt das nicht mehr. Sie können auch eine Programmierschnittstelle für ein paar Euro haben. Die Lösung würde dann so einfach aussehen, dass keine Nicht-Controller-Lösung mithalten kann: Sie nehmen einen ATTiny5 (Olin nimmt einen PIC10F220) in einem SOT23-6. Schließen Sie einen Entkopplungskondensator an die Stromanschlüsse und das Potentiometer an den ADC-Eingang an. Das ist es! 3 (drei) Komponenten. Das Konvertieren des ADC-Messwerts in einen Impulsbreitenausgang ist so einfach, dass es selbst für einen beginnenden Programmierer fast lächerlich ist.
Sobald Sie mit ihnen beginnen, werden Sie feststellen, dass Mikrocontroller häufig eine einfachere und flexiblere Lösung bieten als andere ICs oder diskrete Komponenten.
eine Notiz
von Ihrer anderen Frage sehe ich , dass Sie tun Verwendung Mikrocontroller. Warum willst du sie hier vermeiden?
quelle
Der einfachste Weg, ein PWM-Signal zu erzeugen, besteht darin, eine Sägezahnwelle oder eine Dreieckwelle in einen Eingang eines analogen Komparators und eine Steuerspannung in den anderen Eingang einzuspeisen. Wenn eine reine Dreieckswelle nicht erhalten werden kann, kann eine vernünftigerweise angenähert werden, indem eine Rechteckwelle durch ein RC-Filter geleitet wird, so dass der Ausgang des Filters zwischen ungefähr 1 / 4VDD und 3 / 4VDD schwankt, und dann die Steuerspannung skaliert wird in den Komparator, so dass die Steuerspannung, die ein Tastverhältnis von 0,01% ergeben sollte, in die niedrigste Spannung der gefilterten Rechteckwelle umgesetzt wird, und die Steuerspannung, die ein Tastverhältnis von 99,99% ergeben sollte, in die höchste Spannung der gefilterten Rechteckwelle umgesetzt wird Rechteckschwingung. Dies ergibt eine Impulsbreite, die nicht ganz linear proportional zur Amplitude ist, aber für viele Zwecke nahe genug ist.
quelle
Ich empfehle die Verwendung eines Niederspannungs-Netzteilsteuerungs-ICs (BiCMOS) wie dem UCC3803 . Die Betriebsfrequenz kann leicht mit einem einfachen R und C eingestellt werden, und die Tastgradsteuerung kann leicht mit einem Potentiometer durchgeführt werden. Es wird auf einer 5V-Schiene betrieben.
Der UCC3803 ist pin-kompatibel mit der PWM-Controller-Serie UCx84x. Wenn Sie ein einfaches PWM durchführen möchten, können Sie den obigen Schaltplan verwenden und dabei R1, den 2N2222 und den 5k ISENSE-Einstelltopf weglassen (binden Sie einfach Pin 3 an Masse). Sie können wahrscheinlich auch die beiden 4,7k-Widerstände in Reihe mit dem Poti zur Einstellung des Fehlerverstärkers weglassen und direkt zu Vref und Gnd wechseln oder einen expliziten Spannungsteiler verwenden, wenn keine Einstellung erforderlich ist. (Sie haben nicht angegeben, ob Sie den Arbeitszyklus einfach ändern müssen).
Der IC ist in der Lage, etwa 1 A Strom zu treiben. (Wenn Ihr Servomotor einen PWM-Eingang hat, ist dies ein strittiger Punkt.)
quelle