Bosch 24V Motor via GPIO steuern.

  • Hallo Leute,



    ich mal wieder mit einem neuen Problem:
    Ich habe hier einen Bosch VMC 12V 0.22W Motor (0 132 801 141). Datenblatt hänge ich mal an (PDF): Bosch Steppermotor Bypass 24V.pdf


    Ich denke, dass ist ein Schrittmotor, bin mir da aber nicht sicher. Genaue Details sind hier zu finden.
    Das Einsatzgebiet bei mir ist eine Klappe, die zwischen zwei Positionen (auf/zu) wechseln soll. Aber auch dazwischen auf definierten Positionen (wenn möglich).


    Der Raspi soll den Motor steuern und ihm "sagen", dass er "auf" machen soll oder "zu".


    Jetzt habe ich aber (mal wieder) keinen Plan, welche Schaltung ich dafür verwenden kann. Leider werde ich aus dem Datenblatt auch nicht wirklich schlau. Soweit ich das verstanden habe, sind 5 Anschlüsse vorhanden. An 4 und 6 ist die 24V Versorgungsspannung. Ändert sich die Polarität, dreht der Motor in die andere Richtung. :daumendreh2:
    An 1 liegt wohl Masse und an 2 und 3 verschiedene Spannungen, die wohl die Zielposition steuern. Habt ihr eine Idee, was ich da anlegen soll/ kann/ darf? Das würde ich vermutlich mittels einem Spannungsteiler realisieren können (muss nicht stufenlos sein). Soweit habe ich das schon gelernt. :thumbs1:


    Und wie bekomme ich mit Hilfe einer Schaltung die Polung geändert? :denker:


    Alles mit GPIO gesteuert.


    Jemand Ideen?


    Danke!

  • Hallo knebb !


    Das ist aber kein Stepper-. sondern ein Getriebemotor mit eingebautem Positionsgeber (Potentiometer).


    Da der raspi keinen Analog-/Digital- Wandler besitzt, musst Du erstmal eine Spannung an das Potentiometer anlegen und die Signalspannung über einen A/D Wandler dem SPI oder I2C des Pi übergeben. Vorwärts-rückwärts Drehen ist dabei das kleinere Problem.



    Servus !

    RTFM = Read The Factory Manual, oder so

  • Moin,
    das ist kein Steppermotor. Es handelt sich um einen Gleichstrommotor mit 24 V Betriebsspannung. Wie das Datenblatt beschreibt, hat er wohl noch ein Poti, welches zum Auswerten der aktuellen Wellenstellung benutzt werden kann. Das würde aber ohne weiteres nicht mit dem Raspi gehen, da dieser keine A/D Eingänge besitzt.


    Diesen Motor kannst Du nicht direkt mit dem Raspi mit Strom versorgen. Ich empfehle Dir Relaisstufen. über die hier im Forum schon diskutiert wurde. Damit kannst Du dann auch vorwärts/rückwärts fahren.


    Was Du mit einem Spannungsteiler bezweckst, ist mir unklar.


    Grüße

  • Aaaaahh! Damit kann man gar nicht die gewünschte Position angeben, sondern nur die aktuelle Position ablesen? Das brauche ich ja garnicht :D


    Und dann steuere ich die Position nur über die Dauer der angelegten Spannung? Ich gehe mal davon aus, dass es dem Motor nichts ausmacht, wenn die Spannung weiter anliegt, obwohl er seine maximale (bzw. minimale) Position bereits gefunden hat?


    Na, dann läßt der sich ja doch recht einfach via Raspi steuern. Halt nicht auslesen, aber das ist ncht so wild. Einfach eine H-Schaltung (Danke für den Hinweis, da klingelt bei mir etwas) für die Polarität und dann nach soundsovielen Sekunden wieder abschalten. Dann paßt das!


    Super!


    Danke, ich werde mal weiter suchen.


    /KNEBB


  • Aaaaahh! Damit kann man gar nicht die gewünschte Position angeben, sondern nur die aktuelle Position ablesen? Das brauche ich ja garnicht


    Oder vielleicht doch? Wenn du die Position ablesen kannst, kannst du auch an der richtigen Position anhalten - wie wäre das?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!


  • Wenn du die Position ablesen kannst, kannst du auch an der richtigen Position anhalten - wie wäre das?


    Schon, aber dann brauche ich ja wohl doch wieder irgendwie einen A/D Wandler. Glaube, das wird mir zu kompliziert. Warum kann ich das nicht via Zeit machen? Einmal den vollen Lauf messen und dann nach der Hälfte die Versorgungsspannung kappen....

  • Weil Du da keine Kontrolle mehr hast. Wird da irgendwas zwischen drin blockiert, zerlegst Du Dir den Motor oder Dein Konstrukt spätestens beim Fahren in die Gegenrichtung.
    Du müsstest also immer einen definierten Start- und Endpunkt haben. Und dazu setzt man in der Regel eben Endschalter ein.


    cu,
    -ds-


  • Weil Du da keine Kontrolle mehr hast. Wird da irgendwas zwischen drin blockiert, zerlegst Du Dir den Motor oder Dein Konstrukt spätestens beim Fahren in die Gegenrichtung.
    Du müsstest also immer einen definierten Start- und Endpunkt haben. Und dazu setzt man in der Regel eben Endschalter ein.


    Hmmm...dann muss ich mich wohl doch mit dem Auslesen der Indikatorspannungen beschäftigen :baeh2:


    Aber zum Testen würde mir die reine Steuerung schon reichen. Ich habe da jetzt den Thread gefunden und denke, dass ich das in Verbindung mit dem Link
    hinbekomme und werde das mal testen. Ich dneke, das kriege sogar ich hin :blush:


    Und wie mache ich das mit dem Signal? A/D-Wandler? Habe ich garkeinen Plan von....
    Endschalter gehen nicht wirklich, das Ding ist recht verbaut...


    /KNEBB

  • Naja ... das mit dem Poti als Positions-Melder wird auch nur dann relativ einfach, wenn eine Umdrehung der Motorachse ausreicht.
    Ich fürchte nämlich, dass das Poti von meinetwegen 0 bis 10 kOhm geht und nach einer Umdrehung wieder bei 0 (oder eben 10k) anfängt.
    A/D Wandler ... da gibt's hier im Forum auch einiges zu finden.


    cu,
    -ds-


  • Naja ... das mit dem Poti als Positions-Melder wird auch nur dann relativ einfach, wenn eine Umdrehung der Motorachse ausreicht.
    Ich fürchte nämlich, dass das Poti von meinetwegen 0 bis 10 kOhm geht und nach einer Umdrehung wieder bei 0 (oder eben 10k) anfängt.
    A/D Wandler ... da gibt's hier im Forum auch einiges zu finden.


    Hmmm...im Anschlußbild steht ja u bzw U- ich messe also die Spannung, nicht den Widerstand, oder?
    Kann ich dann so etwas wie hier nutzen? Befürchte, dass die Umax aber der Versorgungsspannung von 24V entspricht- dann wird der Chip ja gegrillt....


    Na, ich werde mal das Netzteil dranhängen und die Spannung messen. Das kriegen wir schon hin :D

  • Hi,


    ... ich messe also die Spannung, nicht den Widerstand, oder?


    U = R * I ... Poti = Widerstand, über dem eine bestimmte Spannung abfällt, was rauskommt ist der Rest. Je höher R desto geringer U was am Poti rauskommt bei gleichbleibendem I.
    //EDIT: oder einfacher: je mehr U am Poti abfällt umso weniger bleibt am Ausgang des Poti übrig.
    Ich denke, ein Ausflug zum -> Elektronik-Kompendium <- kann nicht schaden ;)


    cu,
    -ds


  • Weil Du da keine Kontrolle mehr hast. Wird da irgendwas zwischen drin blockiert, zerlegst Du Dir den Motor oder Dein Konstrukt spätestens beim Fahren in die Gegenrichtung.
    Du müsstest also immer einen definierten Start- und Endpunkt haben. Und dazu setzt man in der Regel eben Endschalter ein.


    Richtig! und über den Endschalter eine Diode damit wieder die andere Richtung gefahren werden kann!



    ...dann brauche ich ja wohl doch wieder irgendwie einen A/D Wandler. Glaube, das wird mir zu kompliziert.


    AD Wandler braucht man nicht unbedingt!
    früher wurde das über die Zeitkonstante gemessen, ein Timer IC NE oder TLC 555 und es wurde ein Oszillator aufgebaut.
    Die Ausgangespulse konnten als Zeit gemessen werden und waren bei konstantem Kondensator ein Abbild der Portistellung.


    War fast in jedem Joystick am apple2, PC, c64 o.ä. alles ohne ADC
    Automatisch zusammengefügt:[hr]
    http://robotrack.org/include.php?path=article&contentid=210

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Edited once, last by jar ().

  • Wenn dir die Differenz von einer Umdrehung genau genug ist für die Position, benötigst Du keinen AD-Wandler. Die GPIOs sind getriggert. Das bedeutet, dass du eine analoge Spannung (bis 3V3) anlegen kannst und der GPIO unter einer bestimmten Spannung auf LOW liegt und darüber auf HIGH. Es müssen also nicht unbedingt immer 0 oder 3V3 als Pegel anliegen. Somit hast Du pro Umdrehung einmal einen Wechsel den Du zählen könntest. Zeit könnte bei dem Motor aber eigentlich auch recht gut funktionieren, da Du eine Untersetzung von 405 zu 1 hast, machen sich kleine Schwankungen der Drehzahl nicht unbedingt bemerkbar. Ausgelegt ist der Motor aber als Stellmotor, deswegen hat er auch ein Poti. Er ist eigentlich nicht für mehr als eine Umdrehung ausgelegt, um etwas in eine Position zu bringen. Es ist ein so genannter Verstellmotor z.B. für Scheinwerfer, Steuerklappen usw..

  • Quote

    Ausgelegt ist der Motor aber als Stellmotor, deswegen hat er auch ein Poti. Er ist eigentlich nicht für mehr als eine Umdrehung ausgelegt, um etwas in eine Position zu bringen. Es ist ein so genannter Verstellmotor z.B. für Scheinwerfer, Steuerklappen usw..


    Ok, hatte mich beim ersten Post verschrieben, meinte "Stellmotor", nicht "Schrittmotor".
    Deshalb meinte ich ja, dass ich durch Anlegen einer Spannung (u bzw. U) die Position regeln kann und das eben KEIN Ausgang ist!


    ICh werde es wohl ausprobieren müssen?

  • So, habe dann heute mal gemessen, was Spannungsmäßig so passiert, wenn die originale Steuerung da dran ist.


    Keine Klappenbewegung:
    Die kleine Spannung liegt bei ca. 2V; die große (U) bei ca. 5V. An der 24V Motorspannung liegt nichts (!) an.
    Geht die Klappe auf, vergrößert sich die kleine Spannung; U bleibt ziemlich gleich. Wärend der Klappenbewegung sind 24V meßbar.
    Die originale Steuerung bekommt auch ein Signal, welche Stellung die Klappe gerade hat (habe sie beim Öffnen einfach mal kurz festgehalten, die Anzeige blieb auf der geblockten Position und lief erst weiter, als ich losgelassen habe).


    Interpretiere ich das richtig, dass U mit 5V eine Art Referenzspannung ist und die kleine Spannung an u die gewünschte Position wiedergibt? Aber wie kriegt die Steuerung mit, an welche Position sich die Klappe gerade befindet?
    Über die Position wird festgestellt, ob der Sollwert erreicht ist und dann wird die Versorgungsspannung 24V gekappt, oder?


    Anmerkungen aus der Runde dazu?


    Wie krieg ICH das Teil denn nun gesteuert?


    Danke!


    /KNEBB

  • Also ist die max. Spannung an dem Poti 5V, die minimale 2V?
    Dann könntest Du an einem Spannungsteiler 2V abfallen lassen und Dein Rest-Signal bewegt sich zwischen 0 und 3V.
    Das kannst Du dann direkt in einen A/D Wandler schicken und bekommst dann, je nach Auflösung, z.B. Werte zwischen 0 und 255. Die kannst Du dann im Raspi verarbeiten/abfragen und darauf reagieren.


    cu,
    -ds-

  • Das kapiere ich nicht. :s
    Rein von der Logik her brauche ich doch einen "Eingang", an dem ich dem Motor sage auf welche Position er soll. Dann benötige ich noch einen Ausgang, der die aktuelle Position zurück meldet. Das kann doch nicht alles nur über die "kleine" Spannung gehen?

  • Ich versteh' jetzt Dein Problem nicht ...
    Du steuerst den Motor über eine H-Brücke an.
    Jetzt fragst Du den A/D Wandler ab. Ist der Wert z.B. 255, dann lässt Du ihn rückwärts laufen, bis der A/D Wandler 0 ausgibt.
    Ist der Wert 0, lässt Du den Motor vorwärts laufen, bis der A/D Wandler 255 ausgibt.


    cu,
    -ds-