Forum: Mikrocontroller und Digitale Elektronik Drehencoder zu "Lauflicht"


von Manu O. (elektrofreak2)


Lesenswert?

Guten Abend,
gibt es eine Schaltung, mit der ich die Impulse eines Drehencoders in 
ein "Lauflicht" übersetzen könnte, mit der man die Led´s in die eine 
Richtung und in die andere steuern kann? Ich will damit einen 
Audiowahlschalter bauen.
Da nehme ich dann 4066er.

Vielen Dank im Voraus!

P.S.: Da ich nicht programmieren kann, wäre es gut, wenn es eine 
Schaltung aus Logik IC´s oder so gäbe.

von Wolfgang (Gast)


Lesenswert?

Manu O. schrieb:
> P.S.: Da ich nicht programmieren kann, wäre es gut, wenn es eine
> Schaltung aus Logik IC´s oder so gäbe.

Da wäre es wohl einfach, wenn du ein bisschen programmieren lernst. 
Sonst könnte das in ein böses TTL-Grab ausarten.

von Manu O. (elektrofreak2)


Lesenswert?

Hat jemand hierzu ein fertiges Programm für einen Pic?

von Bernd (Gast)


Lesenswert?

Drehencoders -> Lauflicht ->  LEDs -> Audiowahlschalter -> 4066er.

Verstehe ich nicht. Kannst du eine Skizze anhängen?

von Jost .. (jojocp)


Lesenswert?

Hi,

super simple Angelegenheit, wenn ich mich nicht vertue.

Einen Up/Down Counter dessen Richtungs / Takt Eingang direkt an den A 
und B Leitungen des Drehencoders hängen.
Der Zählausgang geht dann an die Select Leitungen eines Demultiplexers.
Der Eingang des Multiplexers liegt auf High Pegel. Daraus ergibt sich 
dann dein "Lauflicht" am Ausgang...
Damit kannst du dann auch direkt an die Enable Eingänge deines 4066ers.

Das Prellen musst du nur irgendwie in den Griff bekommen..

: Bearbeitet durch User
von Manu O. (elektrofreak2)


Lesenswert?

Entprellen halt mit Kondis!?

von Tom (Gast)


Lesenswert?

Drehschalter?

von Manu O. (elektrofreak2)


Lesenswert?

Ich will ja was digitales.

von Tom (Gast)


Lesenswert?

Wenn man mit dem Drehschalter die 4066 und LEDs ansteuert, wird es schon 
recht digital. Oder muss es noch digitaler werden?

von MaWin (Gast)


Lesenswert?

Jost .. schrieb:
> Einen Up/Down Counter dessen Richtungs / Takt Eingang direkt an den A
> und B Leitungen des Drehencoders hängen.

Supi, da hat jemand noch nicht mitbekommen, daß Drehencoder prellen, 
also bei jedem Schritt einige Impulse abgeben , die deine Schaltung alle 
zählt.

Wenn du so was schon mal in der Praxis aufgebaut hättest, wüsstest du, 
daß die LEDs nicht in Reihenfolge, sondern wild durcheinander springen.

Man müsste zumindest den Drehencoder vorher entprellen, dann kann man 
ihn auch gleich richtig auswerten.

Mit einem Microcontroller ist das 1 IC. Ohne uC beginnt das Problem 
damit, daß ein CD4017 nicht rückwärts zählt, ein CD4510 nicht decodiert, 
sowieso unklar ist ob er bis 7, 8 oder 10 zählen soll. Man braucht also 
geschätzt 4 ICs.

Manu O. schrieb:
> Hat jemand hierzu ein fertiges Programm für einen Pic?

