Forum: Mikrocontroller und Digitale Elektronik Digitaler Demultiplexer gesucht.


von Obi Plal (Gast)


Lesenswert?

Ich möchte gerne an einem Mikrocontroller 8 Servos an 4 Pins betreiben. 
Deshalb habe ich mir den CD4051 besorgt. Ich habe die Schaltung 
aufgebaut (mit Pull down an den Ausgängen des 4051), die Servos stören 
sich aber irgendwie gegenseitig (z.B. bewegen sich 2 zugleich.) Dann 
habe ich 4 der Servos direkt an die Pins des µC gehängt und hatte keine 
Probleme. Ich habe bei beiden Versionen eine eigene Betriebsspannung von 
+6V für die Servos erzeugt. Nun habe ich mir gedacht ich könnte das 
Problem mit einem Digitalen anstatt einem Analogen Demultiplexer lösen. 
Kennt jemand zufällig so einen digitalen Demultiplexer oder kennt jemand 
eine andere Lösung für mein Problem vorschlagen? Ich habe leider nur 
noch 4 Pins frei.

von Floh (Gast)


Lesenswert?

Nimm ein Schieberegister ohne Latch.
Dann eine 1 reinschieben und nach dem Timing für das erste Servo eine 
Position weiterschieben.
Nach dem Timing fürs 2.Servo wider eins weiterschieben, usw.
Sobald du wieder das erste Servo ansprechen musst, eine neue 1 über SI 
reinschieben.
So passen ca 8 Servos in einen 20 ms-Zyklus.

So werden auch im Mehrkanalempfänger einer RC-Anlage aus dem 
Summensignal die verschiedenen Kanäle erzeugt.

von Obi Plal (Gast)


Lesenswert?

Ich würde den Demultiplexer bevorzugen da das Programm dafür einfacher 
und ich nie mehrere Servos zur gleichen seit ansteuern muss.

von Michael_ (Gast)


Lesenswert?

Ich mach gerade auch was mit dem 4051 und mir ist es ein Rätsel, wie du 
ihn beschaltest.
Der ist doch 1 zu 8.

von Obi Plal (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist die Schaltung. Die Impulse für den Servo kommen von RC0.

von Michael_ (Gast)


Lesenswert?

Müßte eigentlich gehen. Mach zur Sicherheit an den Eingang auch noch 
einen Pulldown rein.
Kannst du bei jeder Adressumschaltung eine kleine Minipause einbauen?
Oder kann es sein, das über die Servoeingänge eine Spannung zurück in 
den 4051 gelangen kann?
Ich schiebe mit einem 74HC4051 PWM auf acht LED rüber. Das geht prima.
Wenn du hast, versuche es doch mit einem 74HC4051. Er hat die gleiche 
Pinbelegung.

von Obi Plal (Gast)


Lesenswert?

Ein 74HC4051 ist leider nicht vorhanden.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Obi Plal schrieb:
> Nun habe ich mir gedacht ich könnte das
> Problem mit einem Digitalen anstatt einem Analogen Demultiplexer lösen.
> Kennt jemand zufällig so einen digitalen Demultiplexer oder kennt jemand
> eine andere Lösung für mein Problem vorschlagen?

Grundsätzlich geht das auch mit einem Analogswitch. Du musst das Timing 
der Servos beachten, die mindestens alle 20ms einen neuen Puls 
benötigen. Komplett wegschalten für einen längeren Zeitraum geht nicht, 
da die Servocontroller dann undefiniert reagieren. Du musst also ständig 
weiterschalten und den benötigten PWM-Puls durchreichen. Bei 8 Servos 
bist Du dann aber schon fast an der Grenze des Machbaren, rein von der 
Laufzeit her, da Du vor und nach dem Umschalten eine kleine "0"-Pause 
einlegen musst, um Verwischungseffekte durch das Umschalten zu 
vermeiden.

Alternativ kann man auch ein 74HC595 verwenden. /OE gibt dabei den 
(invertieren) PWM-Puls auf den durch das Schieberegister adressierten 
Ausgang weiter. Dafür braucht man dann nur 3 Leitungen: Daten, 
Shift+Latch-Clock (beide Clocks zusammengeschaltet, erfordert im ersten 
Schiebezyklus eine zusätzliche Clock) und /OE.

von Obi Plal (Gast)


Lesenswert?

Wenn ich die Servos direkt an den Ausgängen des µCs anschließe sind alle 
nicht gebrauchten Servos permanent auf null und ich bekomme keine 
Störungen.

von Michael_ (Gast)


Lesenswert?

Ich empfehle dir nochmals, einen 74HC4051 oder 74HCT4051 zu benutzen.
Der HEF4051 fühlt sich erst bei 15V richtig wohl.
Das betrifft die Schaltzeiten und die Pegelschwellen.

von Obi Plal (Gast)


Lesenswert?

müssen die servos dann permanent inpulse bekommen oder reidht es den 
eingang auf masse zu legn?

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.