Forum: Mikrocontroller und Digitale Elektronik Inkremental-Geber --> Up / Down


von McMurkser (Gast)


Angehängte Dateien:

Lesenswert?

Hallo.

Ich möchte nen Inkrementaldrehimpulsgeber an 'nen AVR hängen (An die 2
Interrupts des AT90S8535). Ich habe jedoch schon als Hilfe nen
"Wandler" hier der auch funktioniert! (siehe Anhang). Wenn er
aufwärts zählt, wird "Clock" 5V aktiv. So sollte es auch bis jetzt
sein. Wenn ich ihn aber in die andere Richtung drehe, zählt er ab: Es
sind "Clock" und "UP/\Down" aktiv. Kann man irgendwie das
"Clock"-Signal abschalten, wenn "UP/\Down" aktiv sind? Ich dacht
mir schon mit Relais aber die ziehen zu langsam an. Also dachte ich an
Transistoren. Leider ist mein Wissen über Transistoren beschränkt,
sodass ich nicht genau weiß, wie ich die Transistoren anschließen soll.
Bzw. Geht das überhaupt mit Transistoren?

Vielen Dank


McMurkser

von Peter D. (peda)


Lesenswert?

Du hast Dir aber schon einen der schier zahllosen Beiträge dazu
reingezogen (z.B. über Drehgeber in der Codesammlung) ?


Peter

von Marcus M. (Gast)


Lesenswert?

Hallo,

ich weiß zwar nicht genau, wie Dein Inkrementalgeber funktioniert.
Die Clock-Line sagt Dir doch IMHO das sich irgendwas an dem Geber
verändert hat. Du brauchst also nur die Clockline an den Inerrupt
anzuschließen und in der Interruptroutine ein Portpin abzufragen, ob er
gesetzt ist (downcount) oder nicht (upcount).

global {
  char count;
}

int main (void) {

...

DDRPORTCOUNT = 1;
PORTCOUNT = 1;

...

}

INTERRUPT (SIG_INTERRUPT0) {

   if (PORTCOUNT == 1) ++count;
   if (PORTCOUNT == 0) --count;

}

von McMurkser (Gast)


Lesenswert?

Hallo..
@peter: Nein habe ich noch nicht aber werde ich sofort machen. Danke

@Marcus: Achja stimmt ja danke (das ich selber nicht draufkam oO)


cya

McMurkser

von crazy horse (Gast)


Lesenswert?

bleibt noch anzumerken, dass es natürlich unnötiger Aufwand ist, mit
externer Hardware aus den Spursignalen erst mal Takt- und
Richtungssignal zu erzeugen. Das kann der Prozessor nebenbei machen,
aber wenn du die Beispiele mal durchsiehst, wirst du das ja merken:-)

von McMurkser (Gast)


Lesenswert?

Hm bis jetzt hab ich nur 1 Sample gefunden (Suchfunktion bezgl.
Codesammlung)

von McMurkser (Gast)


Lesenswert?

Habt ihr vllt. noch ein paar Links bezgl. Auswertung eines Drehgebers
und Schaltpläne etc... alles was man über Geber brauchen kann.. thx :)

von Steffen (Gast)


Lesenswert?

Suche mal im ganzen Forum. Es gab schon etliche Beiträge dazu, auch mit
externen Quellenangaben.

Steffen

von Gerhard Humer (Gast)


Lesenswert?

Hi Murkser,

wenns Bascom sein darf hab ich da was für dich.
Sag mal Bescheid.

von McMurkser (Gast)


Lesenswert?

Jo Gerhard danke!
Ich habs grad gefunden! :) freu

Encoder1:
  Toggle Mcucr.isc10
  If Enc_a <> Enc_b Then
    Decr Weg
  Else
    Incr Weg
  End If
 'Print Weg
  Return

  Encoder0:
  Toggle Mcucr.isc00
  If Enc_a = Enc_b Then
    Decr Weg
  Else
    Incr Weg
  End If
' Print Weg
  Return

Genau das, nach dem ich gesucht habe!

Danke

McMurkser

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.