Woher weiß ein CD-ROM-Rotor, wann er die sich bewegende Platte anhalten muss?

Ich muss einen Mechanismus mit einem RaspberryPi wie bei CD-ROMs machen, damit ich eine Platte leicht von der minimalen Position (CD-ROM geschlossen) bis zur maximalen Position (CD-ROM offen) bewegen kann. Ich habe einen Gleichstrommotor (von CD-ROM) und kann ihm nur sagen, dass er sich um einen bestimmten Winkel drehen soll. Ich habe auch versucht, die CD-ROM selbst zu verwenden, aber sie ist viel zu groß. Wie kann ich feststellen, ob die Platte das Minimum oder Maximum erreicht hat? Oder kann ich vielleicht die CD-ROM modifizieren, um den Mechanismus kleiner zu machen (ich habe viele davon, damit ich experimentieren kann)?

Antworten (2)

Die einfachste Methode sind Endschalter. Haben Sie einen reversiblen Antriebsmechanismus und setzen Sie Endschalter an jedem Ende ein. Diese können in Reihe mit der Antriebsleistung in einer normalerweise geschlossenen Konfiguration verdrahtet werden, um die Stromversorgung an den Haltestellen physisch zu unterbrechen. Oder die Schalter können als Logikeingänge verwendet werden, um dem Mikro zu sagen, dass es anhalten soll. Bei einem zweipoligen Schalter ist es möglicherweise am besten, beides zu tun, um zu verhindern, dass der Antrieb versehentlich über die Anschläge hinaus mit Strom versorgt wird.

Die Verwendung eines RC-Servos könnte eine einfache Lösung sein, wobei die Position durch die Impulsbreite gesteuert wird. Alternativ können Sie ein Potentiometer verwenden, das wie ein Servo an Ihrem Antriebsmechanismus angebracht ist, um eine Positionsrückmeldung zu erhalten. Dies würde auf einen ADC-Eingang oder einen separaten externen ADC-Chip laufen. Es würde Ihnen mehr Feedback an der tatsächlichen Position geben, aber an den Stopps weniger genau sein.

Wenn Sie nicht damit vertraut sind, einen Motor von einem Logikausgang in beide Richtungen anzutreiben, sollten Sie sich eine H-Brücke ansehen. Dies ermöglicht eine umkehrbare Ansteuerung von Logikeingängen.

Ein anderer üblicher Ansatz wäre, den Strom zum Motor zu begrenzen (damit nichts kaputt geht, wenn er einen Endanschlag erreicht) und entweder zu erkennen, wann der Motorstrom die Grenze erreicht (die Überstromanzeige beim Starten des Motors kurz zu ignorieren). oder fahren Sie es für eine feste Zeitdauer und stellen Sie fest, dass es vollständig fahren sollte.

Nun, eine Ad-hoc-Lösung wäre, nach Stromspitzen zu suchen. Wenn Sie etwas in eine Richtung bewegen möchten, dies jedoch nicht kann, wird mehr Strom benötigt. Wenn Sie das messen, können Sie sagen, wann Sie den Endpunkt erreicht haben. Es ist nicht elegant oder präzise, ​​aber je nach Anwendung kann es die Arbeit erledigen.

Sie müssten nur eine Bedingung festlegen, dass der Strom höher ist als X für die Zeit T . Wenn Sie Erfahrung mit elektrischem Schutz haben, können Sie natürlich so etwas wie einen Überstromschutz mit Zeitzonen machen.

Es ist ein bisschen wie eine Klebebandlösung (wenn es überhaupt funktioniert), aber Sie brauchen keine zusätzliche Hardware :-)

EDIT: Ich habe gerade gesehen, dass Supercat dasselbe vorgeschlagen hat. Wenn Sie dafür stimmen, stimmen Sie bitte auch für seinen Kommentar.