Digitaler Demultiplexer gesucht.

Gast #2352193
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.
Gast #2352210
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.
Gast #2352266
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.
(Firma: TravelRec.) Persönliche Seite #2352482
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren