PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Geradeaus Fahren mit zwei Motoren ohne PWM ? (beantwortet)



PICture
14.09.2009, 18:26
Hallo!

Weil ich noch sehr geringe Erfahrung mit Steuern von Getriebemotoren mit einem µC habe, möchte ich meine Idee den mehr erfahrenen beurteilen lassen.

Da der von mir vorgesehener µC nur einen Eingang für externen Interrupt hat, möchte ich zwei Signale aus auf den Motorachsen befestigten Impulsgeber hardwermässig per OR zusammenbündeln und als externen Interrupt dem µC zuführen.

Bei jedem Impuls sollte eine Interrupt Service Routine (ISR) die Zustände den beiden Impulsgeber vergleichen und entsprechenden Motor bis zum nächsten Impuls abschalten. Es sollte, wie PWM mit Variabler Frequenz funktionieren. Der µC wird beim geradeaus Fahren sonst (fast) nichts zu tun haben und die Interrupts werden nicht stören. Hat es Sinn?

MfG

oberallgeier
14.09.2009, 18:35
... grübelgrübel - könnte das Sinn machen, EINEN Impulsgeber an einen separaten Port anzuschließen - dann hat die ISR nur mehr zu gucken, wie dessen Niveau ist ... ?

PICture
14.09.2009, 18:46
Ich habe erst meine Frage gepostet und deine Antwort war schon da... :)

Vielen Dank, das Fragen hat sich schon gelohnt!

So wie ich es verstanden habe, brauche ich die OR Funktion nicht und ich könnte einen Impuslgeber an externen Interrupt und den zweiten an biliebigen Portpin anschliessen. Es wäre also noch einfacher... :)

MfG

oberallgeier
14.09.2009, 18:53
NEIIIIIIN - denn wie würdest Du denn dann feststellen, dass der "zweite" Impuls kommt ? ? ? ? Stell Dir mal vor, der "erste" kommt nie - und der zweite mit xx Hz. Dann musst Du doch den zweiten pollen - und das recht flink.

Aber mit I1orI2 auf Pinx und I1 auf Piny - das müsste zweifelsfrei laufen

PICture
14.09.2009, 19:08
Sorry, aber irgendwie war mir deine erste Antwort nicht ganz klar. Ich habe entweder "ja" oder "nein" erwartet, da mir nur ums Prinzip geht. Detailierte Analise mit Programmablaufdiagramm (PAD) werde ich erst direkt vorm Programmschreiben machen.

Du bist zu schnell für mich, ich muß es der Polizei melden... :)

Noch mal herzlichen Dank!

MfG

PICture
15.09.2009, 12:56
Hallo!

Ich habe noch einfachere Lösung gefunden: Die zwei Impulsgeber an Portpins mit "interrupt on change" anzuschliessen. Dann brauche ich keine externe Hardware, da die OR Funktion schon realisiert ist. :)

MfG

Hubert.G
15.09.2009, 14:47
Ich weiss nicht ob ich da etwas überlesen habe, aber wie weisst du welchen Motor du stoppen musst.
Oder probierst du das einfach aus, wenn der Abstand der Impulse größer wird, dann was es der falsche?

PICture
15.09.2009, 15:31
Hallo Hubert.G!

So wie ich schon geschrieben habe, mir ist nur ums Prinzip und nicht um Details gegangen. Ich werde mich mit Software beschäftigen erst wenn die Mechanik und Hardware fertig sind. :)

MfG

Netzman
15.09.2009, 16:34
Eine andere Möglichkeit wäre, die 2 Signale über Dioden am Interrupt zusammenzulegen und zusätzlich auf 2 andere Pins legen, dann kann man in der ISR gemütlich abfragen welcher Geber ausgelöst hat.

mfg

PICture
15.09.2009, 16:49
Hallo Netzman!

Das war meine erste Gedanke die ich in meinem erstem Beitrag presentiert habe. Danach ist mir etwas noch einfacheres eingefallen. :)

MfG

Netzman
15.09.2009, 17:02
Sorry, das habe ich dort nicht rausgelesen :)
Die Methode mit den Dioden wäre aber eine UND-Verknüpfung.

mfg

PICture
15.09.2009, 17:22
Das ist immer relativ, je nach dem mit welcher Logik man arbeitet. Zwei Dioden mit pull-down realisieren für positive logik OR (ODER) und zwei Dioden mit pull-up für negative Logik OR bzw. fur positive logik AND (UND). :)

MfG