Forum: Mikrocontroller und Digitale Elektronik DrehEncoder von Reichelt geht nicht mit ENCODER-Function


von Micha R. (michaavr)


Lesenswert?

Hat jemand schon den Encoder von Reichelt ausprobiert?

Bei mir funktioniert der nicht mit Encoder-Function von Bascom.

Kann mir jemand einen Tipp geben?

Anschlussbelegung habe ich überprüft. Mittig ist GND anzuhängen und die 
außeren Pins sind A und B.

Ein Test mit LED's bestätigt dies.
Alles richtig angeschlossen, aber die Function Encoder spuckt nur wirres 
zeug aus.

Eine Idee, was ich falsch mache?

von Gerhard. (Gast)


Lesenswert?

Micha, Du musst uns schon etwas mehr information geben. Mit dem kann man 
noch nicht zu viel anfangen. Mit Schalt-Encodern braucht man meist 
"Pull-Up" Widerstaende, damit die VCC/GND Logic Pegel anliegen. Also 
nicht vergessen. Auch viel Opto Encoder brauchen dies. Sollten die 
Widerstaende fehlen, dann hanegen die Logic-Eingaenge in der Luft und 
dann gibts "Wirres" Zeug; -)

Versuch mal diese Schaltung:

(Zwei Mal fuer A und B)

    Vcc                 Vcc
     |                   |
    | | (10K)           _
    | |        (47K)    _ (10nF)
     |         __      |
--------------|____|----------------- (MPU Eingang A oder mit 74HC14)

Die 47K und 10nF sind ein einfaches Filter gegen Schalterprellungen - 
Nicht immer unbedingt notwendig.

(MPU Pin sollte nach Moeglichkeit mit Schmitt-Trigger Eingang sein)

Gruss,
Gerhard

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


Lesenswert?

Es gibt verschiedene Enkoder, die a) pro Rastung pro Pin einen 
Vollschritt 1-0-1 oder b) nur einen Halbschritt 1-0 // 0-1 liefern. Je 
nachdem, für welchen Typ die Routine geschrieben wurde, funktioniert 
sie, oder auch nicht.

von Falk B. (falk)


Lesenswert?

Man kann auch die internen Pull-Ups nutzen. Über DDRx einschalten.

MFG
Falk

von Micha R. (michaavr)


Lesenswert?

Also ich hab den Drehenconder von Reichelt.de
Ein Datenblatt gibts hierzu nicht.
konnte auch beim googeln nichts finden.

Es sieht aber so aus wie das Teil in der Bascom-Hilfe.
Pinbelegung ist allerdings anders.

bei meinem Drehgeber ist der Common in der Mitte und A und B liegen 
Außen.

Am Atmega8 habe ich den Encoder angeschlossen. Pind.2 und Pind.3. Den 
Mittelanschluss vom Encoder an Masse.

Interne PullUps sind angeschaltet (nachgemessen)

Das Ding ist im Ruhezustand an A und B High.
Drehe ich den Encoder, bekomme ich folgende folge:

Pin A  Pin B
  1      1     Ruhezustand (gerastet)
  0      1
  0      0
  1      0
  1      1     wieder Ruhezustand (nächste Raste)

Habe eine eigene Routine geschrieben, die funktioniert besser, als die 
von Bascom.
Mit diesen Drehencoder mache ich gerade meine ersten Erfahrungen. kann 
nicht sagen, was das für ein Typ ist. Optisch ist er nicht.

Vielleicht muß ich den Common des Encoders auf VCC legen und A und B mit 
PullDown-Widerständen auf Low ziehen?

Ach ja, es ist vermutlich einer mit Vollschritt. Pro Raste geht jeder 
Pin einmal auf Low und wieder zurück.

Was ich noch nicht probiert habe ist, es mit 10nF zu versuchen zu 
filtern.

Hilft das weiter?

von Micha R. (michaavr)


Lesenswert?

kleiner Nachtrag.

Der Drehencoder ist bei Reichelt unter der BestellNr/Bezeichnung 
STEC12E08 zu finden.

von Micha R. (michaavr)


Lesenswert?

Nachtrag: Datenblatt

habe ein Datenblatt gefunden:
http://www3.alps.com/WebObjects/catalog.woa/E/PDF/Switch/Encoder/EC12E/EC12E.PDF

Das bestätigt meine Vermutung mit der Pinbelegung.

Habs mittlerweile auch mit 10nF als Filter versucht. genau das gleiche.

noch ne Idee?

von Falk B. (falk)


Lesenswert?

@ Micha R. (michaavr)

>noch ne Idee?

Ich weiss nciht wie der ENCODER Befehl in BASCOM funktioniert, aber muss 
der nicht zykisch aufgerufen werden? Bzw. wie schnell tastet der Befehl 
den Encoder ab?

Siehe Drehgeber.

MfG
Falk

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.