Auch ein PIC kann C (aber die Ports heissen anders)
1
#define quadrature_input (PORTA&3) 
2
// bit 0 und bit 1 sind Quadratureingaenge
3
#define MAXCOUNT 6
4
static char table[4][4]={{0,1,-1,0},{-1,0,0,1},{1,0,0,-1},{0,-1,1,0}}; 
5
char position, new_quadrature_value, last_quadrature_value
6
void main(void)
7
{
8
  TRISA=1; // alles Eingänge
9
  TRISB=0; // alles Ausgänge
10
  position=0;
11
  last_quadrature_value=quadrature_input
12
  while(1)
13
  {
14
    new_quadrature_value=quadrature_input;
15
    position=(position+table[last_quadrature_value][new_quadrature_value])%MAXCOUNT; 
16
    PORTB=(unsigned char)1<<position;
17
    last_quadrature_value=new_quadrature_value;
18
    _delay_ms(5);
19
  }
20
}

von Manu O. (elektrofreak2)


Lesenswert?

Und welche Pins sind bei diesem Programm benutzt?

von MaWin (Gast)


Lesenswert?

Manu O. schrieb:
> Und welche Pins sind bei diesem Programm benutzt?

Bit 0 und 1 von PORTA sind die Drehencodereingänge, und wie viele 
Ausgänge PORTB hat ist unbekannt weil du trotz Hinweis immer noch nicht 
gesagt hast zwischen wievielen Positionen du denn umschalten willst.

von Manu O. (elektrofreak2)


Lesenswert?

Ohh, sorry. Ich will so 4 Positionen schalten

von MaWin (Gast)


Lesenswert?

Dann sind's Pin0 bis Pin3 von PORTB und MAXCOUNT ist 4

von Manu O. (elektrofreak2)


Lesenswert?

Ok, danke!
Und das Programm funktioniert auf Anhieb?

von MaWin (Gast)


Lesenswert?

Manu O. schrieb:
> Und das Programm funktioniert auf Anhieb?

Wahrscheinlich nicht, zumindest ein Semikolon fehlt schon mal, aber 
inhaltlich ist alles drin was nötig ist.

von Rudolph R. (rudolph)


Lesenswert?

Die Idee an sich ist mir noch nicht klar, wofür braucht man bei einem 
Auswahl-Umschalter einen Drehimpulsgeber?
Hast Du 320 Quellen?
Mit 8 kommst Du auf dem Drehimpulsgeber doch nur auf eine halbe 
Umdrehung.

Also ja, machen um das mal gemacht zu haben, sicher, der Weg ist das 
Ziel und so, das Ergebnis ist doch aber eher unpraktisch.
Man muss da auch immer sehr feinfühlig dran drehen.
Der einzige Vorteil der mir dazu einfällt ist, dass man überdrehen kann.

Einen Drehschalter kann man auch per Mikrocontroller einlesen, damit das 
"digitaler" wird, mir gefällt da die Lösung mit vielen gleichen 
Widerständen zwischen den Anschlüssen vom Drehschalter, das erzeugt 
viele Spannungs-Stufen von 0V bis z.B. 5V die man über einen einzelnen 
Analog-Eingang einlesen und auswerten kann.

von Wolfgang (Gast)


Lesenswert?

Rudolph R. schrieb:
> Mit 8 kommst Du auf dem Drehimpulsgeber doch nur auf eine halbe
> Umdrehung.

> Man muss da auch immer sehr feinfühlig dran drehen.

Das ist doch wohl eine Sache der Auswertung. Es zwingt einen keiner, bei 
jeder Flanke weiter zu schalten. In Hardware kann das natürlich 
etwas aufwändiger werden, mit einem µC aber völlig problemlos.

von Rudolph R. (rudolph)


Lesenswert?

Wolfgang schrieb:
> Das ist doch wohl eine Sache der Auswertung. Es zwingt einen keiner, bei
> jeder Flanke weiter zu schalten. In Hardware kann das natürlich
> etwas aufwändiger werden, mit einem µC aber völlig problemlos.

Solange man dafür einen nicht rastenden Drehimpulsgeber findet könnte 
das was werden, okay.
Mit den normalen, rastenden Drehimpulsgebern würde sich das aber etwas 
blöd anfühlen wenn der z.B. bei jedem dritten Impuls weiter schaltet.

von Wolfgang (Gast)


Lesenswert?

