Hallo zusammen :) Nach dem ich mit Internetrecherchen nicht fündig wurde, habe ich mich doch nun mal hier angemeldet und euch direkt zu fragen (hoffe das mein Beitrag im richtigen Unterforum ist). Folgendes Problem: Mir liegt ein Drehencoder vor (also ein handbetriebener mit Rastpunkten), welcher ein A/B Signal ausgibt. Meine Frage nun, gibt es hierfür einen Zählerbaustein, welcher das Signal auswertet und entsprechend hoch oder runterzählt? Jetzt gibt es ja Zähler (z.B. 4bit), welche nach erreichen des höchsten Wertes (z.B. 15) wieder auf 0 springen. Das dürfte nicht sein, er sollte dann einfach aufhören zu zählen. Die ausgegebene Zahl sollte auch binär dargestellt werden. Wollte das Benutzen eines µC vermeiden und es mit einem einfachen IC (ggf. auch zwei oder drei) einfach realisieren. Hoffentlich kann mir jemand helfen und im Voraus dafür schon mal Danke.
Tony S. schrieb: > gibt es > hierfür einen Zählerbaustein, welcher das Signal auswertet und > entsprechend hoch oder runterzählt? Sicher, http://www.lsicsi.com/encoders.htm (LS7082/7083/7084/7182/7183/7166/7266/7366) http://www.avagotech.com/docs/5988-5895EN (HCTL2000/2016/2020/2022/2032) http://lost-contact.mit.edu/afs/eos.ncsu.edu/dist/xact_step/online/onlindb/xapp012.pdf aber wozu ? Du brauchst zum auslesen eh einen uC, der kann dann auch gleich zählen. http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29
Erstmal Danke für beide Antworten MaWin schrieb: > (HCTL2000/2016/2020/2022/2032) > > aber wozu ? > > Du brauchst zum auslesen eh einen uC, der kann dann auch gleich zählen. Die HCTL-Reihe sieht ganz gut aus. Mir geht es darum, das der (hoch- oder runter-) gezählte Wert binär über die Pins ausgegeben wird (bei 8Bit wären es 8Pins). Wir haben nämlich mit den Gedanken gespielt den Drehencoder zu benutzen um Lastwiderstände parallel zu schalten (Lastsimulation für Elektroniken). Bei 8 Bits wären das 8 Widerstände (1Ohm, 2, 4, ...). Die digitalen Ausgänge des ICs sollten dann besten Falls Logic-Level MOSFETs ansteuern, welche dann die Widerstände schalten. Dadurch, das wir bei 8-16V auch bis zu 12A ziehen, ist eine günstige, fertig hergestellte Widerstandsdekade etwas unpassend, da diese ja in der Regel nicht den Strom abkönnen. (Ich hoffe an der Stelle werde ich nicht gesteinigt das ich einen völlig falschen Gedankengang habe und es einfacher geht.) Deswegen wollte ich auf einen µC verzichten, da es vom Gedankengang eigentlich recht einfach klingt und ein µC einfach zu "overpowered" wäre für solch eine einfache Aufgabe. Wollte halt so wenig Aufwand wie möglich dafür betreiben.
Tony S. schrieb: > µC einfach zu "overpowered" wäre Auf den ersten Blick, ja. Die üblichen Encoder haben keinen Anschlag, da ist mit dem Zeiger am Knopf nix. Und beim Einschalten morgens ist die Stellung des Knopfes auch unbekannt. Vielleicht brauchst Du dann eine Anzeige als Rückmeldung. 1 Schritt entspricht 4 Flanken, und das Ding kann auf einer Flanke durchaus nachprellen oder unsicher schalten. µC ist 1 Chip, auch schnell mal erweitert. Mit Sonder-Hardware wird es teurer und aufwendiger.
nixundnul schrieb: > > Vielleicht brauchst Du dann eine Anzeige als Rückmeldung. Da hatte ich mir auch schon Gedanken gemacht. Als einfachste Lösung dachte ich mir, das ich die 8Bits/IC-Ausgänge auf 2 7-Segment Anzeigen aufteile. Wäre in dem Moment zwar eine hex-Anzeige die mir sagt wo ich mich befinde, aber gibt bestimmt auch Möglichkeiten, es auf Dezimal umzuwandeln. > kann auf einer Flanke durchaus nachprellen oder unsicher schalten. Würde also bedeuten, das er mir eventuell zu weit zählt als gedreht, oder? Wäre an der Stelle vielleicht auch nicht tragisch, wenn es nicht dauerhaft vorkommt. Einen Schalter/Taster lässt sich ja mit einem RC-Glied entprellen. Würde sowas ähnliches auch hier funktionieren? Ein große Auswahl an Bauteilen hätte ich hier, würde also nicht gleich in Kosten ausarten. Nur ein µC fehlt im Sortiment. Und nicht falsch verstehen, möchte den Vorschlag mit dem µC definitiv nicht madig reden. Interssiert mich halt nur ob man es nicht komplett "hardwaremäßig" realisieren kann ohne extra noch eine Software realisieren zu müssen. Danke für deinen Beitrag.
:
Bearbeitet durch User
Wenn Du es schaffst deinen Zähler mit etwas Logik am Überlauf zu hindern, dann ist das eine interessante Idee: http://www.edn.com/design/systems-design/4416528/Adaptive-rotary-encoder-distinguishes-fine-from-coarse
Tony S. schrieb: > Interssiert mich halt nur ob man es nicht komplett > "hardwaremäßig" realisieren kann ohne extra noch eine Software > realisieren zu müssen. Klar kann man das, z.B. mit einem CPLD. Da kannst du genau das realisieren was du beschrieben hast, bloss ist es, was das nötige Knowhow betrifft, auch nicht einfacher als ein µC. HCT2000 et al habe ich jahrelang benutzt, die sind aber längst obsolet, schwer beschaffbar, teuer und ausserdem für die Wegemessung an Maschinen gedacht, mit Zählraten im hohen kHz-Bereich, und sie sind Peripheriebausteine für Prozessoren, alleine sind sie zu nichts zu gebrauchen - Der Zählerinhalt muss mit Lesebefehlen ausgelesen werden. Georg
Tony S. schrieb: > Mir liegt ein Drehencoder vor (also ein handbetriebener mit > Rastpunkten), welcher ein A/B Signal ausgibt. Meine Frage nun, gibt es > hierfür einen Zählerbaustein, welcher das Signal auswertet und > entsprechend hoch oder runterzählt? Ich habe das vor Jahren mal gemacht. Der Lautstärkesteller in meinem Vorverstärker ist spannungsgesteuert (TDA1074) und die Steuerspannung kommt nicht von einem Poti, sondern von einem R2R-DAC, der an einem Zähler hängt, wobei der Zähler mit einem Drehencoder gesteuert wird. Realisiert habe ich das mit 2 Stück CD4029. Drehrichtungsauswertung ganz klassisch mit XOR-Gatter (CD4030) und RC-Glied. Der 4029 hat ja einen Richtungs- und einen Zähleingang. Mein Encoder ist allerdings optisch (Lochscheibe und zwei Lichtschranken). Ein mechanischer Encoder muß erst entprellt werden. Die Begrenzung des Zählers in den Endstellungen ist etwas trickreich. Da ich nur 6 Bit brauchte, ist Bit #7 (QC des zweiten 4029) auf die /PRESET Eingänge der beiden 4029 zurückgeführt. Und die 4 Eingänge des unteren 4029 und die beiden ersten Eingänge des oberen sind mit UP/DOWN verbunden. So setzt sich der Zähler beim Überlauf nach oben auf 0x3F, beim Überlauf nach unten auf 0x00.
Axel Schwenke schrieb: > Realisiert habe ich das mit 2 Stück CD4029. Drehrichtungsauswertung ganz > klassisch mit XOR-Gatter (CD4030) und RC-Glied. Der 4029 hat ja einen > Richtungs- und einen Zähleingang. Mein Encoder ist allerdings optisch > (Lochscheibe und zwei Lichtschranken). Ein mechanischer Encoder muß erst > entprellt werden. Bei handbetätigten Encodern mit Zähleranzeige sind m.E. auch die "Einfachencoder" per XOR oder D-Flipflop möglich. Man kann ja nachkorrigieren, wenn der Zählerstand nicht stimmt. Für Encoder zur Positionsbestimmung sollte man besser die aufwänderige Methode nach Tutoriom verwenden. Gruss Harald
nixundnul schrieb: > 1 Schritt entspricht 4 Flanken, und das Ding kann auf einer > Flanke durchaus nachprellen oder unsicher schalten. Tony S. schrieb: > Würde also bedeuten, das er mir eventuell zu weit zählt als gedreht, > oder? Lass dich von nixundnul nicht verunsichern. Ein Drehencoder liefert an seinen Ausgängen 2-Bit Graycode. Wenn der richtig ausgewertet, kann der dahinter hängende Zähler durch Nachprellen nicht zu weit zählen. Allenfalls zählt der beim Prellen vor und zurück. Und was mit "unsicher schalten" gemeint ist, bleibt etwas unklar und damit auch die möglichen Folgen. Die Sache mit den 4 Flanken pro Schritt, würde ich auch nicht für bare Münze nehmen. Je nach dem, wo beim Drehencoder die Rastungen liegen, kann man jede Flanke oder zumindest jede zweite Flanke verwenden, um damit stabil einen Zähler anzusteuern.
Tony S. schrieb: > Folgendes Problem: > Mir liegt ein Drehencoder vor (also ein handbetriebener mit > Rastpunkten), welcher ein A/B Signal ausgibt. warum nimmst Du nicht einfach einen hexadezimalen Kodierschalter: https://www.buerklin.com/default.asp?event=ShowArtikel%2817G307%29&context=ArtikelSubsetId:0;SE:Kodierschalter;PHNode:SE,swvt,4954;ALArtikelProSeite:25&l=d&jump=ArtNr_17G307&ch=96680 Gruß Anja
Anja schrieb: > warum nimmst Du nicht einfach einen hexadezimalen Kodierschalter: An sich keine schlechte Idee, doch leider ist mir eine 4Bit-Auflösung zu grob, sollte 6Bits sein bzw. maximal 8. Thomans Holmes: > http://www.mikrocontroller.net/articles/Drehgeber > > ganz unten Wenn ich das richtig sehe, wertet also die Schaltung (ganz unten die) das AB-Signal in ein Zählimpuls Signal und ein Richtungssignal (Auf oder Ab) aus, oder irre ich mich? Könnte man dann danach zwei von Axel Schwenke erwähnten 4029 dranhängen? Diese können ja hoch und runterzählen und lassen sich zusammen verschalten um eine 8Bit-Auflösung zu bekommen. Würde das langsam zum Ziel meiner Aufgabestellung führen? Muss an der Stelle noch erwähnen das ich von ICs nicht so erfahren bin wie ihr. Komme eher aus dem Bereich der LabVIEW-Programmierung, daher muss ich nach euren Beiträgen erst immer wieder nachschauen was die erwähnten Bauteilen nun wirklich können und übersehe sicherlich auch mal das eine oder andere Merkmal.
Tony S. schrieb: > Anja schrieb: >> warum nimmst Du nicht einfach einen hexadezimalen Kodierschalter: > > An sich keine schlechte Idee, doch leider ist mir eine 4Bit-Auflösung zu > grob, sollte 6Bits sein bzw. maximal 8. Dann nimm zwei Schalter.
Harald Wilhelms schrieb: > Dann nimm zwei Schalter. Klar wäre das umsetzbar, aber dann muss ich zwangsläufig an zwei Schaltern drehen, ein einziger wäre komfortabler. Zudem möchte ich auch vermeiden wenn ich ständig nach rechts drehen würde (aufwärts), dann von F auf 0 wieder zu fallen.
<seufz> Werde dir doch erstmal klar, was du wirklich brauchst. Warum muß es für 6-8 Bit eigentlich ein Drehencoder sein? Ein ordentliches Poti reicht auch. Einfach einen 8-Bit ADC mit parallelen Ausgängen dahinter und fertig ist die Laube. Braucht keine Anzeige, hat Anschläge an den Endwerten. Einen Drehencoder würde ich heute nicht mehr anders als mit einem µC auswerten. Weil man da z.B. die Entprellung einfach in Software machen kann. Und Komfort-Features wie eine Anzeige (gern auch dezimal), dynamische Progression oder der Stellumfang sind einfach ein paar Zeilen mehr Code oder Konstanten in einer Headerdatei.
Tony S. schrieb: > Deswegen wollte ich auf einen µC verzichten, da es vom Gedankengang > eigentlich recht einfach klingt und ein µC einfach zu "overpowered" wäre > für solch eine einfache Aufgabe. Wollte halt so wenig Aufwand wie > möglich dafür betreiben. Der µController ist der geringste Aufwand. Sowohl vom Kostenfaktor, als auch vom Hardwareaufwand. Die Entwicklung der SW ist vermutlich schneller abgeschlossen, als die Entwicklung der entsprechenden HW dauern würde. Der µController übernimmt Dekodierung und Ausgabe des Wertes - binär an 8 Pins - als analoger Wert (als PWM, mit der ein Widerstand auch geschaltet werden könnte - wenn für das Problem ausreichend.) - auf einem Display und kann ausserdem - den zuletzt eingestellten Wert speichern und beim einschalten wieder herstellen. - an beliebiger Stelle den Wertebereich begrenzen - vorgespeicherte Werte ausgeben und Kurven fahren - den eingestellten Wert an einen PC übermitteln oder von diesem Werte empfangen - ... Sicherlich ist das eine Aufgabe, mit der ein µController nicht sonderlich ausgelastet ist. Aber man muss einen µController auch nicht auslasten. Er wird nicht billiger dadurch. Für mich eine ideale Aufgabe für einen µController ... Gruß Jobst
Jobst M. schrieb: > Für mich eine ideale Aufgabe für einen µController ... Sehe ich auch so. Du hast 2 Eingänge und 8 Ausgänge, das sind 10 IO-Pins. Ein ATtiny24 im DIP14 hat 12 IOs, ist also bestens geeignet.
Axel Schwenke schrieb: > Ein ordentliches Poti reicht auch. Einfach einen 8-Bit ADC > mit parallelen Ausgängen dahinter und fertig ist die Laube. Dann kann man ja auch gleich ganz analog bleiben:
1 | o----,--------------------------, |
2 | | | |
3 | | | |
4 | | / | P |
5 | | / + |------->O |
6 | \| / | T |
7 | |-------- | | |
8 | />| \ | | |
9 | | \ - |--, | |
10 | | \ | | | |
11 | | | | |
12 | +--------------------' | |
13 | | | |
14 | R | |
15 | | | |
16 | o----'--------------------------' |
Gruß Jobst
Hallo zusammen, nach allem wollte ich mich mal wieder melden. Ein µC ist nach all den Antworten hier klar die beste Lösung, da der µC mehr Möglichkeiten bietet, man damit flexibler bleibt und sicherlich paar Extras dazu bauen kann, wenn es von Nöten ist. Nichtsdestotrotz wollte ich einfach zum Lernen/Weiterbilden es mit ICs ausprobieren. Wollte einfach etwas Erfahrung sammeln. Habe es jetzt folgendermaßen aufgebaut. Mit der unten abgebildeten Schaltung von: http://www.mikrocontroller.net/articles/Drehgeber habe ich mittels 74hc174 und 74hc86 das AB-Signal ausgewertet. Ein Takt für den 74hc174 generiere ich mit einem 4093 und einem RC-Glied. Gezählt wird mit zwei 4029. Damit habe ich die 8Bit Auflösung. Es funktioniert soweit auch gut. Es kommt schon vor das er doppelt zählt, wobei ich sagen muss das der Drehencoder etwas grottig ist. Vielleicht verhilft hier ein besserer Drehencoder Abhilfe. Für mein Ziel ist diese Schaltung vollkommen ausreichend und gut arbeitend. Werde mir nur nochmal Gedanken machen wie ich eine passende Anzeige realisiere, um nicht binär von den LEDs ablesen zu müssen. Wenn ich Zeit finde, werde ich es wahrscheinlich doch nochmal mit einem µC lösen. Soweit auch erstmal ein Danke an alle die sich hier beteiligt haben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.