PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Motore per HW Logik synchronisieren



Searcher
01.12.2010, 20:59
Hallo,

bevor ich die Leichen im IC Grab zum Leben erwecke möchte ich fragen, ob es Aussicht auf Erfolg hätte oder ob ich mich gerade verlaufe :)

Es sollen zwei kleine DC Motore auf gleiche Drehzahl gebracht werden. Zur Erfassung der Drehbewegung steht je Motor ein Drehencoder zur Verfügung. Die Drehencoder liefern Rechteckimpulse mit Tastverhältnis von 33% oder invertiert von 66% mit einer Frequenz, abhängig von der Drehzahl, zwischen 60Hz und 1200Hz (0Hz bei Stillstand erstmal außer acht gelassen). Drehzahl der Motore zwischen 3 U/sec und 60 U/sec.

Die Rechteckimpulse, dargestellt durch die beiden Taktgeneratoren links in der Zeichnung, werden jeweils auf den Set Eingang eines RS-Flip-Flops geschaltet. Die Flip-Flops werden resettet, wenn beide Rechteckimpulse LOW sind - realisiert durch das NOR Gatter.

Die Ausgänge der RS-Flip-Flops sollen dann zur Nachregelung der Motoren, zB durch Pulsweitenänderung einer PWM genutzt werden.

Gedanke:
Die, in der Zeichnung obere Frequenz/Drehzahl ist kleiner.
Die HIGHs setzen die Flip-Flops.
Das zuerst einsetzende LOW des unteren, schnelleren Rechtecks bleibt im Flip-Flop ohne Auswirkung - Ausgang noch HIGH.
Das danach eintreffende obere LOW resettet zusammen mit dem noch anstehenden unteren LOW über das NOR die Flip-Flops und beide Ausgänge werden LOW
Kommt das nächste untere HIGH, wird es zum Flip-Flop Ausgang durchgereicht und abhängig vom NOR auch wieder gespeichert.

Insgesamt ergibt sich eine längere HIGH Zeit auf Seite der schnelleren Frequenz. Der Unterschied zur Seite mit der langsameren Frequenz könnte zur Nachregelung genutzt werden.

Den Unterschied glaube ich in einer einfachen Simulation deutlich ausgemacht zu haben aber ob das auch in der Praxis geht?

Über die eigentliche Steuerung der Motore hab ich mir noch keine Gedanken gemacht. Bin zunächst beim Grübeln, wie man über die Encoderimpulse auf einfachem Weg eine Steuerinformation zur Synchronisation bekommen kann. Über Frequenzmessung ginge es natürlich auch, doch der Aufwand scheint mir viel größer.

Könnte das funktionieren oder gibt es da etwas anderes das besser ist? Möglichst einfach und ohne µC.


Gruß
Searcher

PICture
01.12.2010, 21:26
Hallo Searcher!

Deine Idee finde ich sehr gut und glaube, dass dein Schaltplan sich sogar vereinfachen lässt. Ich habe es selber noch nicht ausprobiert, aber möchte solche quasi PWM auch verwenden, weil sie laut meiner Anfrage in: https://www.roboternetz.de/phpBB2/viewtopic.php?t=50042 funktionoeren sollte.

Meine Idee war: beide Motoren einschalten, bei Impuls vom schnelleren Motor, diesen abschalten und warten auf den Impuls vom langsameren, dann beide wieder einschalten. Es sollte also mit nur zwei Flip-Flops möglich sein. :)

MfG

Searcher
02.12.2010, 08:48
Hallo,

@PICture: Danke für Deinen Link. Jetzt, da Du über "quasi PWM" schreibst, weis ich, daß ich darüber bei Dir schon gelesen habe. Deine Idee klingt viel einfacher und muß ich mir genauer durch den Kopf gehen lassen. Wenn Du wüßtest, welche Verschaltungen ich schon virtuell in der Simulation ausprobiert habe, hättest Du wahrscheinlich auch die Polizei rufen müssen :)

Gruß
Searcher

PICture
02.12.2010, 11:19
Hallo Searcher!

Das ist zum Glück nicht nötig, weil ich noch nicht ausprobierte Schaltung im Code skizierrt habe. ;)