Rudolph R. schrieb:
> Mit den normalen, rastenden Drehimpulsgebern würde sich das aber etwas
> blöd anfühlen wenn der z.B. bei jedem dritten Impuls weiter schaltet.

Bei einem satt rastenden Geber hat man auch nicht das Problem, dass mein 
sehr feinfühlig drehen muss, um jede Stufe zu erwischen. Wer weiß schon, 
welchen Typ Manu da im Hinterkopf hat.

von vloki (Gast)


Lesenswert?

Manu O. schrieb:
> Hat jemand hierzu ein fertiges Programm für einen Pic?

Habe ich auch schon mal eines als Beispiel für unsere Studierenden 
geschrieben. 
http://www.hs-ulm.de/users/vschilli/Mikrocontroller/_downloads/uC_quick-X.pdf 
5.3 Encoder rotiert LEDs

Der Encoder wird da über Interrupts ausgewertet, weil es in dem Kapitel 
eben um IR geht...
(Kann man aber leicht mit der Auswertung vonMaWin ersetzen)

von W.S. (Gast)


Lesenswert?

Rudolph R. schrieb:
> Die Idee an sich ist mir noch nicht klar, wofür braucht man bei einem
> Auswahl-Umschalter einen Drehimpulsgeber?
> Hast Du 320 Quellen?

Du hast nicht weit genug gedacht - der TO übrigens auch nicht. Das ist 
alles.

Es geht ja nicht nur darum, irgenwelche LED's anzusteuern, sondern auch 
darum, diverse Audioquellen umzuschalten. Etwa so, wie es Sony vor 
gefühlten 100 Jahren mit einem damaligen 4 Bit µC in seinen 
Hifi-Verstärkern tat.

Aber dazu sind nicht nur Portpins mit LED's daran gefragt, sondern auch 
passende Steuercodes per I2C an den NF-Umschalt-IC.

W.S.

von Rudolph R. (rudolph)


Lesenswert?

W.S. schrieb:
>> Die Idee an sich ist mir noch nicht klar, wofür braucht man bei einem
>> Auswahl-Umschalter einen Drehimpulsgeber?
>> Hast Du 320 Quellen?
>
> Du hast nicht weit genug gedacht - der TO übrigens auch nicht. Das ist
> alles.
>
> Es geht ja nicht nur darum, irgenwelche LED's anzusteuern, sondern auch
> darum, diverse Audioquellen umzuschalten. Etwa so, wie es Sony vor
> gefühlten 100 Jahren mit einem damaligen 4 Bit µC in seinen
> Hifi-Verstärkern tat.
>
> Aber dazu sind nicht nur Portpins mit LED's daran gefragt, sondern auch
> passende Steuercodes per I2C an den NF-Umschalt-IC.

Du hast eher nicht durchschaut, worauf ich hinaus wollte.
Mir ging es rein um die Haptik, um die mechanische Umsetzung, nicht um 
die Elektronik die dahinter die Quellen dann tatsächlich umschaltet. :-)

Und mir sind leider keine Drehimpulsgeber bekannt die mit 8 Impulsen pro 
Umdrehung kräftig einrasten.

von Jobst M. (jobstens-de)


Lesenswert?

WENN Du einen Drehencoder hast, welcher pro Rastung nur einen Schritt 
macht, könntest Du diesen direkt an A0 und A1 von einem 4052 (anstelle 
4066) anschließen - ohne Controller. Aber vermutlich wird das nicht so 
sein ...
Diesen Umstand musst Du in Deinem Programm allerdings auch 
berücksichtigen. Es gibt nämlich unterschiedliche Drehgeber.

Qualitativ besser für das Audiosignal ist allerdings der Drehschalter.


Gruß

Jobst

von Paul B. (paul_baumann)


Lesenswert?

Wolfgang schrieb:
> Wer weiß schon,
> welchen Typ Manu da im Hinterkopf hat.

Das ist auch kein geeigneter Einbauort. Jedes Mal, wenn man in der 
Kaufhalle an der Kasse steht, dreht jemand aus Langeweile dran herum...

MfG Paul

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.