Die Verzögerung RC ist nötig um beide gesetzte FF sicher zu löschen. Es wird eigentlich nur ein NAND Gatter benötigt, deshalb ein Transistor und nicht ganze IC mit 4 NAND's. Wenn in der übriger Schaltung ein freier NAND gibt, kann man ihn + Diode anstatt der DTL Schaltung (R1, D1, D2, T) verwenden. Falls nötig skizziere ich es schnell. :)

MfG

VCC VCC
+ +
| |
.-. .-.
R | | | | R1
VCC | | | |
+ '-' '-'
| .-----. | |
+-|D Q|-|-|<-+
| 1 | | D1 |
Impulsgeber 1 >-----|> _| | |
| R Qo-|----|-----> Motor 1
'--o--' | |
| | |
VCC +----+ |
+ | |
| .-----. | |
+-|D Q|-|-|<-+
| 2 | | D2 |
Impulsgeber 2 >-----|> _| | |
| R Qo-|----|-----> Motor 2
'--o--' | |
| | |
+----+ |
| | |
C --- \| |
--- T |--+
| <|
| |
=== ===
GND GND

1,2 = 74XX73

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

ranke
02.12.2010, 12:09
Der Phasenkomparator II vom CD 4046 sollte sich eigentlich für diese Aufgabe anbieten:
http://focus.ti.com/lit/ds/schs043b/schs043b.pdf

PICture
02.12.2010, 12:34
Hallo ranke!

Vom Prinzip ist er identisch, aber hier nötige zwei FF-Ausgänge nicht einzeln verfügbar sind (siehe dazu Fig.5 in http://www.datasheetcatalog.org/datasheet/philips/74HC4046A.pdf . :(

MfG

Searcher
03.12.2010, 10:16
Hallo,

@PICture: Ich bin erleichtert :) Hab mir vorgenommen Deinen Plan mal auszuprobieren - den Rest der Schaltung sollte ich allein hinbekommen. Muß allerdings die restliche HW noch etwas herrichten. Danke sehr für Deine Hilfsbereitschaft.

@ranke: Als ich begann mir zu überlegen, wie ich die og. Aufgabe löse, kam mir auch PLL als Schlagwort in den Sinn. Hab davon jedoch keinerlei Ahnung und suchte nach etwas, daß ich schon begreife :) Dank Deines konkreten IC Vorschlags rücke ich dem Thema nun ein bißchen näher und versuchte doch etwas länger als gedacht, das Datenblatt zu verstehen. Mal sehen was daus wird...

Gruß
Searcher

PICture
03.12.2010, 15:06
Hallo Searcher!

Ich habe noch die Schaltung mit "echtem" NAND im Code skizierrt, falls jemand brauchen könnte. Wenn keine "echte" PWM benutzt wird, könnte man als Impulsgeber die Impulse von Bürsten den Motoren nehmen, da sie nicht "sauber" seien müssen. ;)

Solltest du Probleme mit übriger HW haben, bitte sofort fragen und nicht zögern. :)

MfG
VCC
+
|
.-.
| | R
VCC | |
+ '-'
| .-----. |
+-|D Q|-|-+
| 1 | | |
Impulsgeber 1 >-----|> _ _| | |
| R Qo-|-|--------------> Motor 1
'--o--' | |
| | |
VCC +----+ | __
+ | +-| \
| .-----. | | & )o-+
+-|D Q|-----|__/ |
| 2 | | |
Impulsgeber 2 >-----|> _ _| | |
| R Qo-|----------|-----> Motor 2
'--o--' | D |
| | |
+----+---->|----+
|
C ---
---
|
|
===
GND

1,2 = 74XX73

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

hardware.bas
04.12.2010, 10:03
Eine Mini-PLL: Ein Motor wird drehzahlgesteuert, egal, wie auch immer.
Von diesem Motor wird die Frequenz vom Drehencoder abgenommen und
als Referenz für den 2. genommen. Ein FlipFlop; Impuls vom 1. Motor
schaltet FF ein, Impuls vom 2. Motor schaltet FF aus. Die PWM, welche der
FF gegeriert kann zum Steuern des 2. Motors Verwendung finden.
VG Micha