Forum: Mikrocontroller und Digitale Elektronik Universelles Eingabegerät mit Drehencodern


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich plane ein Eingabegerät für Musikgeräte und andere Anwendungen auf 
der Basis von Drehencodern.  Gedacht ist es u.a. zur Steuerung von 
Synthesizern. Für diesen Zweck gibt es zwar Geräte, aber die, die ich 
bisher benutzte (Döpfer), sowie die meisten anderen (M-Audio, 
Behringer)haben mir zu kleine Abstände zwischen den Knöpfen, haben oft 
auch zu kleine Knöpfe, sind zu grob und unempfindlich, bzw nicht gut 
genug entprellt. Die vom Hersteller mit dem grossen Behringer haben auch 
nicht so die Qualität.

Generell sind die Controller auch zu grob gerastert - man hat immer nur 
wenige LEDs und auch keine vernünftige Beschleunigungsfunktion, zudem 
haben MIDI-Geräte protokollbedingt zu gringe Auflösungen für viele Apps. 
Im Zuge eines Selbstbaus liessen sich solche Problemchen leicht 
wegzuräumen.

Ich möchte gegenüber den konventionellen Controllern folgende 
Verbesserungen haben:

- Abstände zwischen den Achsmitten ca. 40mm
- Bedienknöpfe ca 15mm - 20mm Duurchmesser, geriffelt
- Rastfunktionen mit programmiertem Vortrieb
- Auflösung von 10Bit Positionen
- Anzeige von mehr, als 30 Positionen
- Ausgabe per seriellem Protokoll mit MaxSpeed
- reduzierte Ausgabe der Werte per MIDI
- gfs MLAN
- Anzeige der Werte am Rechner

Ich habe mich umgeschaut, was es sonst so gibt und kam auf zwei 
Möglichkeiten: Eine Webseite bietet für $14,- eine kleine Platine an, 
die einen Encoder mit SPI-Ansteuerung enthält, diese hat aber zu wenige 
LEDs. Ein fernöstlicher Hersteller hat einen Encoder mit 30 LEDs im 
Programm, dieser ist aber mit 25,- zu teuer. Daher habe ich überlegt, 
sowas mit einem FPGA und einer Platine selber zu machen. Geplant sind:

8 x 6 Bedienregler, 32cm breit, 24cm hoch

32 LEDs mit 31 Zwischenpositionen, d.h. 63 virtuelle Positionen, 
angedeutet durch 2 schwach leuchtende benachbarte LEDs

Alternativ Duo LEDs mit 2 Farben (= Vor- und Nachkommastelle), Blättern 
der Vorkommastelle nach Umrunden der Nachkommastelle - Einstellen durch 
2 Modi - aktiviert durch Drehencoder mit Tastfunktion (Feintrieb)

Bei Duo-LEDs kann ein symmetischer Modus aktiviert werden, dabei werden 
rot/grün verbaut und negative Werte in rot angezeigt, positive Werte in 
grün

Ein FPGA interpretiert die Encoder und steuert die LEDs im 
Multiplexbetrieb:

(8+6) x2 Leitungen für die Encoder, weitere 8+6 für die Taster
zusätzlich 8x2 weitere Taster auf dem Board

32/64 + 48 Leitungen für die LEDs,
Zwischensumme 138 pins

Wiederholrate für LEDs und Taster = 1/(48+16) oder 1/(112+16) x 50MHz = 
300 kHz

Entprellung der Encoder mit FPGAs - erfahrungsgemäss reicht Rate von 
10kHz

48/96 Tansistoren bzw LED-Treiber-Kanäle -> 12 CMOS INVs

Die Raststellungen der Encoder können 1,2,3 oder mehr digits Differenz 
(programmierbar) betragen.

Encoder werden in die Platine geschraubt, per Stecker verdrahtet oder 
eingelötet.

Plexiglasabdeckung mit Bohrungen in Grösse des Gewindes zum 
Durchstecken.

-------------------------------------------------------------------

Hätte jemand Interesse, sich zu beteiligen?

von Falk B. (falk)


Lesenswert?

@  Jürgen S. (engineer) Benutzerseite

>- Rastfunktionen mit programmiertem Vortrieb
>- Auflösung von 10Bit Positionen

Über eine Umdrehung? Na dann mal viel Spass. Kannst du ja gleich 
Präzisionsdrehgeber von Haidenhain & Co kaufen. ;-)

>LEDs. Ein fernöstlicher Hersteller hat einen Encoder mit 30 LEDs im
>Programm, dieser ist aber mit 25,- zu teuer.

Denkst du, dass du es selber deutlich billiger schaffst? Wenn man es 
richtig rechnet?

> Daher habe ich überlegt,
>sowas mit einem FPGA und einer Platine selber zu machen. Geplant sind:

FPGA für so nen Krümelkram? Die LED-Ansteuerung incl. PWM machen TLC5940 
& Co, das Auslesen und dekodieren der Drehgeber ein mittelgroßer 
AVR. Fertig.

>8 x 6 Bedienregler, 32cm breit, 24cm hoch

Naja, ist schon recht viel, aber ich denke mit gescheiter Programmierung 
schafft das ein AVR, schließlich reicht 1ms Abtastinterval, weil kein 
Mensch so tierisch schnell die Regler bedienen wird/kann.

>32 LEDs mit 31 Zwischenpositionen, d.h. 63 virtuelle Positionen,
>angedeutet durch 2 schwach leuchtende benachbarte LEDs

Mit PWM kann man das nahezu analog machen mit deutlich mehr als 1 
Zwischenstufe.

>(8+6) x2 Leitungen für die Encoder, weitere 8+6 für die Taster
>zusätzlich 8x2 weitere Taster auf dem Board

Kein Problem. 8:1 ode 6:1 muxen ist vor allem bei Schaltern belanglos.

>32/64 + 48 Leitungen für die LEDs,
>Zwischensumme 138 pins

Du willst 6 x 8 x 32 LEDs ansteuern, macht die stolze Summe von 1536 
Stück.
Du willst/kannst eher nicht 48:1 muxen. Eher 8:1, vielleicht 10:1. Macht 
bei DUO-LEDs 64 x 6 = 384 Leitungen. Und die wollen auch verdrahtet 
sein. Nicht sinnvoll. Viel besser das ganze modular für einen Drehgeber 
mit seriellem Eingang zu machen, 2x TLC59xx und fertig. Deutlich 
verringerter Verdrahtungsaufwand. Und hat den deutlichen Vorteil, dass 
man erstmal einen Prototypen bauen kann, ausgiebig testen und 
(kosten)optimieren und dann einfach  N x M Stück in ein Gehäuse baut.

>Wiederholrate für LEDs und Taster = 1/(48+16) oder 1/(112+16) x 50MHz =
>300 kHz

Totaler Overkill.

>Plexiglasabdeckung mit Bohrungen in Grösse des Gewindes zum
>Durchstecken.

Mal sehen wie weit das Projekt kommt, oder ob es in der 
Brainstormingphase stecken bleibt, wie so viele Projekt e hier.

von J. S. (engineer) Benutzerseite


Lesenswert?

Ich fange mal hinten an zu antworten:

- ja, es wird gebaut

- overkill: es geht um die Abschätzung, dass es vom Tempo her reicht. 
Nur der Vollständigkeit halber erwähnt. Fürs FPGA heisst das, dass man 
noch stark sequenzialisieren kann

- TLC59xx hatte ich auch schon überlegt, aber ein FPGA von der Spartan 3 
A-Serie ist für unter 5 Euro zu haben und mit maximal 2 davon habe ich 
alle Leitungen im Griff. Das wird - wenn es vom Muxen her reicht - in 
jedem Fall billiger. Gfs kann man auch 2-4 Gruppen machen, um die 
MUX-Lst zu divideren. Dann kommt man auf 48 Leitungen x 64 LEDs /4 = 
16tel -> 6% on. Mit einem 70mA-Puls leuchten die wie mit 5mA, was 
reichen sollte.

- "31 Zwischenpositionen", damit war gemeint, dass ich nicht nur 8-10 
Positionen anzeigen will, sondern 63! Ich habe mir ein gleitendes 
Leuchten der LEDs überlegt, die jeweils 2-3 zum Glimmen bringen, sodass 
32+31+62=125 Positionen eindeutig anzeigbar sind. Wenn ich dort eine 
Zehnerteilung auflege, kann ich mit 11x10 insgesamt 10 Teilbereiche 
anzeigen und habe noch LEDs für die Trenner. Das sähe dann so aus : 
rot-10x grün - rot - 10xgrün. Damit wäre eine dezimale Teilung möglich. 
Ähnlich bekomme ich mit 9 leuchtenden LEDs Trenner für 8 Felder hin, um 
2x8 = 16 Teilungen anzuzeigen. Angedacht, ist eine milchige Scheibe zu 
nehmen. Die LED Anzeige kriecht dann quasi analog und ist nicht mehr 
eindeutig einer LED-Position zuzuordnen - gleichzeitig wird die Skala 
eingeblendet.

- "Mit PWM kann man das nahezu analog machen mit deutlich mehr als 1
Zwischenstufe."
PWM geht ja nur innerhalb oder ausserhalb des Multiplexzyklus - damit 
stehen dann nicht so viele Stufen zur Verfügung. Ich brauche aber 
eigentlich auch nur 2, maximal3.


- "mit gescheiter Programmierung schafft das ein AVR"
Mit kaum weniger Programieraufwand schafft das auch der Spartan und der 
ist kaum teuer, als der AVR. Der Spartan packt aber locker auch noch ein 
Midi-Protokoll und streamt mir die Positionsdaten 10 Bit + Steuerinfos + 
Kanalinfos x 64 = 1kBit in weniger als 1ms an ein anderes board.

- billiger
Nun, der besagte Encoder mit den 30 LEDs reicht nicht an meine 
Funktionalität heran, kostet aber schon so viel, wie die Hälfte der 
Encoder. Die habe ich von EBAY zu 0,49 das Stück und die sind richtig 
gut. (ALPS) - verschiedene Ausführungen. Die 30 LEDs kosten definitiv 
keine 25 Euro :-)  Der Rest ist Vogelfutter. Ich spare pro Kanal sicher 
15 Euro und eine Ansteuerung bräuchte ich im anderen Fall auch.

- FPGA für so nen Krümelkram?
auf den ersten Blick, nimmt man keinen FPGA. Aber: Besagter Spartan A 
ist eine billige Krücke, im Prinzip sind das nur Schaltfunktionen, also 
ein Haufen IOs und das ist genau das, was man braucht. Für solche 
Schaltaufgaben mit wenig Intelligenz ist das der optimale Chip.

>- Auflösung von 10Bit Positionen über eine Umdrehung?
Nein, insgesamt. Die MIDI-Geräte die ich zum Vorbild nehme und als 
käufliche Alternative hätte, liefern 127 digit und differenziell 
irgendwas, das entweder weit über einem digitl liegt, also zu grob ist 
oder zu gering steigt, um rasch auf 1024 blättern zu können, weil es 
dafpr nicht gebaut ist. Man braucht eine eigene Beschleunigungsfunktion 
oder eine mehrstufige Einstellung Vorkomma/Nachkomma mit virtuelem 
Feintrieb. Beides kann ich in VHDL leicht machen, wenn die Encoder 
Taster haben oder eine intelligente Beschleunigun reinprogrammiert wird.

Ich will mit dem Geber sowohl sehr fein einstellen, als auch einen 
weiten Bereich haben.

von Falk B. (falk)


Lesenswert?

@  Jürgen S. (engineer) Benutzerseite

>- TLC59xx hatte ich auch schon überlegt, aber ein FPGA von der Spartan 3
>A-Serie ist für unter 5 Euro zu haben und mit maximal 2 davon habe ich
>alle Leitungen im Griff. Das wird - wenn es vom Muxen her reicht - in
>jedem Fall billiger. Gfs kann man auch 2-4 Gruppen machen, um die
>MUX-Lst zu divideren.

Das schon eher, z.B. 6x1 Reihe pro FPGA

>16tel -> 6% on. Mit einem 70mA-Puls leuchten die wie mit 5mA, was
>reichen sollte.

OK.

>- "mit gescheiter Programmierung schafft das ein AVR"
>Mit kaum weniger Programieraufwand schafft das auch der Spartan und der
>ist kaum teuer, als der AVR. Der Spartan packt aber locker auch noch ein
>Midi-Protokoll und streamt mir die Positionsdaten 10 Bit + Steuerinfos +
>Kanalinfos x 64 = 1kBit in weniger als 1ms an ein anderes board.

Naja, stimmt auch wieder, wenn man den S3 für 5 Euro bekommt.

von J. S. (engineer) Benutzerseite


Lesenswert?

Der kleine 50er, den ich mal verbaut hatte, lag unter €3,- bei 
Stückzahlen.

Ok, dann nochmal zu den Kosten:

Reichelt hat einen solchen ALPS Drehgeber mit 31 LEDs, zu 17,95: 
"EC11B1524B-LED".

Ein gleichwertiger Drehgeber kostet maximal 2,50. Die 30 LEDs haben 
einen Wert von maximal 6 Euro. Macht 10,- gespart. Bei 48 Kanälen wird 
schnell klar, dass man im Selbstbau auf 850,- Materialwert für die 
beleuchteten Encoder kommt.

Ich setze dagegen ein: Duo-LED, PLCC4, €0,29 sind belastbar mit 150mA 
bei 10% ED. Durch die angestrebte 1/16 Teilung in der Abtasttung ist die 
ED 6,6%. Also darf ich die 150mA ohne Bedenken draufgeben. Angenommen, 
ich fahre die voll, so komme ich auf 10mA "effektiv" - das wäre die 
halbe nominelle Stromstärke. Müsste man Testen, wie hell das wird / 
wirkt. Wenn ich vor die LEDs einen Treiber setze, kann ich mir die 
Transistoren sparen und die Leuchtstärke garantieren. Designen wir also 
sicherheitshalber noch 2x4 SIPOs je Kanal, macht einen €2,- und etwas 
Platzbedarf.

Ich kann also im Bezug auf die Steuer- und Anzeigegenauigkeit den 
Leistungsumfang des Drehgebers glatt verdoppeln und bin trtzodem noch 
locker unter €14,-! Für das gesparte Geld (€190,-!!!) bekomme ich schon 
die Platine und die FPGAs. Noch billiger wird es mit bedrahteten LEDs, 
damit wird aber der Kranz grösser - ca 50mm.

Ich schaue mal, was der Spartan so an Leistung kann. Gfs kann man mit 
gekoppelten Ausgängen noch etwas machen und jeweils eine 8er LED-Gruppe 
auf eine Teilplatine setzen und mit einem FPGA direkt bearbeiten. Dort 
leuchten maximal 2LEDs x 8 x 20 mA = 320mA. Das packt der in Summe und 
auch jeweils pro Kanal (5mA bei Doppelbelegung). Die Treiberchips würde 
ich aus Platzgründen gerne weglassen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Wenn du die Werte der Drehencoder nach dem Aus- und wieder Einschalten 
erhalten willst, fehlt da aber noch ein Speicher a la EEPROM oder 
ZeroPower RAM.

von Falk B. (falk)


Lesenswert?

@  Jürgen S. (engineer) Benutzerseite

>Der kleine 50er, den ich mal verbaut hatte, lag unter €3,- bei
>Stückzahlen.

In Stückzahlen. Welchen Stückzahlen? Ereichst du die mit dem 
Hobbyprojekt?

>Reichelt hat einen solchen ALPS Drehgeber mit 31 LEDs, zu 17,95:
>"EC11B1524B-LED".

>Ein gleichwertiger Drehgeber kostet maximal 2,50. Die 30 LEDs haben
>einen Wert von maximal 6 Euro. Macht 10,- gespart. Bei 48 Kanälen wird
>schnell klar, dass man im Selbstbau auf 850,- Materialwert für die
>beleuchteten Encoder kommt.

Äpfel und Birnen. Du vergleichst einen Verkaufspreis incl. Fertigung mit 
reinen Materialkosten.

von Peter D. (peda)


Lesenswert?

Warum so aufwendig?

Ich würde einen ATtiny25 nehmen, der ist vollkommen ausreichend.
2 Pins lesen den Encoder ein.
2 Pins steuern per M5450 bis zu 34 LEDs (SW-PWM möglich).
2 Pins zur Ausgabe des Wertes als I2C-Slave.
Fertig.

Man könnte noch nen Bootloader vorsehen, damit man ein Update per I2C 
machen kann, falls die Funktion mal erweitert, geändert werden soll.


Peter

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Matthias Sch. schrieb:
> Wenn du die Werte der Drehencoder nach dem Aus- und wieder Einschalten
> erhalten willst, fehlt da aber noch ein Speicher a la EEPROM oder
> ZeroPower RAM.

Braucht man in der Regel nicht, weil ein Einschalten meist "Bedienung 
eines neuen Geräts" gleich kommt. Die Zustände des Geräts stimmen dann 
eh nicht und können auch nicht schlagartig auf den Stand gebracht 
werden.

Im Falle des MIDI Controllers würde ohnehin der Sequenzer den Dump 
abfangen und man würde alles von dort laden, wie üblich. (Die 
angeschlossenen Geräte haben auch keinen Ausfallschutz).


Falk Brunner schrieb:
> Äpfel und Birnen.

ok, man müsste die LEDs löten und gfs die Buffer/Controller und der 
Encoder ist schneller verdrahtet. Das war aber auch nur ein 
Rechenbeispiel, denn ich ich werde den Geber nicht nehmen, weil er keine 
Farben kann. Die Zahl der LEDs hätte gut gepasst, aber ich brauche den 
Anzeigebereich.

Mit den 31 LEDs kann ich:

0...31, 0...62 (mit einer Hilfsfarbe noch eins mehr)

0...16 (16 Positionen + 17 Trennstriche) - s.o.
1...10 (10 Positionen a 2 LEDs mit 11 Trennstrichen) - s.o.

und die Teiler - also 3,5,6,8 direkt anzeigen.


Mit 3 Farben rot, grün, gelb kann ich die Trennstriche jeweils in einer 
anderen Farbe gestalten. Ich habe auch Kontrolle über die Balken und 
kann mich entscheiden, ob ich nur eine Positions-LED anmache, oder den 
ganzen Strang. Bei Mono-Stereo z.B. kann ich links/recht faden und die 
Mitte in Grün anzeigen.

Vor allem kann ich mit 3 Farben 3 Stellen markieren und damit bis 0xFFF 
und 999 zählen.

Über einen Controller

Das liefe dann auf eine Einzelmodulbauweise hinaus mit eigenständigem 
Controller. So macht das ja das  eine Modul im Netz. Hat einen 
Controller und I2C soweit ich mich erinnere.

von J. S. (engineer) Benutzerseite


Lesenswert?

Peter Dannegger schrieb:
> Ich würde einen ATtiny25 nehmen, der ist vollkommen ausreichend.
> 2 Pins lesen den Encoder ein.
> 2 Pins steuern per M5450 bis zu

Ok, einen Controller könnte man setzen, um sich die Chips zu sparen wenn 
er sich rechnet. Erste Recherche ergab: 3,10 pro Stück und soweit ich 
das ersehe, ist er dann immer noch am multiplexen.

Da ich ohnehin den FPGA brauche (z.B. für den schnellen Logarithmus beim 
VU-Meter am Lautstärkeregelknopf) kann man die i2C auch gleich in den 
FPGA tun und den Tiny absorbieren.

Ich bin auch nicht sicher, wie schnell man den Chip updaten kann. Um 
schneller, als das Auge zu sein, brauche ich (experimentell bestimmt) 
60-70 updates der Anzeigen. 70x50 = 3500 kHz update-Frequenz. Mit etwas 
Umschalterei also rund 250us für den Zustand der 30 LEDs. Der Chip wird 
es können, aber der Tiny sicher nicht :-)

von Duda (Gast)


Lesenswert?

Jürgen S. schrieb:
> Braucht man in der Regel nicht, weil ein Einschalten meist "Bedienung
> eines neuen Geräts" gleich kommt. Die Zustände des Geräts stimmen dann
> eh nicht und können auch nicht schlagartig auf den Stand gebracht
> werden.

Ich finde das Projekt ansich nicht uninteressant. Jedoch würde ich bei 
einem Projekt, welches ja auch andere interessieren und zur Mitarbeit 
motivieren soll, nicht "gewünschte" Features als "braucht man nicht" 
abtun. Das machen schon die großen Betriebssystemhersteller zur Genüge.

Einschalten bedeutet immer erst, das System auf einen definierten 
Zustand zu bringen (also erst einmal alles auf "aus"). Danach wird der 
letzte Zustand geholt und das System auf diesen Stand gebracht.

Ich würde als Projektleiter gerne die Wünsche anderer einflechten - 
zumindest soweit es sinnvoll ist und im Rahmen bleibt.

Jürgen S. schrieb:
> soweit ich
> das ersehe, ist er dann immer noch am multiplexen.

Klar, ist aber auch kein Problem, das zu tun. Oder willst Du jede LED 
einzeln ansteuern?

Auch darf man nicht unbedingt die Preise bei Reichelt als Maß nehmen. Es 
gibt noch günstigere Quellen die auch noch mehr Auswahl haben.

von Roman (Gast)


Lesenswert?

Hallo Jürgen,

dann schau doch mal bei Sparkfun:

Rotary Encoder LED Ring Breakout Board - Blue
COM-10407

Sieht gut aus mit Beispielcode. Die "paar" LED mehr bekommst Du doch 
bestimmt noch unter als engineer.

Gruss

Roman

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Duda schrieb:
>Oder willst Du jede LED einzeln ansteuern?
"Wollen" nicht, aber es scheint das zweckmässigste zu sein, sie per 
Latch zu treiben und das Updaten zu multiplexen:

Ich habe jetzt einen routing-Versuch gemacht und komme zu dem Ergebnis, 
dass es zu viel Platz kosten wird, die Leitungen alle auf ein zentrales 
FPGA zu führen, auch wenn es vom Multiplexen (Zeit- und 
Strom-Randbedingungen) her klappen könnte. Daher gibt es zwei 
Möglichkeiten:

1) Entweder, man nutzt eine Luftverkabelung und führt alles auf ein 
entsprechendes FPGA-Evalboard. Dazu könnte man LED-Testplatinen 
erwerben, die es bei LED-TECH.DE zu 6,95 gibt und auf denen man bis zu 
60 LEDs ringförmig dicht verlöten kann und akzeptiert den grösserem 
Radius. Dummerweise haben die die Bohrungen longitudinal angeordnet. Bei 
transversaler ANordnung könnte man die flachen Rechteck-LEDs verbauen.

Gfs ginge es auch mit der kleineren Platine zu 4,95, wenn man selber in 
den Massering reinbohrt.


2) Oder, man fasst die Leitungen lokal zusammen und multiplext die 
Information weiter vorne. Die Ansätze oben mit dem LED Chip und den 
Platinen von Sparkfun und der anderen, die ich schon nannte, laufen ja 
darauf hinaus, wobei ich definitiv ein Schieberegister bevorzugen würde, 
wie ich es hier auch schon mal beschrieben hatte: 
Erweiterung von digitalen IO-Ports.

Dafür brauche ich aber keinen weiteren AVR mehr oder I2C sondern schiebe 
die Daten in high speed rein. Damit brauche ich dann 1x den Takt sowie 2 
Leitungen (enable, daten) je Decodereinheit, die sich auch noch 
verketten liessen: Wenn das Schieberegister die LEDs transparent 
treibt(latch enables einsparen), wären das für die 32 DUO-LEDs 64 Bit = 
8 chips, die auf die Rückseite der Platine passen. Wenn man alle 8 
Einheiten einer Reihe verkettet, müsste man 512 Bits schieben, was bei 
EMV-freundlichen 5MHz nur 100us dauerte und praktisch unsichtbar wäre. 
Die LEDs würden dann z.B. 900us statisch sein und man hätte praktisch 
eine update-Frequenz von 1kHz, was auch für PWM noch reichte.

von J. S. (engineer) Benutzerseite


Lesenswert?

Duda schrieb:
> Jedoch würde ich bei
> einem Projekt, welches ja auch andere interessieren und zur Mitarbeit
> motivieren soll, nicht "gewünschte" Features als "braucht man nicht"
> abtun.
Da hast Du natürlich vollkommen Recht. Ich bin natürlich für Vorschläge 
offen. Ich würde das mal gleich diskutieren:

> Einschalten bedeutet immer erst, das System auf einen definierten
> Zustand zu bringen (also erst einmal alles auf "aus"). Danach wird der
> letzte Zustand geholt und das System auf diesen Stand gebracht
Absolut, allerdings denke ich funktionell immer so, dass ich in allen 
Geräten die Eingabe, Verarbeitung, Steuerung, Ausgabe und Überwachung 
von einander trenne. Die LEDs sind Teil der Anzeigefunktion und somit 
für mich eindeutig ein Monitor des Gerätezustands, da eben die konkreten 
Werte des Gerätes angezeigt werden und nicht etwa die abstrakten 
Reglerpostionen, die meistens sinnfrei sind.

Dies genau ist aber der grosse Unterschied zwischen den fixen Positionen 
eines Potis in Grad, bzw eines fest beschrifteten Reglers und der hier 
verwendeten virtuellen Ausgabe von Werten: Sie sind die Folge der 
Reglereinstellung = Reaktion im bedienten Gerät und daher von diesem 
abhängig. Denken wir dabei z.B. mal an die Lautstärke, die man 
einstellt: Man dreht selten auf einen absoluten Wert "5", sondern auf 
den Wert, den man subjektiv will und die Anzeige sagt mir dann bitte 
schön, wie es mit der realen Aussteuerung aussieht.

Bei realen Geräten ist das festgelegt, daher steht auch etwas an den 
Reglern dran. Bei einem frei programmierbaren Gerät ist das aber nicht 
so. Abstrakt gesprochen ist die Funktion "Reglerskalierung" damit eine 
Eigenschaft des Gerätes und nicht eine des Encoders. Als geplantes 
Eingabegerät muss es daher den Zustand und die Funktion des Reglers 
nicht speichern.

Daher ist es nach meiner Einschätzung die Aufgabe des angesteuerten 
Gerätes, zu entscheiden, was es denn zur Anzeige bringt, wann es die 
aktualisiert und wo es die Daten eventuell speichert.

Im Midi-Umfeld macht das wie gesagt das Mischpult oder der Sequenzer - 
konkret kann man z.B. die Reglerdaten aus einer Software in ein 
Mischpult laden und das fährt dann die Motorfader dort hin. Mit den 
Drehencodern will ich dasselbe machen, wobei ich die ja nicht mechanisch 
positionieren muss.

Ich gehe sogar noch einen Schritt weiter in die Methodik "Funktionelle 
Anzeige":

Bei Synthesizern z.B. interessiert es mich eigentlich nicht wirklich, ob 
ich einen ADSR-Wert Attack von 3 eingestellt habe, sondern, ob es 
klanglich passt und wie gross die dabei erzeugte Aussteuerung ist. Diese 
hängt nämlich vom Basissignal und dessen Phase ab. Daher stellt man nie 
einen Wert zielgerichtet ein, sondern probiert das Passende und merkt 
sich den dafür benötigten Wert. Dabei hilft eine Pegelanzeige aber 
wesentlich besser, als die Anzeige der Reglerposition.

Was also dort als eingestellt und gespeichert werden soll, muss die 
Steuerung des Endgerätes für jeden Regler neu festlegen. Wenn das 
Eingabegerät beim Start alte Werte hochholen würde, wären die oft nicht 
nur sinnfrei sondern kontraproduktiv.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jürgen S. schrieb:
> Braucht man in der Regel nicht, weil ein Einschalten meist "Bedienung
> eines neuen Geräts" gleich kommt. Die Zustände des Geräts stimmen dann
> eh nicht und können auch nicht schlagartig auf den Stand gebracht
> werden.

Meine erste Idee, als ich von dem Projekt las, war, das ich damit 
endlich Parameter bei der Programmierung von Synthies (z.B. meinem DX7) 
gleichzeitig im Griff habe, ohne umständlich auf der Folientastatur 
rumzutasten und darüber zu vergessen, welche Sorte Sound ich denn 
eigentlich machen wollte.
Da wäre das 'letzte Einstellung speichern' Feature genau das richtige 
gewesen. Ansonsten fällt mir gerade nicht ein, wofür man das Ding denn 
nun benutzen soll? Nenn mal bitte Beispiele.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Roman schrieb:
> Rotary Encoder LED Ring Breakout Board - Blue COM-10407

Der hier?

Diese Platinen haben schon was für sich, ja. Aber die Sparkfun ist recht 
teuer und soweit ich das sehe, nur einfarbig. Komplett kostet das Teil 
mit der LED-Einheit und Encoder über $20,- und damit wäre ich teurer und 
kaum weiter, als mit dem ALPS-Komplett-Encoder, der zudem kompakter 
wäre. Mit der SF-Lösung könnte ich gegenüber dem ALPS zwar flexibel 
ansteuern, hätte aber wieder eine Platine, die ich wieder in eine andere 
Platine einlöten muss, oder es doch wieder auf eine Luftverkabelung 
hinaus.

Was mir sehr gut gefällt, ist der LED-Aufsatz alleine: Den würde ich zu 
dem Preis ($9,99) direkt einlöten, wenn es Duo-LEDs wären, denn damit 
entfiele das aufwändige Bestücken der kreisförmig angeordneten LEDs.

Aber ich habe mich jetzt halt auf DOU festgelegt.

Meine Haltungist, wenn man den Standard haben will, braucht man nichts 
zu bauen, sondern kauft einfach. Ich möchte mit meiner Schaltung aber 
mehr machen und ich bin auch der Ansicht, das bessere Konzept zu haben:

Mit dem schnellen Schieben und dem FPGA habe ich alles in der Hand, die 
Anzeigen so zu bedienen, wie ich es brauche, kann es aber auch von der 
Steuerung des User-Gerätes machen oder kommandieren lassen. Vor allem 
kann das Ding autark laufen und viel mehr anzeigen, als alles andere, 
was ich bisher gesehen irgendwo habe, weil sich die Anzeigen mit dem 
Konzept der farbigen Trenner konfigurieren lässt. Nur ein Beispiel dazu:

Ich hatte schon einmal ein ähnliches Konzept ausgearbeitet das mit 4 
LED-BARs arbeitet, die wie ein Quadrat das Poti umranden sollten. 
Problem: Welche Farben nimmt man? Bei der klassischen Volumen-Bar hat 
man immer nur einige wenige Anzeige-LEDs und ist auf die Farben 
festgelegt, weil es eine feste Anzahl von gelben und roten gibt.

Mit meinem Konzept der DUO-LEDs kann ich die Anzeige verschieben: Hält 
sich das Signal z.B. im Mittel bei -20dB auf, blende ich einfach nur die 
gelben LEDs als Maximum ein und habe alle anderen als grüne LEDs zur 
feinen Anzeige des Pegels. Geht der Pegel langsam hoch, kann ich die 
Anzeige sofort virtuell verschieben und blende die roten mit ein. Der 
Übergang von grün nach gelb (-12 dB-Grenze) bleibt immer sichtbar und 
man hat eine Orientierung. Sowas geht mit keiner anderen Anzeige im 
Markt.

Eine weitere Möglichkeit ist das Anzeigen zweier Werte gleichzeitig: 
Durch Einblendung des Restpegels in Grün und eines Verlustes in Gelb, 
kann man die Wirkung eines Kompressors visualisieren, wobei die Summe 
der Gesamtpegel ist. Sowas gibt es nur in Software auf Monitoren und bei 
Mischpulten brauchen sie immer 2 LED-Ketten.

Was man machen könnte, wäre einen solchen Rahmen als Träger zu nehmen 
und die LEDs selber zu bestücken. Das wäre aber auch wieder aufwändig 
und kaum eine Ersparnis. Die rüde Methode, die mir noch eingefallen ist:

Man klebt die LEDs mit klarem Kleber direkt auf die Plexiglasscheibe und 
verdrahtet selber per Hand nach hinten. Als Test werde ich das gfs mal 
machen oder einen solchem LED-ring benutzen, aber langfristig scheint 
mir die Lösung mit den Schieberegistern das Beste. Gfs bekommt man ein 
taugliches 16-bit SR, das genug Strom treiben kann.

Was ich mir von der SPARKFUN-Version aber mitnehme, ist die Idee des 
beleuchteten Enconders. Damit lässt sich schön anzeigen, welcher Regler 
in einer Signalkette einen Datenüberlauf erzeugt.

Falls jemand weitere Quelle für LED-Ringe kennt, die manleicht verbauen 
kann, nur her damit. Ziel ist wie gesagt eine DUO-LED-Ring rot-grün mit 
32 Stück (31 geht auch) der möglichst klein gebaut ist. Optimal wären 
flache rechteckige LEDs.

von Falk B. (falk)


Lesenswert?

Wenn das Ganze irgendwann mal vielleicht in Kleinserie läuft, wird das 
doch eh maschinell per SMD bestückt. Du macht dir schon viel zuviel 
Gedanken über eher nebensächliche Details und verrennst dich in billigen 
Bastellösungen. Für einen Prototypen ist der BEstückungsaufwand 
nebensächlich, wenn gleich bei ~1500 LEDs schon etwas Arbeit 
dahintersteckt. Aber auch hier kann man SMD machen, Heißluft aus dem 
Baumarktfön wirkt Wunder.

Beitrag "Re: Zeigt her eure SMD löt-Kunst !"
Beitrag "Re: Zeigt her eure SMD löt-Kunst !"

von Duda (Gast)


Lesenswert?

Jürgen S. schrieb:
> Daher ist es nach meiner Einschätzung die Aufgabe des angesteuerten
> Gerätes, zu entscheiden, was es denn zur Anzeige bringt, wann es die
> aktualisiert und wo es die Daten eventuell speichert.

Ok, Du trennst also Eingabe und Anzeige. Es soll also kein, sagen wir 
mal, Poti-Ersatz darstellen, welcher von sich aus die letzte Einstellung 
beibehält. Verstehe. In diesem Fall braucht man keine 
Zustandsspeicherung.

Liefert Dein FPGA einen eingestellten Wert an die Steuerung oder dient 
er nur zur Anzeige? Du schreibst, dass er auch gleich MIDI machen 
könnte.

Hierzu müsstest Du den FPGA ja noch einige variable Parameter 
übermitteln (Min-/Maxwert; Schrittweite; Beschleunigungsfaktoren und 
welchen Wertebereich die LED anzeigen müssen).

Sehe ich das richtig?

Was spricht dagegen, ein kleines EEProm einzubinden, welcher die 
Parameter speichert (man muss sich ja nicht verwenden)?

von J. S. (engineer) Benutzerseite


Lesenswert?

Falk Brunner schrieb:
> Du macht dir schon viel zuviel
> Gedanken über eher nebensächliche Details und verrennst dich in billigen
> Bastellösungen.
inwiefern? wo habe ich eine bastelösung vorgezogen?

Es geht um Machbarkeit und Kosten.

von Axel S. (a-za-z0-9)


Lesenswert?

Moin,

mal ein paar Ideen.

Woran das ganze Projekt IMHO krankt, ist der monolithische Ansatz mit 
dem vergleichsweise riesigen 8x6 Block. Ich würde so etwas viel 
modularer planen. Im Extremfall ist jeder Drehgeber samt zugeordneter 
Anzeige ein einzelner Block. Man kann aber auch Grüppchen von 4 o.ä. 
bilden. Ziel der Modularisierung wäre zum einen Flexibilität gegenüber 
dem Anwender ("wir können ihnen ein Eingabefeld NxM anbieten für 
beliebige M und N aus [1..16]") und zum anderen die Möglichkeit der 
Massenfertigung.

Jedes dieser Module wäre logisch ein Eingabegerät und eine eigenständige 
Anzeige. Die Zuordnung zu Funktionen ist Software, damit hat so ein 
kleines Modul gar nichts zu schaffen. Insbesondere würde das Modul nicht 
selber eine Verknüpfung von Eingabe und Ausgabe vornehmen, sondern das 
anzeigen, was der Controller vorgibt.

Elektrisch müßte jedes Modul eine bidirektionale Schnittstelle haben. 
Wegen der Routingproblematik würde man sicher etwas serielles wollen. 
Und für die Skalierbarkeit etwas schnelles. Also evtl. I²C, vielleicht 
besser SPI. SPI hätte auch den Vorteil, Module physikalisch lokalisieren 
zu können (MISO, MOSI, SCLK durchgeschleift, aber jedem physischen 
Modul-Platz ein eigenes SS). Dann könnten sich Module gegenüber dem 
Controller identifizieren. Und man könnte verschiedene Typen von Modulen 
verwenden. Z.B. mit numerischer Anzeige (2 oder 3 Stellen 7-Segment) 
statt des LED-Rings. Oder ganz ohne Anzeige. Oder mit Absolutwertgeber. 
Oder nur Anzeige.

Auf jeden Fall bräuchte ein Modul auch eine (besser mehrere) Status-LED. 
Zum einem um Betriebszustände anzuzeigen ("Locked"). Aber insbesondere 
auch für eine "Locator" Funktion: "den gewünschten Parameter ändern Sie 
am Knopf mit der blinkenden LED".


XL

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

@Axel:

Das mit der Modularisierung hatte ich schon überlegt und wollte ich wie 
folgt lösen:

Jedes Anzeigemodul kann einzeln verdrahtet werden, sodass man sich 
aussuchen kann, ob man es mit einem einzigen Block durchschleift oder 
gruppenweise. Die gelben Punkte sind das Data-In der Register, die 
violetten das letzte Bis Q8. Die lassen sich auf der Platine und auch 
platinenübergriefend durchschleifen. Auch die Encoder können ja als 
Matrix ausgelesen werden, indem man jede einzelne Leitung aktiviert, 
oder z.B. A und B zusammenfasst und zwei Signale gleichzeitig ausliest.

Schaltungstechnisch muss man dann entweder jeweils eine eigene Leitung 
ziehen oder eine kleine Brücke einlöten, also vor allem von den 
Ausgängen der SRs auf das jeweils erste des nächsten Chips. Pro Platine 
gibt es ja 8 Stück. Modulübergreifend wird dadurch festgelegt, wieviele 
Encoder-Anzeigmodule aus elektrischer Sicht in einer Reihe arbeiten und 
wieviele in einer Spalte. Z.B. könnte man jeweils 8 Bit parallel über 
ein Byte schreiben und damit in nur 8 Takten alle LEDs setzen, was 
insbesondere für langsame Controller günstiger wäre.

Die Encoder möchte ich eigentlich direkt von hinten anschliessen und 
nicht auflöten, da sonst eine zu grosse Bauhöhe und damit Abstand der 
LEDs zur Frontplatte erzeugt wird. Die LEDs sitzen für mich direkt 
hinter der Frontplatte.

Geometrisch kann man die Platinen widerum anordnen, wie man möchte. Auf 
dem Nutzen werden zunächst wahrscheinlich 6 Stück sitzen - da es bis zu 
50x50mm sind und ich mit Euroformat plane.

Es gibt allerdings ein Platzproblem, die LEDs geben einen gewissen 
Mindestradius vor und die Chips (grau) und Widerstände nehmen auch noch 
etwas Raum weg. Ich hatte überlegt, die Module in 70x50 zu bauen, aber 
wenn man den Platz dann ausnutzen würde, z.B. für einen Controller, wäre 
man darauf festgelegt, die Platine auch so zu betreiben und man würde 
sich die Möglichkeit vergeben, sie dichter und vor allem quadratisch 
anzureihen. Das genau ist eines der Probleme der käuflichen Module. Wenn 
jemand mehr Platz auf der Frontplatte über einem Encoderblock haben 
will, um dort was zu beschriften, kann das ja immer noch leicht durch 
künstlichen Abstand erzeugen.

Mit der 3x2 Konfiguration hat man alle Opionen auf 3x4, 3x6, 3x8, 6x6 
und die angestrebten 8x6 ohne die Platine zusägen. Ausserdem wäre der 
Einstiegspreis nicht so hoch. 12,- für die Chips und ca 75,- für die 
Duo-LEDs. Die Hauptfrage ist, was die Platine kostet.

Wer einen Controller haben möchte (es mag Anwendungen geben, wo man das 
braucht - ich sehe das momentan nicht) könnte den Huckepack hinten drauf 
schrauben und dort auch gleich den Encoder einlöten. Man wäre dann auch 
frei, es so zu gestalten, dass ein Controller mehrere Module fährt.

Ich denke, dass der Vorschlag mit Controller I2C und SPI in jedem Modul 
zu sehr in Richtung autarke System ginge. Das Mehr an Intelligenz kostet 
Platz und Geld und ist eigentlich nur für langsame CPUs wirklich nötig. 
Der Aufwand an Takten bei einer I2C Kommunikation wird ja eher steigen 
und im Grunde will ich ja nur LEDs schalten, davon aber viele. Daher 
soll das so einfach wie möglich bleiben. Komplexe Module mit 
Kommunikation gibt es ja bereits. Wie schon dargestellt, würde ich am 
Liebsten sogar die Schieberegister weglassen, aber es gibt dann ein 
Problem, sehr viele Module zu multiplexen und vor allem durch die Luft 
oder gar über die Leiterplatte zu verdrahten und gfs möchte man doch mal 
mehr, als nur 2-3 je Anzeigemodul anschalten, womit es ein Stromproblem 
gibt.

So, wie ich es jetzt plane, sind das ausser zwei Leitungen für Power nur 
die 4 Encoder-Signale und die beiden Steuersignale CLK, DAT (für 
langsame CPUs braucht man gfs noch ein latch enable), weil die jeweilgen 
Signale einer Platine parallel und seriell verkettet sind (orange).

Nimmt man z.B. 8 Module, liessen die sich immer noch in Kette betreiben, 
die Encoder als Matrix -> 8 Eingänge für die linken Schalterseiten der 
Encoder, von denen einer aktiv und die anderen tristate sind sowie zwei 
Ausgänge für A und B. Bei 32 Modulen könnte man dann einfach 8 Leitungen 
parallel zurücklesen, in einem Byte speichern und nacheinander 
verarbeiten.

>Status LED
Da musste ich jetzt echt schmunzeln: Ein Modul, dessen Hauptaufgabe es 
ist, LEDs anzumachen mit soviel Interligenz zuzustopfen, dass man noch 
einen Funktionsindikator braucht, finde ich cool. Mir reicht es, wenn 
die LEDs selber glühen :-)

Richtig ist natürlich, dass das timing passen muss. Da darf sich nichts 
verzählen oder vertakten, sonst glühen die falschen LEDs. Anderseits 
wäre das im PWM-Betrieb gar nicht so dramatisch, meine ich. Trotzdem 
würde man ausreichend niedrig takten.

von Joern G. (joern_g83)


Lesenswert?

Sehe ich das richtig, dass bei der Realisierung mit Fpga noch serieller 
Flash (für PROM) und 3 Spannungen dazukommen? Also 5v (grüne und blaue 
LED), 3,3V (max. FPGA-IO) und 1,2V (FPGA intern). Wenn es dann noch 
evtl. 2 FPGAs sein sollen, dann werden dass doch schnell 20,- bis 30,- 
nur für die 2 FPGAs mit Drumherum?
Oder sollen die kleineren Spannungen einfach linear realisiert werden um 
Geld fur DCDC zu sparen.

Cu joern

von Falk B. (falk)


Lesenswert?

Bei den paar mA für den FPGA tuns einfache Linearregler für eine 
Handvoll Cent.

von Peter D. (peda)


Lesenswert?

Hat denn der FPGA auch Stromausgänge wie die Ansteuer-ICs (M5450, 
MAX7219)?

Ansonsten brauchst Du ja für jede LED noch nen Vorwidersand.


Peter

von J. S. (engineer) Benutzerseite


Lesenswert?

Joern G. schrieb:
> Sehe ich das richtig, dass bei der Realisierung mit Fpga noch serieller
> Flash (für PROM) und 3 Spannungen dazukommen?
Ich habe jetzt die Ansteuerung ausgeklammert, da das Modul auch von 
einem UC angesteuert werden können soll. Das geht ja nun, weil ich die 
LEDs mit den Schieberegistern statisch mache und das update beliebig 
langsam erfolgen kann. Wenn es mit einem FPGA gemacht wird, muss 
irgendeine Plattform dran, nämlich die, die auch die Steuerung enthält.

Da eignet sich vom Timing her auch ein Spartan 3A Starterkit zu 39,-.

Wenn man die Funktion dem Gerät zurechnen möchte, weil man einen eigenen 
FPGA nur fürs Ansteuen verwenden will, muss man, wie Du richtig 
vermutest, das FPGA und die Umbeschaltung rechnen, also Flach, JTAG, gfs 
auch RAM und Regler. Macht irgendwas zwischen 20,- und 50,-. Angesichts 
der Kosten für die Kanäle ist das aber unerheblich, da nur einmal 
benötigt.


Peter Dannegger schrieb:
> Hat denn der FPGA auch Stromausgänge wie die Ansteuer-ICs (M5450,
> MAX7219)?

Das ist das Problem! Die Ausgänge des FPGAs können zu wenig treiben, um 
eine ausreichend grosse Anzahl von LEDs gleichzeitig bedienen zu können, 
sodass der FPGA bei wenigen Modulen die günstigste Lösung ist. Darum bin 
ich ja auf die Schieberegister gekommen. Die nehmen zwar Platz weg, 
bzw. müssen auf die Gegenseite der Platine, aber sie entschärfen die 
Multiplex-Problematik und Stromtreiberproblematik - machen das Modul 
damit aber autark genug, um es einzeln oder in Gruppen nutzen zu können.

Die Mehr-FPGA-Lösung, wie ich sie weiter oben angedacht hatte, wäre für 
den Fall denkbar, dass man gleich 8 Gruppen von LEDs mit einem FPGA 
multiplext. Dieses träte dann an die Stelle der Anzeigentreiber. Das 
wäre auch günstig genug gewesen, widerspräche aber der Modulbildung. Die 
ist aber nötig, damit auch die vielen Benutzer von Microcontrollern und 
die, die nur wenige Kanäle haben wollen, das Modul nutzen können.

>Vorwiderstände
Genau wie die FPGAs brauchen auch die SR natürlich Vorwiderstände und 
zwar zwei unterschiedliche je LED (rot /grün) = 2 x 32. Klar, könnte man 
jeweils eine je GND-Pfad nutzen, dann dürfte man aber auch nur eine 
anschalten. Ich rechne daher mit 64 Rs je Platine.

>MC5400
Einen Anzeigentreiber mit Stromausgang wollte ich nicht nehmen. Der 
MICREL 5400 z.B. sieht auf den ersten Blick nett aus und spart auch 
Leistung, weil er stromgeregelt ist und auch genau 2 Kanäle passend zur 
DUO-Geschichte hätte, er fällt aber wegen der Kosten weg, denn er kann 
nur 2x8 LEDs treiben - man bräuchte daher 4 Stück und jeweils noch einen 
Transistor - siehe Datenblatt.

Vom Platz wäre es nicht wesentlich günstiger da er SO28 ist - zudem 
leistet er auch nichts anderes, als Schieberegisterfunktion. Die 
Standard-SR bringen zwar nur 8Bit - die (32 LEDs * 2Farben / 8Bit) = 8 
Bautsteine kosten aber nur je 0,25, zusammen also 2 Euro.

Gesucht wäre also ein oder mehrere Chips, die Stromausgänge haben, 
insgesamt 64 LEDs treiben können und in Summe weniger, als 2 Euro 
kosten. Ich denke, das ist nicht zu finden :-)

An der Stelle muss man aber genau auf die Kosten schauen, weil sie je 
Kanal einmal anfallen. Was ich im Markt gefunden haben kann maximal 34 
LEDs und kostet minimal 4,-. Das waren 6 Euro mehr für jeden Kanal.

Die Platine ist ohne einen FPGA auch einfacher herzustellen und selber 
zu bestücken. Ich selber werde dennoch einen FPGA dranbringen und auch 
testweise die SRs nicht bestücken, um das mal zu testen. Der FPGA wird 
aber der sein, der auch die Hauptaufgabe des Zielgerätes leistet. Für 
noch einen lokalen FPGA oder einen Mikrocontroller sehe ich keinen 
Bedarf.

So, wie ich es derzeit plane, kommt der Normalanwender allein mit der 
Anzeigenplatine aus, in der der Encoder eingeschraubt wird. Die 
Ansteuerung ist simpel und kann beliebig langsam erfolgen. Im 
einfachsten Fall braucht man 2 Leitungen zum Schreiben und 3 zum Lesen. 
Das kann man an jeden Controller dranhängen. Mit einem Europanutzen hat 
man 6 Platinchen, die jeweils mit Bauteilen zu unter €15,- bestückt 
werden, was ein sinnvolles Verhältnis von Platinenkosten und Bauteilen 
ergibt.

Ich denke, das ist für Viele interessant und eine gute Ergänzung zu 
vielen Bastelprojekten. Wie gesagt, besteht das Interessante aus der 
logischen Trennung der Anzeige und der Eingabe. Damit kann man das 
direkt verknpüfen, muss es aber nicht, sondern kann auch die Wirkung 
des Drehreglers darstellen, wie ich das oben bereits angedeutet habe.

Meines Wissens gibt es noch kein Gerät am Markt, dass das so leistet, 
bzw nutzt. Alle Systeme, die mit beleuchteten Encodern arbeiten, stellen 
den Reglerwert indirekt dar und dies auch viel zu ungenau. Mit meinem 
Konzept, drei Farben zu nutzen, kann ich ohne die Nutzung der 
Zwischenstufenlösung 32*32*32 Werte = 15 Bit direkt zielführend 
einstellen - mit Zwischenstufen sind es 18 Bit. Und ich kann sie auch 
darstellen.

Wenn man die dezimale Teilung verwendet, kann man sie auch sehr leicht 
interpretieren und beim Multiplexen der Stellen sogar direkt ablesen. 
Wie eingangs erwähnt, ziele ich auf die Wertevorgabe von 0 ... 999, die 
ich in die 10 Bit verpacken will. Siehe die 10er Teilung im Bild
Beitrag "Re: Universelles Eingabegerät mit Drehencodern"

Wenn man die Anzeigen nicht farbmultiplext, kann man immerhin noch 2 
Farben darstellen, also rot und grün überlagert. Dann sind wenigstens 
32x32 = 10 Bit in Hex direkt einstellbar. Ablesen und interpretieren 
kann man zumindest einen Hexwert von 0..FF.

von Peter D. (peda)


Lesenswert?

Jürgen S. schrieb:
> Gesucht wäre also ein oder mehrere Chips, die Stromausgänge haben,
> insgesamt 64 LEDs treiben können und in Summe weniger, als 2 Euro
> kosten.

Den MAX7219 kann 64 LEDs, kostet allerding 3,40€ (Schukat).
Man kann ihn sehr einfach kaskadieren.


Peter

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Danke für den Tip. Der Chip kann neben 8x7Segemnt in der Tat auch 64 
einzelnen LED-Bits - wie genau sie adressiert werden, muss ich nochmal 
schauen. Das Protokoll wäre gfs etwas aufwändiger, bei 10MHz Datenrate 
aber sicher kein Problem, die gewünschte updaterate zu erreichen. Der 
Chip hätte den Vorteil, dass er die Helligkeitsregelung selber macht und 
damit keine PWM benötigt wird. Damit kann auch von langsamen 
Mikrocontrollern eine Helligkeitsmdulation betrieben werden. Ausserdem 
ist er im bastelfreundlichen DIP verfügbar. Der Mehrpreis wäre zu 
tolerieren, denke ich.

Die Helligkeitsregelung, die ansonsten nur mit einem FPGA machbar wäre, 
ist nämlich schon wichtig, denn mit etwas Geschick kann man ja die drei 
Farben zeitlich/optisch mischen, um "giftgrün" und orange darzustellen. 
Gerade merke ich nämlich, dass ich noch 1-2 Farbstufen gebrauchen 
könnte, um Werte, Bereichsgrenzen von einander abzugenzen. Für meine 
dB-Anzeigen hätte ich nämlich gern die beiden Farben gelb und betontes 
gelb, sowie orange und betontes orange für die beiden Seiten links und 
rechts.

Ich denke, den sollte man eindesignen.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Peter Dannegger schrieb:
> Den MAX7219 kann 64 LEDs, kostet allerding 3,40€ (Schukat).
Hättest Du einen link? Ich kann den chip (auch sonst nirgends) finden.

Inzwischen habe ich noch etwas in der Bucht gefunden: Einen kompletten 
Krankz zum Multiplexen für angenehme $3,89. Liesse sich für eine 
vereinfachte Version nutzten. Auch nur monochrom und mit nur 16 LEDs, 
aber schon mal erheblich billiger, als die blaue Platine von oben.

von K. L. (Gast)


Lesenswert?

Das Projekt interessiert mich. Wie weit ist es bisher gediehen? Wie wird 
die Schnittstelle realisiert werden, kann ich da mit einer hardware 
dran?

von Spess53 (Gast)


Lesenswert?

Hi

>Das Projekt interessiert mich. Wie weit ist es bisher gediehen?

Der TO scheint sich auf die Rückkehr zum Boden der Realität zu befinden.

MfG Spess

von A. S. (rava)


Angehängte Dateien:

Lesenswert?

ich bastel gerade an etwas Ähnlichem:

- low-cost drehencoder von pollin (0.75€ incl. Taster, dafür hässlich 
wie die nacht finster)
- LED-Kranz mit 31LEDs
- 8Bit Auflösung (aber natürlich nicht in einer Umdrehung)
- inkrementeller Datenoutput über SPI
- absoluter Dateininput über SPI
- ATMEGA88-basiert (20MHz --> 10MHz SPI)
- Konstantstromquellen mit minimalem Spannungsverlust (etwa 1V) für 
weiße LEDs
- beliebig anreihbar über Jumperverbindungen
- edit: ich habe mich für THT-LEDs entschieden, weil der Encoder eine 
recht hohe Bauhöhe hat. So können die eckigen LEDs direkt auf Höhe der 
Frontplatte gebracht werden
- SMD-Bauteile nur einseitig bestückt, weil das sonst im Ofen fummelig 
wird!

Mein Ziel ist 45mm x 48mm - etwas zu groß für meinen Geschmack, aber 
irgendwo müssen die Leitungen ja hin! Kleiner wird es nicht - gerade die 
KSQs brauchen Platz.

geschätzte Materialkosten:
gut 6 EUR + etwa 3 EUR für die Platine (je nach Stückzahl)

aktueller Projektstand:
- Schaltplan ist fertig
- Board braucht noch routing, wird aber sehr eng
- Software: 0%

von Hannes L. (hannes)


Lesenswert?

A. S. schrieb:
> low-cost drehencoder von pollin (0.75€ incl. Taster, dafür hässlich
> wie die nacht finster)

Hmmm, Low-cost-Drehencoder von Alps, die überhaupt nicht hässlich sind, 
bekommt man hier:
http://stores.ebay.de/Logo-s-Elektronik-Kiste/Encoder-inkremental-/_i.html

...

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Guckmal bei itead vorbei, da gibs nen 10er packen 2 layer Platinen für 
bis zu 50x50mm für 9 dollar.

Wozu so viele KSQs? Vorwiderstand hätte doch auch gereicht.

von K. L. (Gast)


Lesenswert?

A. S. schrieb:
> Mein Ziel ist 45mm x 48mm - etwas zu groß für meinen Geschmack
Wieviele willst Du denn verbauen? Bekommt jeder seinen eigenen 
Controller?

Ich finde den Abstand von 45mm nicht unbedingt zu gross. Viel kleiner 
geht es ohnehin nicht, wenn man zwei benachbarte Regler gleichzeitig 
bedienen will. Die Finger brauchen schon 1cm Platz und einen weiteren 
zum Rangieren. 2x2 = 4cm. Ausserdem liessen sich so grosse Knöpfe 
installieren.

von Max D. (max_d)


Lesenswert?

Ein modularer Ansatz wäre vermutlich sinnvoll, man könnte module aus 
einem drehgeber mit LED-kranz bauen. Die würden dann an jeder Kante eine 
normale Buchsenleiste haben, Verbinden zw. Modulen erfolgt per pinheader 
der zwischen die beiden seiten gesteckt wird. Wenn jedes Modul dann noch 
"return" Bahnen vorsieht könnte man dann einfach ein gitter aus modulen 
bauen und die ecken mit "terminierungs-stecker" (einfach die 
Datenleitungen auf die return-leitungen geschalten) abgrenzen. (also 
quasi wie ne daisy-chain beim jtag).
Dann würde jedes Modul mit einem (sehr billigen) AVR aus dem 
Tiny-segment auskommen (einen Ring zu mpxen is locker drinne). man 
könnte dann in eine Ecke eine Art "Interface" (USB, MIDI, DMX, AUDIO, 
wasauchimmer) setzen das die tinys konfiguriert und ausliest.
Das verbessert die nachbaubarkeit (einen Tiny proggen kann quasi jeder) 
und reduziert die initialkosten (man muss nichgleich ein riesiges Borad 
kaufen).
Wenn du das Design richtig machst dann würde sich da vmtl. sogar auf 
Kickstarter was machen lassen.
Die Front kann man ja dann aus einem beliebeigen Material machen (die 
leute können sogar einfach plexi zuschneiden (lassen ?) und löcher 
reinbohren.
Wenn du das ganze Open-Sourced wird sich die Community sicher freuen.

PS: Sowas in der Art hatte ich auch schon einmal vor, bin dann aber an 
den hohen Kosten für PCBs zurückgeschreckt und jetzt wo ich mein 
Ätzlabor hab hab ich was anderes zu tun....

von Max D. (max_d)


Lesenswert?

Nachtrag (seit wann kann man nurnoch 15 mins editieren ?) :
es reicht eigtl. wenn man nur in eine Richtung durch die Module fädelt 
(z.B. mit nem 10 Pin Header) an den Aussenkanten des Ganzen kann man ja 
die Zeilen verbinden.

von Axel S. (a-za-z0-9)


Lesenswert?

A. S. schrieb:
> ich bastel gerade an etwas Ähnlichem:

[schnipp]

Ja, das sieht wesentlich vernünftiger aus als das, was der TE vorhatte.

> - low-cost drehencoder von pollin (0.75€ incl. Taster, dafür hässlich
> wie die nacht finster)

Hauptproblem dieser Encoder ist IMHO der Schaft mit ~11mm Durchmesser. 
Dafür gibts keine Knöpfe (falls einer der Mitlesenden eine Quelle kennt: 
her damit!). Außerdem haben die Teile eine für meinen Geschmack zu harte 
Rastung.

Die Alps-Teile bei ebay gibts mit 4mm Achse (abgeflacht)

> - LED-Kranz mit 31LEDs

Hier ist das weit größere Problem die mechanische Konstruktion. 
Rechteckige LED sehen zwar optisch gut aus, aber die Durchbrüche in der 
Frontplatte sind wohl nur als Spritzgußteil sauber hinzubekommen. Runde 
LED entschärfen dieses Problem, sehen aber nicht so schön aus.

> - Konstantstromquellen

Warum? Der Controller braucht ohnehin eine halbwegs stabile 
Betriebsspannung. Vorwiderstände reichen. Dimmen kann man ja per 
Software noch.

> Mein Ziel ist 45mm x 48mm - etwas zu groß für meinen Geschmack

Ich schließe mich einem Vorredner an: kleiner wird zu fummelig zu 
bedienen. Und größere Knöpfe sind auch bedienfreundlicher.


XL

von A. S. (rava)


Lesenswert?

die Begründung für die KSQs ist mal hier zu finden:
Beitrag "gefährlich kleiner Vorwiderstand vor LEDs"

ich habe mich zwar von der Schutzdiode getrennt und bin auf 15mA 
heruntergegangen (das Ganze ist am Ende eh dimmbar, also dunkler kann 
man schnell werden, heller nicht).

Trotzdem habe ich nur 1.0V... 1.4V Spannung zur Stromregelung übrig - 
meine Bedenken sind, dass das die Toleranzen (hier also fast 20% in U 
und I) so schlimm werden, dass man Unterschiede zwischen den LEDs 
wahrnehmen kann!

Die Herstellung der Frontplatte ist tatsächlich ein Problem - meine Idee 
war, eine dünne, schwarze Plexiglasplatte (1mm) zwischen LEDs und 
Gehäuse zu kleben - da geht dann wieder Helligkeit verloren, was aber 
bei 15mA ok sein dürfte. Runde LEDs müssten <1.5mm Durchmesser haben, da 
der THT-Beinchenabstand auf der Platine 2mm sind. Je größer die Teile, 
desto größer der Ringdurchmesser

Ich lasse mich gerne von anderen Encodern überzeugen - die Änderungen am 
Layout sind vergleichsweise schnell gemacht. Allerdings kann ich mich 
nicht auf eBay-Schnäppchen verlassen. Da habe ich den Anspruch, dass 
etwas mehr Verfügbarkeit vorhanden ist! Wenn der Posten weg ist, gehen 
die Preise wieder hoch.


Ich möchte hier auch nicht Jürgens Thread für meine Zwecke kapern; ich 
wollte nur einen Vorschlag für ihn bringen... Manche Aspekte helfen ihm 
vielleicht (welcher Encoder) - andere eher nicht.
Jürgen's FPGA-Projekt finde ich unheimlich interessant. Da ich mit VHDL 
nicht helfen kann, gilt: bei Interesse an den Encoder-Platinen PN an 
mich :)

von Chris (Gast)


Lesenswert?

Ich habe so ein Layout, 26 Leds + optional 4  je zwei links und rechts 
oberhalb des Ledkreises oder der komplette Kreis.
Zwei Befestigungsbohrungen innerhalb des Ledkreises. uC ist ein Tiny.

von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Hier der Schaltplan

von K. L. (Gast)


Lesenswert?

A. S. schrieb:
> geschätzte Materialkosten:
> gut 6 EUR + etwa 3 EUR für die Platine (je nach Stückzahl)

Was schätzt Du an gesamten Kosten inklusive Controller? Käme das 
billiger?

Deine Schaltung verwendet ja keinen Anzeigentreiber, daher muss das 
alles der Contoller schaffen. Kann der dann auch Helligkeitsregelung der 
LEDs?

Hast Du ebenfalls zweifarbige LEDs vorgesehen? Mit gefällt die Idee, 
damit direkt die Werte auszugeben und die Farben verschieden nutzen zu 
können - hätte da auch einige Ideen. Wenn man das open source macht, 
gibt es sicher viele Interessenten. Ich habe das mit einem Kollegen 
diskutiert - es gäbe sogar ein Einsatzgebiet. Es müsste aber schon die 
Farblösung sein, da es ja fertig Platinen mit solchen Ringen gibt. Auf 
spark-fun sind die zu erwerben.

Mir persönlich würde als Frontplatte so eine Plexi-Scheibe reichen, 
wobei die nicht billig sind und auch nicht so einfach zu bearbeiten. In 
der Hobbythek gab es mal ein Beispiel, da haben sie unter Wasser gebohrt 
um die Scheibe zu kühlen.

von Axel S. (a-za-z0-9)


Lesenswert?

A. S. schrieb:
> die Begründung für die KSQs ist mal hier zu finden:
> Beitrag "gefährlich kleiner Vorwiderstand vor LEDs"

Nicht ernsthaft, oder? Wieso müssen die LED für dieses Projekt weiß 
sein? Und was ist mit "maximaler Helligkeit"? Stinknormale grüne 
low-current (bzw. high efficiency) Typen nehmen und mit 10mA Pulsstrom 
betreiben. Wird für eine Statusanzeige mehr als hell genug werden. Oder 
müssen die Teile auch draußen im prallen Sonnenlicht betrieben werden?

> Die Herstellung der Frontplatte ist tatsächlich ein Problem - meine Idee
> war, eine dünne, schwarze Plexiglasplatte (1mm) zwischen LEDs und
> Gehäuse zu kleben - da geht dann wieder Helligkeit verloren, was aber
> bei 15mA ok sein dürfte.

Ja, so langsam wird mir klar, warum du möglichst helle LED haben willst. 
Weil du die Helligkeit gleich wieder vernichten willst :(

> Runde LEDs müssten <1.5mm Durchmesser haben, da
> der THT-Beinchenabstand auf der Platine 2mm sind. Je größer die Teile,
> desto größer der Ringdurchmesser

Ich hab gerade mal ein bisschen gerechnet. Wenn man runde 2mm LED nimmt 
(z.B. "LED 2MM FT GN" von Reichelt) mit 31 LED auf 270° (= 40 auf 360°) 
und mit 100mil zwischen den Innenpins rechnet, dann kommt man auf 
~32.5mm für den Innenkreis. Die LED-Köpfe liegen dann auf einem Kreis 
von knapp 35mm Durchmesser und einzelnen 2mm Bohrungen hätten 2.7mm 
Abstand. Das wäre noch halbwegs hinzukriegen. Und würde zu einem ca. 
50x50mm² Gesamtmaß führen.

Rechteckige LED 5mm x 2.5mm kannst du auch nicht dichter packen. Und du 
hast das Problem mit rechteckigen Durchbrüchen in der Frontplatte.

Sonst halt weniger LED nehmen.

Man hat mit Einzel-LED sowieso noch das Problem der gegenseitigen 
Einstrahlung: wenn du zwei LED direkt nebeneinander setzt und nur eine 
einschaltest, sieht die andere nicht "aus" aus, weil LED nicht 100% nach 
vorne abstrahlen, sondern immer auch etwas zur Seite. Du müßtest die 
LEDs also optisch entkoppeln. Die Profis nehmen da halt einen 
Lichtschacht (Spritzgußteil) der nicht nur die LED-Chips entkoppelt, 
sondern das Licht auch gleichmäßig nach vorn auf die Diffusorfolie 
leitet.


XL

von A. S. (rava)


Lesenswert?

@Klaus

wie meinst du mit "an gesamten Kosten"?
Die Bauteile kosten etwa 6 EUR, darin sind der ATMEGA88, die weißen
LEDs, die ich herausgesucht habe, der pollin-encoder, die pins und das
halbe Kilo Hühnerfutter, das da verbaut ist. Bestücken wollte ich sie
hier im Pizzaofen. Einen fertigen Controller, der das kann, was ich 
möchte, habe ich nicht gefunden! Es geht ja um SPI-Slave mit Ein- und 
Ausgabe!

Die Platinenkosten (3EUR) sind klar. Ich hatte aber nicht vor, bei einem
Chinesen zu bestellen - da es ein Hobby ist, kann ich mir das aus
Idealismus heraus leisten.
Es kann nicht sein, dass ich mich in einem Thread über miese Qualität
beschwere und die Umweltschutzflagge hisse, und dann hintenrum meine
Platinchen um die halbe Welt fliegen lass. Da zahl ich lieber in
Deutschland für die artgerechte Entsorgung der Chemikalien mit.


Die Idee mit den zweifarbigen LEDs gefällt mir auch unheimlich gut. RGB
wäre natürlich noch lässiger. Das wird aber mit dem ATmega ziemlich
knapp, da ich nur 23 I/O-Leitungen habe (mehr wird auch wieder ein
Platzproblem). Klar kann man Schieberegister benutzen. Aber erstens mal
fehlt der Platz und zweitens mal leidet die Geschwindigkeit - das müsste
ja dann in Software geschrieben werden - die Hardware SPI wird ja von
der Kommunikation nach draußen belegt.
Und beim Thema Geschwindigkeit sind wir beim der Helligkeitsregelung.
Das sollte der Atmega mit 20MHz schon hinbekommen. Im Moment steht da
eine 8x4 Multiplexerleitung und sonst macht er nicht viel: etwas
Tastenentprellung, SPI Slave geht automatisch, da wird doch das
Multiplexen so schnell laufen, dass man noch eine PWM einbaun kann...

Ich habe jetzt übrignes schon einen 2x3 Line-Decoder diskret aufgebaut,
da mir ein Ausgang fehlt. Ziemlich ärgerlich - aber immerhin bin ich
kurz vor einer ätzbaren Lösung. Ab und zu müssen halt Kompromisse her.

Für mich ist die einfarbige Lösung auch nicht weiter tragisch, da das
ein Midicontroller wird - Midi hat eben immer nur einen Wert pro
Controller. Daher kann ich damit leben.

Ich habs mal kurz durchgedacht. Mehrfarbig würde heißen
- SMD-LEDs sitzen etwa 5mm unterhalb der Oberkante vom Encoder. Das
verwischt doch hinterm Plexiglas, oder? Würdet ihr dann von 31 auf 15
LEDs runtergehen?
- RGB: 8x12 Multiplexing --> noch viel mehr Leitungen, auch wenn die
Unterseite dann nicht durchbohrt ist
- KSQs müssen mindestens für die blauen LEDs weiterverwendet werden. R&G
geht wohl mit Vorwiderstand; bei RGBW noch mehr KSQs
- Datenrate: je nach PWM-Auflösung braucht man dann pro Encoder mehrere
Bytes um sie anzusprechen (z.B. 4Bit-PWM, 31 RGB-LEDs = 3*1/2*31 = 48
Bytes). Eine große Encodermatrix (32 Stück) bräuchte dann 1,5kB. Das ist
nicht zwingen ein Problem - hängt aber von der Anwendung ab, was noch
alles in der SPI-Kette ist!

@Axel
Es kann sogar tatsächlich vorkommen, dass die Teile mal im prallen 
Sonnenlicht betrieben werden - ist aber eher die Ausnahme. Mich gegen 
"weiß" zu entscheiden, nur weil es etwas schwieriger ist (aber nicht 
merklich teurer), kommt irgendwie für mich nicht in Frage. Das 
Hühnerfutter für die KSQs kostet gut 60ct.

Auch die Sache mit den runden LEDs gefällt mir deutlich besser. Loch 
bohren und gut!
Aber denkt bitte auch dran, dass man oben die Löcher ins Gehäuse bohren 
muss. Alles was dünner als 1mm ist, zählt für mich nicht als fertigbarer 
Steg. Vielleicht käme man mit 1.5mm Löchern hin...
Oder unterschätze ich da die Herren an der Bohrmaschine?


Woher bekommen denn die Profis ihre "Lichtschächte"? Das würde mein 
Problem mit der Bauhöhe lösen - wir könnten dann einfach SMD-LEDs 
verwenden und alles herausführen. Eine schöne Farbmischung hätten wir 
dann auch gleich!

meine LEDs haben 2x3mm aber leider 100° Abstrahlwinkel. Eventuell kann 
man die rechteckigen LEDs so manipulieren, dass sie nicht gegeneinander 
einstrahlen: Oberseite abkleben und in schwarze Farbe tunken, damit sie 
nicht zur Seite wegstrahlen! Das geht mit runden nicht...
nur so als Idee!
Stellt sich halt immer die Frage, wie industriell der Anspruch ist. Wenn 
man das ein paar hundert mal gemacht hat, ist man bedient

von Peter D. (peda)


Lesenswert?

Chris schrieb:
> Hier der Schaltplan

Der Anschluß des Encoders sieht ja abenteuerlich aus. Hast Du das mal 
getestet?
Und Reset als Ausgang ist auch mutig, Du vertraust also dem ersten 
Schuß.

Ist ein ATtiny2313 denn zu groß?

von Chris (Gast)


Lesenswert?

Ja, habe ich und die Platine läuft auch, habe sie nicht hier, sonst 
hätte
ich ein Bild gemacht.

Der Taster wird nur über ADC gemessen. War ein Kompromiss meinerseits.
Ansonsten funktioniert das mittels der internen Pull-ups.
Dier zwei Solderbridges am Decoder lassen sich 4 I2C Adressen
einstellen, welche zum programmierten I2C Offset addiert werden.
R12 = R6 , R7 = 2x R6   . Getestet wurde es mit R6,R12=2k2 und R7=4k7
und R11 = 1Mohm . Die Werte werden im EEprom gespeichert.
Durch R12 bekommt der uC sein Deltawert für die Addressen raus, den
Wert des Tasters wird einfach abgespeichert/kalibriert, und er könnte 
auch
einen Wert von 100k oder 10k haben, dann könnte man bei der aktuellen
SW aber während des drückens den Encoder nicht drehen.

Ein ATtiny2313 hat keinen ADC. Die Pins IO1/2 sollten neben PWM auch
ein Poti einlesen können.

Man hätte die Schaltung auch anders lösen können, es hing halt damit 
zusammen daß man mehr Funktionalität zu einem späteren Zeitpunkt 
reinbringen
wollte und man dies mit minimalen Zeitaufwand, sprich routing gemacht 
hat.

von Chris (Gast)


Lesenswert?

Reset ist natürlich als IO gefust, hatte ich vergessen reinzuschreiben.

von Peter D. (peda)


Lesenswert?

Chris schrieb:
> Ansonsten funktioniert das mittels der internen Pull-ups.

Neben Exemplarstreuungen sind die auch noch temperatur- und 
spannungsabhängig.
Ein zuverlässige Lösung würde ich das nicht nennen.
Ist für nen definierten Pullup wirklich kein Platz mehr?

Chris schrieb:
> Ein ATtiny2313 hat keinen ADC.

Dann eben ATtiny861

Chris schrieb:
> Reset ist natürlich als IO gefust

Die LEDs daran werden aber deutlich dunkler sein, denn der ist nur ein 
schwacher Ausgang.
Figure 21-27: max 1mA bei 2V internem Abfall.

Update dann per Bootloader?

von Chris (Gast)


Angehängte Dateien:

Lesenswert?

> Update dann per Bootloader?
Ja, HV Programmierung ist eventuell auch möglich.

> Ein zuverlässige Lösung würde ich das nicht nennen.
> Ist für nen definierten Pullup wirklich kein Platz mehr?
Beim Encoder ist im Prinzip wie ein OC Ausgang. Der interne Pull-up 
reicht.
Wenn die HW Addresszuweisung und der Encoderbetrieb bei gedrückter Taste
nicht gefordert wären, dann würde der Encoder an zwei Leitungen sein,
eine davon Reset und A wäre mit D sowie B mit E verbunden.

> Die LEDs daran werden aber deutlich dunkler sein, denn der ist nur ein
> schwacher Ausgang.
Im gepulsten Betreib geht es, trotzdem wird diese 6 Leds 5x mehr 
refresht
als die anderen leds.

Zurück zum Schaltplan, er gliedert sich in 4 Bereiche, einmal die 
gemultiplexten Leds, wo es für 4 Leds zwei Bestückungsmöglichkeiten 
gibt.
Oberhalb der Encoder. Unter dem uC die optionale PWM Filterung und als
letzer und wichtigste, der uC.

Angenommen ATtiny2313 , da würde ich den Taster auf den Reset Pin geben
und die zwei Encoder auf interruptfähige Pins. Keine Widerstände,
Masse geht auf C+D , E auf Reset oder ein freier IO Pin.

Reset, vcc/gnd sowie spi mit 6 pin micromatch Stecker,
Encoder direkt angeschlossen, 3 Pins (davon 2 Int) oder wenn man den 
Encoder nicht braucht, währen man die Taste drückt, dann genügen zwei 
Pins.

Es bleiben 12 übrig. Entweder 9 Pins für Led Mux und 3 für I2C Addresse,
klassisch, oder Adresse muss programmiert werden, und 2x 6 Pin Mux für
die doppelte Helligkeit.

Warscheinlich würde ich eine Alternativbestückung machen, einmal 2 
Leitungen für den Encoder, und Reset auf Pull-up oder 3 Leitungen auf
den uC. Eventuell alternativ anstelle des Reset Pins auch auf einen
I2C Adress Pin wenn man 9 Pins für das Mux benutzt.

Im Anhang ein Beispiel mit 36 bicolor Leds und dem Attiny2313, mal
als konkrete Diskussionsgrundlage. Es sind noch Solderjumper, um den
Taster routen zu können, die Defaulteinstellung ist eingezeichnet, um
das Signal auf PA2 (Reset) zu bekommen.

von Chris (Gast)


Lesenswert?

Im Schaltplan hat sich ein Fehler eingeschlichen,
SJ8 sollte von PD1 auf PRG gehen.

von J. S. (engineer) Benutzerseite


Lesenswert?

Spess53 schrieb:
>>Das Projekt interessiert mich. Wie weit ist es bisher gediehen?
> Der TO scheint sich auf die Rückkehr
Keineswegs, meine offline Zeit hat gänzlich andere Gründe.

Zum Thema:

Schön, dass es noch mehr Interessenten gibt. Wie ich weiter oben bereits 
ausgeführt habe, sehe ich es durchaus als praktisch an, die Anzeigen 
lokal zu verwalten. Der vorgeschlagene Chip von Peter wäre eigentlich 
ideal, da er die LEDs zweifarbig steuern kann (RGB sehe ich nicht als 
nötig, würde auch den Platz gfs sprengen) und zudem auch eine 
microcontrollerfreundliche Schnittstelle hat. Wenn sich das mit einem 
ATMEGA oder alternativem AVR machen liesse - um so besser.

Ich möchte nochmal ausführen, worum es mir bei der Geschichte überhaupt 
geht und worin sich die Idee von den käuflichen Lösungen unterscheidet:

- es gibt preiswerte Lösungen für 16 und 32 Stufen, sogar mit 
Frontplattenfähigkeit, diese sind aber nicht zweifarbig. Die 
Zweifarbigkeit ist aber nötig, um die impliziten Anzeigenskalierungen 
vorzunehmen, Anzeigenüberläufe darzustellen und die Layertechnik zu 
ermöglichen, wie ich es bei dem Stereopanner dargestellt habe, mit der 
mehrere Darstellungen möglich sind. Sowas gibt es derzeit nicht. Ich 
habe bisher überhaupt keine zweifarbige Lösung irgendwo gefunden.

- Ich benötige eine feinere Auflösung, als die käuflichen Lösungen 
ermöglichen. Diese kann man durch Software lösen oder 
hardwareunterstützt. Die favorisierte Lösung wäre eine 
Drucktastenfunktion in den Encodern, mit denen man das umschalten kann. 
Bezüglich der Nachfrage oben: Nein, die 1024 Schritte müssen NICHT in 
einem Dreh erzielt werden, es sollte aber möglich sein. Mit einer 
softwaregesteuerten Umschaltfunktion lässe sich das mehrstufig 
umschalten oder temporär mit gedrückter Taste gröbere Sprünge machen. 
Das ist auch in keiner der erhältlichen Lösungen integriert, obwohl 
einige mit Mikrocontrollern arbeiten. Auch dort kommt dann nur AB 
heraus. Ob man die selber programmieren kann, weiss ich nicht. Eine 
eigene Lösung ist da definitiv besser. Wenn man schon einen Controller 
nimmt, muss dann dort auch die Intelligenz rein.

- zum Thema FPGA: Auch wenn ich es nicht so deutlich dargestellt haben 
sollte, ein FPGA wird man brauchen oder einen Ersatz-Chip, dann die 
Verwaltung mehrerer Module wird kein Klacks. Es geht im Weiteren nämlich 
auch darum, die Daten rüberzuschauffeln und mit MIDI 30kBaud werde ich 
nicht anfangen. Ich verwende ein MIDI Protokoll, dass mit 25MHz 8Bit 
fährt, ich habe also eine 200 MBit Bandbreite. Um das vernüftig zu 
mangagen braucht man wenigstens USB2.0. Das Genau ist derzeit auch der 
favorisierte Standard im MIDI Bereich. Mit einem USB Controller im FPGA 
oder als Chip könnte man das Gerät dann überall dranhängen.

- RGB wäre natürlich superideal, aber vom Platz wohl nicht machbar, 
derzeit prüfe ich, ob es RGB-beleuchtete Drucktaster gibt. Das wäre noch 
eine Option. Die auf spark-fun angebotene Lösung kann zwar RGB, aber ist 
wohl keine Taste. Wenn da jemand was hätte, nur her damit.

- billige Encoder: Der Einwand der Wiederbeschaffbarkeit ist für den 
Punkt opensource ein Thema, wenn man aber einen Standardencoder 
vorsieht, sind die teilweise austauschbar, wenn es derselbe Hersteller 
ist. Von daher wird man im ersten Schuss schauen, dass man genug Teile 
erhält - egal woher - und wenn sie dann auf dem Tisch liegen die Platine 
beauftragen. Es müssten halt genug Bestellungen vorliegen, um vorab die 
Teile zu ordern. Richtig ist aber, dass man sich überlegen muss, welche 
Encoder man nimmt.

- dies betrifft auch die Qualität! Einige der EBAY-Dinger protzen mit 
gigantischen Schaltzeiten von 15000. Bei einem typischen 
MIDI-Controllerbetrieb mit 5-10 mooves per gewünschter Einstellung und 
10-50 Einstellungen pro Session wären die Dinger nach wenigen Wochen 
kaputt! Ich würde daher zu guten Encodern raten, die es in einer teuren 
und einer billigen Ausführung gibt. Gute Encoder kommen mit bis zu 2Mio 
Drehungen, d.h das Gerät würde auch bei extremer täglicher Nutzung fast 
10 Jahre halten - bei vielen Modulen entsprechend weniger. Das sollte 
man schon anvisieren, denn dies ist ebenfalls ein wesentlicher Grund, 
warum ich etwas Besseres haben will, als das, was es im MIDI Markt so 
gibt.

- die Frontplatte ist kein Problem. Selbst dunkle, rauchglasfarbene 
Plexiglasplatten lassen das Licht zu wenigstens 50% durch und dies 
reicht - es geht ja um die Abgrenzung zum Hintergrund. Da sind dann nur 
die Reflexionen von Aussen ein Problem und ja, das Gerät wird durchaus 
"draussen" verwendet, da Musiker auch mal einen Auftritt haben, wie man 
so hört. Bei Nutzung einer anderen Platte ist auch ein Durchbohren nicht 
nötig, wenn man die LEDs dicht anreiht und einen Ausschnitt für das 
Plexi vorsieht. Man bohrt einfach ein kreisrundes Loch in die 
Frontplatte (gfs eine Metallplatte) und öffnet damit ein Sichtfenster 
auf den Encoder und die LEDs. Dann kommt ein Stück Plexi unten drunter, 
dass nicht einmal kreisrund sein muss, sondern nur ein Loch für den 
Encoder hat. Wer dann will, kann den Encoder mitsamt Innenkreis wieder 
mit einer Scheibe abdecken. Es dürfte auch reichen, ein helles 
Plexiplaselement als Ganzes zu nehmen, um es zu unterlegen. Zudem ist es 
leicht möglich, dieses dann mit einer lichtdichten Folie zu bebleben. 
Damit kann man statt der Metallplatte die unerwünschten Teile abdecken 
und hat das Ganze in Leichtbau. Der initiale Gedankenschritt war dabei 
natürlich der in der MIDI-Welt übliche, nämlich den Austausch der 
gedruckten Folien gegen andere, um die Controller zu benennen und dann 
die verschiedenen Softwareprogramme nutzen zu können. Das hatte ich 
jetzt als bekannt vorausgesetzt.

- nochmals zur Intention der Anzeige mit LEDs an sich: Plexi als 
Milchglas ausgeführt lässt die Konturen der LEDs verschwimmen, Damit ist 
es möglich, durch eine Art von dithern mehrere benachbarte LEDs 
anzuschalten und den Kern des Lichtes langsm zu schieben, so wie das bei 
einem geglätteten wandernden Punkt auf einem Monitor passiert, der auch 
nicht notwendigerweise von TFT-Rasterpixel zum nächsten hüpft, sondern 
kriecht. Dazu müssen dann immer 2-3 LEDs gleichzeitig mit der 
angepassten Helligkeit betrieben werden. Aussen, hinter dem Milchglas 
sieht es dann so aus, als ob der Lichtkegel fein und stufenlos kriecht. 
Dies würde man z.B. in der Farbe grün machen, während die roten LEDs 
statisch an sind und die Teilungsstriche der Skalierung anzeigen. Auch 
sowas gibt es bisher nicht, weder als Funktion in einem Gerät noch als 
Option in einem Controller.
Damit wäre es erstmals möglich, mit LEDs Werte stufenlos anzuzeigen, 
wenigstens wäre es um Klassen genauer, als das was man bisher findet. 
Mit den käuflichen Teilen wird sich das nicht machen lassen, weil die 
LEDs nicht dicht sitzen und/oder man nicht an die SW rankommt - bez es 
dann doch alles händisch lösen muss.

- zu den Abständen: Ich habe einen Döpfer MidiController, bei dem man 
praktisch immer zwei Knöpfe gleichzeitig bedient, weil die keinen 
Fingerbreit Abstand haben. Das ist komplett untauglich und davon will 
ich weg. Das Gerät kann ruhig eine gewisse Grösse erlangen. Dann passt 
es wenigstens zu den Geräten, die damit gesteuert werden sollen. 5cm 
Rastermass halte ich für nicht übertrieben. Ein 4x8 System hätte dann 
gerade eine Dimension von 20cm x 40cm. Das ist nicht viel. Die Knöpfe an 
meiner Micro Q und dem Virus sitzen kaum dichter. Es ginge also nur um 
den Platinennutzen, derzeit operiere ich mit einem 2x3 System a 5x5cm, 
was gut auf eine Europakarte passt.

- zur Steuerung: Man könnte sich überlegen, wie man es schafft, die 
Controller einzeln anzusprechen. Entweder verpasst man ihnen eine 
codierbare Adresse oder man nutzt eine auto config Option, sodass sich 
die Controller selber in eine Adressreihe setzen. Dazu braucht jeder 
zwei Eingangs- und zwei Ausgangsleitungen, Nord, Süd, Ost und West. 
Jeder Controller liest auf West einen seriell gesendeten Code und sendet 
diesen um eins erhöht nach Osten ab. Wenn er keinen Code bekommt, nennt 
er sich Nummer 0. Das Ganze dann in Nord-Süd nochmal und man hat nach 
einem Einschwingvorgang eine (m x n) Matrix. Das klingt auf den ersten 
Blick komisch läuft aber in einer Applikation in der Praxis bereits 
bestens!

- Ich habe inzwischen eine lauffähige Animation des Controllers, die 
auch einige Lichtaktivität zeigt. Im Animator ist das allerdings nicht 
ganz einfach hinzubekommen, aufzuzeigen, wie man das Licht über die LEDs 
schieben kann. Mal schauen. Werde es auf YT hochladen.

von Chris (Gast)


Lesenswert?

Achtung, es ist vieles eine Preisfrage.
Bei Bicolor Leds ist es vielleicht günstiger, Leds mit gemeinsamer 
Anode,
z.B. KINGBRIGHT ELECTRONIC L-119EGWT  anstelle von einer bicolor led mit
zwei Anschlüssen. Auf die Schnelle hatte ich keine gefunden, nur eine
Ovale, war aber um einiges teuer als die ca 8€cent teure Kingbright.

Vielleicht widerspricht mir aber jemand. Beim Muxen wird es eine 3 Chip
Lösung, sprich die Leiterplatte wird größer, bei TH Led, bei SMD Led
ist es irrelevant.

von J. S. (engineer) Benutzerseite


Lesenswert?

Eine LED mit gemeinsamem Anschluss wäre mir auch lieber, da man dann 
diesen Anschluss nach innen legen und, wie in einer Skizze angedeutet, 
den Kreis sehr viel enger ziehen kann. Trotz Unterschreitung der 
DRC-Abstände gäbe es keine Kurzschlussgefahr beim Löten. Wenn man es 
fürs "Bastellöten" auslegt, könnte man sogar auf Wärmefallen verzichten 
und nur eine Ringleitung entlang der Pads legen.  Damit wandern die LEDs 
noch weiter rein. Aussen wären auch mehr Platz für die Vorwiderstände. 
In der Animation habe ich die benötigten LED Treiber drin, von denen 
lassen sich die Leitungen relativ kreuzungsarm verlegen. Wie es bei den 
AVRs aussieht, weiss ich nicht.

Eine spontane Idee wäre, dass man auf 2 AVRs zurückgreift, was a) genug 
Rechenpower fürs Multiplexen schafft und b) die Verdrahtung entspannt, 
weil man die doppelte Zahl an IOs hat.

Es gibt dazu noch einen Punkt: Wenn man die LED Anzeige voll nutzen 
will, muss man unterstellen, dass weitgehend alle DOU-LEDs aktiv sind. 
Damit wären wir bei 32 x 2 x 10 mA = 640 mA, wobei die 10mA die 
gemittelte Stromstärke gemäss ED / Multiplexing darstellt. Könnte ein 
Problem werden.

Wenn man es 1:4 Multiplexed käme man mit moderaten Umschaltzeiten aus 
und bräuchte 40mA peak-Strom, was auch billige LEDs die locker können.

von Chris (Gast)


Lesenswert?

Jürgen Schuhmacher schrieb:
> Eine LED mit gemeinsamem Anschluss wäre mir auch lieber, da man dann
> diesen Anschluss nach innen legen und, wie in einer Skizze angedeutet,
> den Kreis sehr viel enger ziehen kann.
Welche Skizze, welchen Kreis, wieso enger ziehen ?
Die Led ist 2mm breit, also sind es 26-30mm Außendurchmesser bei 32 
Leds.
Bei SMD sieht es aber anders aus.
Welche Led-Treiber, welche Led-Vorwiderstänbe und Animation?
Was habe ich da verpasst ?
Widerstände, es sind maximal 9 Stück, die sollte man doch unterbringen 
können. Wärmefallen, für was ?

> Es gibt dazu noch einen Punkt: Wenn man die LED Anzeige voll nutzen
> will, muss man unterstellen, dass weitgehend alle DOU-LEDs aktiv sind.

> Damit wären wir bei 32 x 2 x 10 mA = 640 mA, wobei die 10mA die
> gemittelte Stromstärke gemäss ED / Multiplexing darstellt. Könnte ein
> Problem werden.

>
> Wenn man es 1:4 Multiplexed käme man mit moderaten Umschaltzeiten aus
> und bräuchte 40mA peak-Strom, was auch billige LEDs die locker können.

Ein uC Port schafft 20-30mA. Wenn man 8x 4 Leds multiplext, dann sind es
8x 25mA = 200mA, bzw 240mA. Da die Led jedoch nur Rot/Grün/Orange ist,
halbiert sich der theoretische Strom von 240mA auf 120mA.
Weiters gibt es da die dot correction, also sind weitere 20mA weniger,
also 100mA was bleiben, wenn alle Leds an sind, was ca 3.6mA je Led 
bedeutet. Bei den Werten verzichtet man auf Widerständen.

Nehmen wir mal die Leds, bei der oben gemachten Rechnung sind es dann

Helligkeit der roten Farbe   1.6-4mcd
Helligkeit der grünen Farbe   1-3mcd

Ansonsten muss man mit 120-140mA 800µS pulsen und dann 200µS Pause,
sprich 1.2A peak ca, dann hat man mehr Leuchtkraft.

Wenn du die Leds nebeneinander hättest, sowie genügend Spannung, könnte
man mehrere Module vereinen, und ein Steuerchip verwenden und so kosten
sparen.

Was willst du? SMD, TH, Welche Größe, welche Leuchtkraft usw.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Leuchtkraft: Was geht und der Treiber (LED Treiber oder ATMEGA eben 
packen) - dimmen kann man immer.Sie sollten mindestes so hell sein, wie 
die im Bild mit den blauen LEDs. Das ist die Platine von MATHEWLABS.
http://www.pjrc.com/teensy/projects.html

Kreis: Ich habe in der Anim ganz oben einen Elementarabstand von 50mm 
für die Achsen aufgrund der Platinengrösse. Das bestimmt die Dichte mit 
der man die Module anreihen kann. Wesentlich wachsen sollte es nicht. 
Habe nochmal nachgemessen: Virus hat 34mm bei kleinen Knöpfen, was das 
Limit ist, weil man mit den Fingern die Nachbarknöpfe berührt. Bessern 
wären etwas grössere Knöpfe und etwas mehr Platz, also 40. Der Kreis der 
LEDs sollte deshalb so klein wie möglich sind, dass die Zwischenräume 
zwischen den Kreisen grösser werden, damit die Stege in den Bohrungen 
der Fontplatten / der Löcher in den Folien ausreichend gross sind.



Hier habe ich jetzt etwas gefunden: Die führen Encoder mit 
RGB-beleuchtbaren Knöpfe, die auch Tastfunktion haben.

http://www.cliffuk.co.uk/products/encoders/index.htm

Die von sparkfun meine ich auch gefunden zu haben:
http://www.archithings.com/new-led-illuminated-encoders-from-greatecs/2009/08/23
Leider nur 20000 Schaltungen und damit viel zu wenig. Siehe die 
Betrachtung im Beitrag weiter oben.

Schick sind auch die geöffneten Knöpfe in dem Bild:

von A. S. (rava)


Lesenswert?

ich habe nochmal etwas gesucht. tme hat RGB LEDs in 0603 Bauform. Das 
Gute: Die Spannungen liegen zwischen 2.0V und 2.8V. Damit könnte man die 
KSQs wegwerfen oder versuchen, auf 3.3V zu gehen (**troll**).
Leider werden das 10-12 cent pro Diode. Zweifarbige kosten auch schon 
die Hälfte. Trotzdem tendiere ich in "wenn-dann-richtig"-Mentalität zu 
RGB. Ich muss nochmal nachdenken, ob ich mein gesamtes Design neu machen 
werde. Die Idee ist es aber vermutlich wert. Und ohne KSQs dürfte sich 
der Aufwand zeitlich schnell rechnen - die Löterei von dem Hühnerfutter 
würde nämlich sicher widerlich werden.

Die Sache mit den Lightguides (Lichtleitern) ist platzmäßig und 
kostenmäßig nicht akzeptabel. Die Lösung mit einer einzigen 
Plexiglasplatte scheint mir aber machbar, was ebenfalls für die 
SMD-LED-Lösung spricht.

Ich denke derzeit an eine 4x12 Multiplexerlösung mit 4to16 Decoder. So 
kommt man mit nur 8 Ports des uCs hin (und hat noch Luft für andere 
Spielereien). Flaschenhals wird hier der Strom. Mehr als 6mA pro LED 
sind da nicht drin. Wenn man Platz für zwei 3to8-Decoder findet, lässt 
sich der Wert verdoppeln.


Jürgen, super dass du nach Encodern suchst. Ich stehe aber unheimlich 
auf metallische Kappen - leider gibt's die oft nur mit Indexstrich :(
Es sollte aber kein Problem sein, sowohl Lötstellen für die 
polling-dinger als auch für eine weitere Variante vorzusehen.

von J. S. (engineer) Benutzerseite


Lesenswert?

Wenn wieder Decoder draufkommen, könnte man auch wieder eine Lösung 
benutzen, wo man den UC nicht bestückt und alles an FPGAs hängt. 
Wenigstens für wenige Module müsste das zu machen sein.

Der RGB Knopf muss nicht unbedingt sein, wenn die LEDs an sich schon 
genug Farbe bringen. Wichtig ist die Tastfunktion. Optimal wäre halt ein 
Layout mit flexibel bestückbaren Deocdern. Ich gehe mal davon aus, dass 
man das mit einem Hersteller machen können müsste: LED-oder nicht nicht 
wäre dann eine Frage von Bestückung.

von Chris (Gast)


Lesenswert?

Frage:
Hast du eine Led mit definierter Leuchtkraft (Datenblatt) oder mehrere,
welche du an ein Arduino/Avr/Pic dranhängen kannst, einige Widerstände
sowie eine variable Spannungsquelle, lm317 zur Not.

Damit könntest du herausbekommen, wie hell denn die Led sein muss.
So Hell als Möglich, heisst 30mA Dauerleistung, denn ansonsten sind
nur 24mA möglich z.B. bei ogbenannter TH Led.

32 Leds * 30mA *2 (Farben) * 10 (Encoder) = 19.aA, weit entfernt von den
40mA*10 = 400mA welche du eingeplant hattest.

Ein 8 Channal Led-Driver kostet ca 43€Cent, 16 pin glaube ich.
Bei 32 dual color braucht es 8 Chips, RGB sind es dann schon 16.
Dies für die maximale Helligkeit, dafür braucht es nur vier Widerstände.

Puls driving heisst drei Led Driver und vier high side Mosfets.
Die Mosfets brauchen ca die größe eines halben ic.

Das blöde ist nur, 4x 16pin Chips sind nicht ohne, das geht nur bei
SMD Leds und doppelseitiger Bestückung.

Wenn man Led-driver nimmt, dann braucht man auch kein uC, kann man
gleich and das FPGA oder den uC dranhängen.

von Axel S. (a-za-z0-9)


Lesenswert?

A. S. schrieb:
> ich habe nochmal etwas gesucht. tme hat RGB LEDs in 0603 Bauform.

RGB, also mindestens 4 Pins. Wie willst du das gerouted kriegen? 0603 
ist sicher nett für die Packungsdichte. Aber wenn du nicht gerade 
4-layer mit Mikrovias machen willst, sehe ich keine Chance, das zu 
layouten. Von der Ansteuerung (Platzbedarf, Strombedarf) reden wir 
besser gar nicht erst.

> Das Gute: Die Spannungen liegen zwischen 2.0V und 2.8V.
> Damit könnte man die KSQs wegwerfen oder versuchen, auf 3.3V zu gehen

Wohl kaum. Die Flußspannung einer blauen LED liegt nur bei winzigsten 
Strömen unter 3V. Oder anders gesagt: wenn so eine 0603 SMD-LED mit 2.8V 
für den blauen Chip zurecht kommt, dann beim gleichen Strom auch jede 
andere blaue LED. Der Unterschied ist, daß so ein 0603 Lichtpünktchen 
heller wirkt als eine 3mm LED. Nur ist das in deiner Anwendung Wumpe. Da 
zählt nur noch, wieviel Licht am Ende vorne ankommt.

> Leider werden das 10-12 cent pro Diode. Zweifarbige kosten auch schon
> die Hälfte. Trotzdem tendiere ich in "wenn-dann-richtig"-Mentalität zu
> RGB.

Ich sehe schon, das wird das nächste Projekt, das totgequatscht ist, 
bevor es überhaupt angefangen hat. Weil so lange weitere Sonderlocken 
dazu gepackt werden, bis es unrealisierbar ist.

> Die Sache mit den Lightguides (Lichtleitern) ist platzmäßig und
> kostenmäßig nicht akzeptabel.

Im Gegenteil. Lichtleiter oder Lichtschacht ist das einzige, was zu 
akzeptabler Optik führen wird. Wobei Lichtleiter noch den Charme haben, 
dem Entwickler zusätzliche Freiheitsgrade bei der Plazierung der LED auf 
der Platine zu geben.

Was daran nicht akzeptabel ist, ist die Tatsache daß man sie nach 
eigenen Vorstellungen nur in zig-tausender Stückzahlen bekommen kann 
(bzw. bezahlen will).


XL

von A. S. (rava)


Lesenswert?

okay. Wo kriegen wir eine akzeptable Lösung aus Guides her?
Die Stückzahl wird bei der erstne Bestellung bei 1000 liegen.

Ich habe zwei größere Elektronikversandhäuser durch.
Ich konnte sie nicht ringförmig angeordnet finden, also müsste man das 
aus Einzelteilen zusammensetzen. Ungeachtet des Preises (>20ct pro 
Stück) kann man sie nicht am PCB festmachen, weil diese eine viel zu 
große Grundfläche besitzen.

Höchstens so etwas käme in Frage (sogar >40ct pro Stück):
http://www.tme.eu/de/Document/f970b0cc8f38d62b03619404e9cbc16b/plp2-xxx.pdf
Die werden einfach ins Frontpanel gequetscht, oder?


Axel, meinst du nicht, so wie das Jürgen vorschlägt, mit Plexiglas 
könnten wir hinkommen? Wo siehst du Probleme? Nur beim Verschlucken des 
Lichts? Schon mal ausprobiert?


die 2.8V der 0603RGBs sind bei 5mA gemessen. Sie sind aber (und ist das 
nicht wichtiger?) in der Größenordnung der grünen LED.
http://www.tme.eu/de/Document/314718caa47227d552086b04e7cfc9de/OSTB0603C1C-A.pdf
Eine gescheite Strom-Spannungskennlinie spuckt das Datenblatt leider 
nicht aus! In der Hinsicht war meine erste Wahl (weiß, rechteckig, THT) 
besser :P

von Chris (Gast)


Lesenswert?

Lightpipes finde ich für nicht bezahlbar.

SMD: da kann ich mir auch was zum Tiefziehen bauen, würde dann was 
zweiteiliges als Minimum. Warscheinlich werden dann aber auch zwei 
Platinen,
eine für die Leds und eine für den Encoder, da dieser ja tiefer sitzen 
muss.

TH: Quadratische Leds wie die von mir gefunden, 2x5mm würde ich als 
passend
ansehen. Im Prinzip würden diese auf Klebeband plaziert und dann mit
Silikon/... vergossen.

Ich habe langsam das Gefühl, daß es auf zwei MM5450 in PLCC Bauform
rausläuft, 2.7€ je Stück und Kosten ca 15€ je fertigen Encoder.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Chris schrieb:
> 32 Leds * 30mA *2 (Farben) * 10 (Encoder) = 19.aA, weit entfernt von den
>
> 40mA*10 = 400mA welche du eingeplant hattest.

Ich bezog mich auf einen Controller, denn das ist die Last, die ein 
Microcontroller sieht. Da die LEDs nicht ständig an sind, kalkulierte 
ich mit 25%ED je LED.

Axel Schwenke schrieb:
> Im Gegenteil. Lichtleiter oder Lichtschacht ist das einzige, was zu
> akzeptabler Optik führen wird.

Das ist eine Frage der Betrachtungsweise und dies in doppelter Hinsicht:

Ich halte meinen Vorschlag für durchaus optisch ansprechend, es gibt 
zahllose Designs, die den Blick auf das Innenleben zulassen - zudem habe 
ich aufgezeigt, wie man das mit Folie lösen kann.

Zur Art der "Betrachtung": Entscheidend ist, wie nahe die LEDs an der 
Plexi sitzen. Ich habe dazu Versuche gemacht und gefunden, dass 5mm-10mm 
Abstand ideal sind, um an einer milchigen Plexiplatte den oben 
beschriebenen Schmiereffekt oder nenne wir es Weichzeichnereffekt zu 
erzeugen. Der Abstand ist auch allemal noch tauglich, um bei klarer 
Scheibe die LEDs in schräger Sicht voll erkennen zu können, wenn das 
Gerät maximal 60cm breit is und man von oben reinschaut. Alles real 
durchgecheckt!!

Zur Veranschaulichung:

Dies ist ein Bild mit einer virtuellen Plexiplatte mit 70% 
Durchlässigkeit und 10% Eigenfarbe, beklebt mit relektierender 
Alu-"Folie", wie sie im Frontplattendesign üblich ist und einem blauen 
Abdeckring, wie ich mir das vorstelle, wenn man keine Folie für innen 
nutzt.

Der Encoder wird durch die Platine durchgesteckt, damit sind 
allemöglichen Encoder verschiedenster Typen montierbar und die LEDs 
rücken nahe genug an die Oberfläche. Lichtleiter werden nicht benötigt. 
Die Plexiplatte braucht nicht ausgeschnitten zu werden, sondern nur eine 
simple Bohrung für das encoder-Gewinde, die noch nicht einmal besonders 
sauber sein muss, weil sie abgedeckt wird.

Das sollte von jedem einfach zu reproduzieren sein. Hunderte Bohrungen 
in eine Metallplatte bohren dürfte eher abschrecken. Wer Angst hat, die 
Plexiplatte nimmt zuviel Licht weg, nimmt eben eine helle.

Einzige Anforderung: Das Encoder-Gewinde muss lang genug sein und die 
Platte ausreichend stabil. Ich rechne mit der Platinendicke 2mm + 
U-Scheibe + Mutter + 5mm-Plexiplatte + U-Scheibe + Mutter = 12 mm.


Hier gibt es eine Animation mit Lichteffekten der alten Version, die 
noch eine Zusatzplatine vorsah.
http://www.youtube.com/watch?v=gsrLaNSNW3A

Diese kann entfallen, wenn man den Controller (mitsamt Treibern etc) auf 
die Hauptplatine drauf bekommt. Da wir nach obigem Vorschlag nur die 
Bohrung für das Gewinde benötigen und nicht den Platz für die 
Printmontage, ist auch wieder etwas Platz für Bauteile gewonnen.

Bitte nicht an dem riesigen Bauch des Encoders stören, die Animation 
basiert auf einer alten Anim, die ein Poti darstellte.

von Chris (Gast)


Lesenswert?

Jürgen Schuhmacher schrieb:
> Chris schrieb:
>> 32 Leds * 30mA *2 (Farben) * 10 (Encoder) = 19.aA, weit entfernt von den
>>
>> 40mA*10 = 400mA welche du eingeplant hattest.
>
> Ich bezog mich auf einen Controller, denn das ist die Last, die ein
> Microcontroller sieht. Da die LEDs nicht ständig an sind, kalkulierte
> ich mit 25%ED je LED.
>
Ob du nun 20mA bei 100%ED oder 200mA bei 10%ED rausgibst, die Led hat
immer 20mA Konstant, die Peak änderst sich leicht.

Ok, man kann eine Led in SW limitieren, daß sie nicht mehr als 20mA 
bekommt.
20mA x 32 Leds = ca 650mA worst schon gedimmt. warscheinlich muss man 
aber
mit 30mA rechnen, also ca  1A im Dauerbetrieb.
Klar daß nicht immer alle Leds immer an sind, aber es gibt schon 
Situationen,
wo alle Led eine Farbe haben können.
Bei Pulsbetrieb sieht es so aus, 4x8 Leds, aber die drei Leds (RGB)
werden gleichzeitig gepulst. Das macht dann ca 250mA bei SW-limitierung.
 worst case. 250mA x 8 = 2A peak worst case, zwar nur für 0.4mS.
Wenn es da eine Möglichkeit gibt, die Zeiten zwischen mehreren Encodern
zu syncronisieren, dann würden sich zwei Encoder 2 A teilen, und man
kommt auf dieselbe 1A, ansonsten sind es aber das Doppelte, ohne Sync.

Also, wenn du wirklich 20mA brauchst, und 6mA reichen nicht, dann
können die Leds niemals am uC angeschlossen werden, der uC steuert dann
nur die externe Ansteuerung. Und wenn du 1:4 Multiplext, dann musst
du normalerweise ein 1:10 Multiplexing fahren, also 200mA für 0.1mS 
wovon
du dann einfach nur 4 Slots der 10 möglichen benutzt. Normalerweise
deshalb, weil es auch andere Ansteuerarten gibt, da verliert man dann
aber die Garantie beim Ledhersteller, deshalb macht man so was nur bei
großen Projekten und mit Rücksprache des Herstellers, oder wenn es
günstige Leds sind, welche gar kein Datenblatt haben.

von Chris (Gast)


Lesenswert?

Hier ein normaler Encoder, http://www.mouser.com/ds/2/54/pec11-57757.pdf
kostet ca 1€. Die Dicke ist 6.5mm, kannst du dir nicht vorstellen, daß
man den Encoder und die Leds auf einer einzigen Platine drauflötet ?
Laut deiner Aussage passt der Abstand ja auch, auch wenn ich mir das
bei einem Abstrahlwinkel von angenommenen 110 Grad nicht vorstellen 
kann.

von Chris (Gast)


Lesenswert?

Nochwas, als Sammelbestellung kann man auch ein Edelstahlblech lasern 
lassen.
Dürfte auch viel billiger sein, als ein CNC Auftrag.

von J. S. (engineer) Benutzerseite


Lesenswert?

Chris schrieb:
> Ob du nun 20mA bei 100%ED oder 200mA bei 10%ED rausgibst, die Led hat
> immer 20mA Konstant, die Peak änderst sich leicht.
Sicher, nur darf man die Rechnungen nicht vermischen - es reicht eine 
der beiden Betrachtungen. Nohmal:

ich schrieb:
> Wenn man die LED Anzeige voll nutzen
> will, muss man unterstellen, dass weitgehend alle DOU-LEDs aktiv sind.
> Damit wären wir bei 32 x 2 x 10 mA = 640 mA, wobei die 10mA die
> gemittelte Stromstärke gemäss ED / Multiplexing darstellt.

Die 10mA sind der equivalente Strom - mit ED25% also 40mA, mit ED10% 
100mA.

Der Controller "sieht" also im Mittel alle LEDs zu 10mA oder eben 8x2 zu 
40mA. Es bleibt bei im Mittel 640mA für die Erwärmungsbetrachtung. Hinzu 
kommt natürlich die Spitzenwertbetrachtung und die leifert eben die 16 
Kanäle zu je 40mA. Der Controller muss auch in diesem Fall 640mA Ausgang 
bringen. 40mA je Pin sind kein Problem. Aber an 3,3V sehe ich da an die 
2 Watt. Daher der Vorschlag den Controller zu "teilen". Angenommen, man 
nähme 4 Stück, dann blieben 500mA + Rechenbedarf. Das müsste hinhauen.

Damit bestünde die Option nur 2 Controller zu bestücken und jeweils 
einfarbige LEDs zu nutzen, wer das mag.

Wenn man aber zusätzlich zu den Controllern noch Ausgangstreiber 
braucht, kann ich auf die Controller verzichten und einen Chip nehmen 
und/oder lande doch wieder bei der externen Ansteueerung per FPGA und 
Schieberegister/Latches als Treiber. Die hätten den Vorteil, dass man 
nichts multiplexen muss sondern sie im Schneckentempo beladen könnte.

Also, zu klären wäre:

1) Viele AVRs braucht man parallel, um 32 LEDs mit 3 Farben, bzw 2 
Farben und 1 Farbe OHNE zusättzliche Treiber zu steuern?

2) Rechnet sich das noch, oder ist eine Lösung mit einem AVR und 
Schieberegiter besser? Schafft er bezüglich seiner Rechenleistung gfs 
druch alternierendes Überspringen eines time slots beim Multplexen für 
einzelne LEDs, insgesamt 64 LEDs in PWM so zu fahren, sodass wenigstens 
3 Helligkeitsstufen entstehen?

Ich rechne wie folgt:

ROT GRUN

 0%  0%   aus
 0%  33%  dunkel grün, ca 3,3 mA equivalent
 0%  66%  mittel rot
 0%  99%  hell grün ca  10mA equivalent

25%  0%   dunkel rot
25%  25%  dunkel gelb
25%  50%  mittlere gelb grün
25%  75%  grünes gelb grün

die anderen entsprechend

von J. S. (engineer) Benutzerseite


Lesenswert?

Chris schrieb:
> auch wenn ich mir das
> bei einem Abstrahlwinkel von angenommenen 110 Grad nicht vorstellen
> kann.
Natürlich kann man die auch direkt auflöten, aber der Abstand könnte zu 
gross werden. Das Plexi muss schon direkt auf die LEDs. Wenn man höher 
geht, müsste man doch wieder bedrahtete nehmen, die weit genug 
rausstehen.

Was vielleicht ginge, wäre durchkontaktierte Pads zu nehmen und die 
Anschlüsse hochzubiegen. Die Mouser sehen mir so aus, als ob das ginge.

Die Lichtproblematik haben ja alle Encoderlösungen, die derzeit auf 
Platinen verkauft werden. Mit versenkten Drehencoder kommt man sicher am 
Besten hin. Der Spalt muss eben gross genug sein. Ich persönlich brauche 
gar keinen Spalt sondern nur die Plexi.

Eine Überlegung wäre noch, einen Ring aus Spiegelfolie um die LEDs zu 
ziehen, um das seitliche Licht nach oben zu reflektieren. So könnte man 
das noch nutzen. Die Lichtleiter nutzen ja auch nur das nach oben 
austrende Licht. Vielleicht gibt es da aber was Preiswertes, als 
kompletter Ring.

Die von Dir gelinkten Encoder haben wieder nur 20.000 Zyklen. Stell Dir 
mal vor, wie oft man drehen muss, um einen Wert korrekt einzustellen, 
wie oft man den pro Nutzung ändert und wieviele Tage da rauskommen.

von Chris (Gast)


Lesenswert?

Nochmals:
Diese 20.000 Zyklen sind Umdrehungen, jeder Kontakt hat 1 Mio 
elektrische
Schaltungen. 1 Mio  24  2  = abgerundete 20.000.
Wenn du mehr haben willst, als 1 Mio dann wird Opto oder
Magnetische Encoder gefordert, die kosten dann aber nicht 1€ sonder 4-5€ 
und
diese rasten auch nicht ein, sprich es gibt dann auch kein taktisches
Feedback, bzw muss man dies durch Stahlkugeln erreichen wenn 
erforderlich.
Eine Alternative ist anstelle von 24 steps 16 oder 12 oder 8 oder 6 
Stellungen zu haben, da erhöht sich die Lebensdauer in Umdrehungen, die
Auflösung ist aber beschissen, die 1 Mio bleiben aber.

Mir genügen diese Encoder. Weiters würde ich vorschlagen, solche Leds
zu verwenden, OSRG0603C1C (tme.eu), Abstandshalter einzusetzen (0.5mm)
und eine Metallmaske auf den leds aufzubringen, vor dem Reflow.
Wenn man auf die diffusen Leds dann noch eine diffuse Plexischeibe 
draufsetzen will, soll ja gehen. Diese Leds können dann über 
Charliplexing
angesteuert werden, mir würde es genügen, oder auch über Treiber, Platz
auf der Platine besteht und die Treiber kosten nicht viel, beides geht
aber nicht, man muss sich auf eine Lösung entscheiden.

von J. S. (engineer) Benutzerseite


Lesenswert?

Da bin ich nicht so sicher ob da alle gleich rehnen. Ich habe auch 
Angaben mit wesentlich mehr Umdrehungen gesehen, vom selben Hersteller 
gibt es unterschiedliche Qualitäten. 20000 wären wenig.

Bei einem Einstellvorgang werden durchaus schon einige komplette 
Umdehungen gemacht, bis der Wert stimmt - wenn der Wertebereich gross 
und die Steps klein sind.  Bei 24 Rastpunken = Kleinwinkel sind es zu 
12, um allein von 0 auf 255 zu kommen, wenn man linear zählt. Sagen wir 
im Schnitt 5. Wenn damit permament etwas geregelt werden muss, sind es 
40 Einstellvorgänge je Nutzungstag. Macht 200 Umdrehungen und 100 Tage.

Ok, wenn die Encoder nur eingeschraubt werden, könnte man auch andere 
Typen verbauen, gfs sogar magnetische. In jedem Fall behandle ich das 
jetzt mal als Verschleissteil. Das scheinen auch manche Hersteller zu 
tun, denn unter denen, die ich geordert hatte, gabe es einige, die 
bereits mit Stecker daherkommen und einfach ausgetauscht werden können.


Chris schrieb:
> diese rasten auch nicht ein, sprich es gibt dann auch kein taktisches
> Feedback,
Auf das taktische feedback kann ich gut verzichten, da wir ja ein 
optisches feedback haben, nämlich den Wert oder eben die Wirkungs des 
Wertes. Man kann, um das langsame Vorwärtszählen anzuzeigen, gerne auch 
die LEDs zusätzlich kurz zucken lassen, wenn man das möchte, oder 
bedarfsweise die des Knopfes, wenn man einen leuchtenden nimmt. Das 
Geknackse ist unnötig.

Die Rastungen verhindern ja nur, dass der Regler sich bei 
Erschütterungen verstellen kann und dies auch nur dann, wenn die Rasten 
zwischen den AB-Übergängen liegen, was bei vielen Encodern 
lustigerweise gar nicht der Fall ist. Dort unterstützen die Rastungen 
noch das Prellen.

von A. S. (rava)


Lesenswert?

da der thread am sterben ist, wollte ich mich mal melden, dass ich 
gerade an einem kompletten Redesign sitze. Da ich aber seit März in 
Vollzeit beschäftigt bin, wird es jetzt eher langsam voran gehen.

Für das neue Konzept sehe ich folgendes vor:
- kleiner Mikrocontroller (PIC@64MHz oder ATMEGA@20MHz)
- 31 RGB LEDS
- Line-Decoder als Matrix-Treiber (Transistoren bräuchte man sonst eh 
für den Strom)
- beliebig versenkbarer drehencoder (ALPS EC11 oder PANASONIC); montage 
wie von Jürgen vorgeschlagen möglich aber nicht Pflicht
- 2 Platinen-Layout (für routing + Versenken)
- verschiedene Protokolle, über SPI in einer Init-Phase wählbar
- Signalverarbeitung (Entprellen, Ereignisgenerierung,...)
- manuelles Daisychaining, Anreihbar in 2 Dimensionen
- geschätzte Kosten 15EUR inkl PCBs



vermutlich brauche ich etwa 2-3 Monate für die Teileauswahl, den 
Schaltplan und vor allem das Routing
Dann nochmal 2 Monate für die Software

Wer so lange nicht warten möchte, ist warscheinlich selbst schneller! 
Kein Problem; ich bin niemandem böse :)

von Chris (Gast)


Lesenswert?

Ich mach vorher ein 6x Panel, mit dual color leds, aber pinkompatible
RGB Leds sind als Alternativbestückung auch möglich. Da es für Outdoor 
ist,
verwende ich Led-Treiber, also besonders hell.
Ich brauche 4 Stück, und bestelle 5 Platinen, Preis ca 45€, bei 10 
Platinen
würde für RGB derselbe Preis rauskommen, da Ersparnis von Platinen
und die Preisdifferenz von RGB auf Duoled annähernd gleich ist.

Wenn jemand die eine Platine will, oder es zu 10 Platinen kommen sollte,
einfach hier melden.

von c-hater (Gast)


Lesenswert?

Jürgen Schuhmacher schrieb:

> Die Rastungen verhindern ja nur, dass der Regler sich bei
> Erschütterungen verstellen kann und dies auch nur dann, wenn die Rasten
> zwischen den AB-Übergängen liegen, was bei vielen Encodern
> lustigerweise gar nicht der Fall ist. Dort unterstützen die Rastungen
> noch das Prellen.

Das ist nur dann der Fall, wenn der geneigte Benutzer nicht in der Lage 
ist, einen brauchbaren Quadraturdecoder zu programmieren.

Lustigerweise ist nämlich ein sinnvoll programmierter sozusagen "von 
Natur aus" völlig prellresistent. Es ist deshalb auch überhaupt keine 
"klassische" (also zeitbasierte) Entprellung der Kontakte nötig.

Der Trick dabei ist, daß man bekannte Informationen ausnutzen kann, 
nämlich die Tatsache, daß die zwei Kontakte mechanisch verbunden sind 
und gültige Wackelei dadurch zwingend nach einem bestimmten 
Signalmuster erfolgen muß.

Man merkt sich also pro Kontakt zwei Sachen:

1) hat irgendwann mal gewackelt
2) zuletzt hatte er diesen oder jenen Pegel

Also zwei Bit. Mal zwei Kontakte = 4 Bit.

Dazu kommen dann noch bei jedem Durchlauf des Algorithmus zwei neue 
Bits, nämlich der dann jeweils aktuelle Pegel der beiden Kontakte.

Der Rest des Software-Engineering besteht nun darin, eine Statusmaschine 
mit 2^6Bit=32 Zuständen zu schreiben, die die gemerkten vier Bits für 
den nächsten Lauf des Algorithmus aktualisiert und nebenbei die 
Information abzweigt, daß ein gültiger Schritt stattgefunden hat und in 
welche Richtung der geschah.

Hört sich sich ziemlich gewaltig an, ist aber in sehr wenigen Takten 
Assembler abzuhandeln.

von J. S. (engineer) Benutzerseite


Lesenswert?

So ist es und in einem FPGA ist es noch einfacher :-)
Mit einem FPGA kann man das schön pipelinen, weil man nur pro Kanal 
einen alten Zustand mitschleppen muss und ansonsten nur Inputs hat.

von Siggi (Gast)


Lesenswert?


von Axel S. (a-za-z0-9)


Lesenswert?

Siggi schrieb:
> Sind das nicht die gewünschten farbigen Anzeigen:
> http://www.top-up.com.tw/front/bin/ptdetail.phtml?Part=LED-CCL&Category=336089

Hmm. Erinnert fatal an vorherige Beiträge in diesem Thread: schicke 
bunte Bildchen, aber unter der Oberfläche ... wenig bis nichts.

Prinzipiell sehen diese Displays fantastisch aus. OK, sie sind nicht 
zweifarbig, oder gar RBG. Aber das ist IMHO sowieso nur Spielerei.

Was mir aber richtig übel aufstößt, das sind die Widersprüche in den 
Bildern/Zeichnungen. Z.B. zeigen sie 32 Segmente auf einem 360° Kreis. 
Von der Innenschaltung und der Anzahl Pins können es aber nur 16 LED 
sein. Leuchten da vielleicht immer 2 Segmente gleichzeitig?


XL

von J. S. (engineer) Benutzerseite


Lesenswert?

War mir noch gar nicht ausgefallen! In der Tat blinken bei der 
Video-Demo immer mindestens 2 LED-Nachbarn gleichzeitig. Bei der bunt 
gemischten Gruppe haben sie wohl 4 Farben abwechselnd eingebaut. Das 
sieht mir nach "ich baue mal, was ich habe" aus. Strategie sieht anders 
aus.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier ist nochmal ein Bild mit den geplanten Encodern und Knöpfen, wie 
sie schon in einem alten Projekt zum Einsatz kommen (reines encoding 
ohne LED-Rückmeldung).

Die Encoder haben ein vergleichsweise langes Schraubgewinde, das bei 
montierten Muttern und einer Trägerplatine noch 3mm Luft für die 
Plexiplatte lässt. Sie sind recht schmal und die Anschlüsse gut zu 
verlöten, auch wenn es eng wird. Das Raster der Anschlüsse ist leider 
ein 1,27; passt also nicht auf Bastellochraster. Die Encoder kosteten 
mit Alu-Knöpfen (über Riffelung fest verbunden) weniger, als €1,-.

Die Knöpfe gab es in Silber, Gold und Schwarz. Die Silbernen sind die 
Besten, weil sie keinen aufgedruckten Strich haben, sondern nur eine 
klein Kerbe, die man kaum sieht. (Striche bei Encodern sind ja etwas 
überflüssig).

von A. S. (rava)


Angehängte Dateien:

Lesenswert?

Ich habe mich heute mal etwas hingesetzt und habe gemalt.

Der Plan sieht vor, zwei Platinen übereinanderzusetzen, um genügend 
Platz für das Routing von 31 RGB-LEDs zu haben und den print-Encoder 
versenken zu können.

Ich habe mich nun doch für einen seriellen Treiberbaustein entschieden, 
da mit dem neuen Konzept noch Platz für einen zweiten IC ist.

Das was ich derzeit zeichne wird aber leider nicht mit den Encodern 
funktionieren, die du gepostet hast, Jürgen. Das Problem: Die Encoder 
sind gewinkelt. Da müsste die Platine ja weit ins Gerät hineinstehen. 
Die Encoeder die ich hier habe (Panasonic und mittlerweile auch ALPS) 
sind aber für die Gerade Montage.

Die obere Platine mit den LEDs ist jetzt fertig geroutet (bis auf 
kleinere Pinswaps, die noch nötig werden könnten). In der Mitte ist ein 
Loch, das mit 15mm Durchmesser auch den fest montierte Kappe des 
Panasonic Encoders durch lässt. Wem das zu groß ist, der darf natürlich 
auch den ALPS verwenden und sein Frontpanel nur mit einem kleineren Loch 
versehen (z.B. 6.8mm).

Anschlussbelegung:
Links kommen 5V rein, rechts GND.
Die beiden 2x3 Stiftleisten liefern 8xSpalten-Steuersignal, 3x SPI für 
den Treiber-IC und Enable (kommt dann an den Reset des µC)
Rechts oben sind noch 4 Stiftleisten, um die 32. LED anschließen zu 
können - wir hatten ja mal über beleuchtete Encoder geredet. Wer weiß, 
ob da noch jemand ein brauchbares Gerät findet!

Die Maße bleiben weiterhin bei 50x50 mm
Lasst euch nicht an den gelben Linien stören - das liegt an meiner 
miesen Arbeitsweise. Die Platine ist so fertig.
In den nächsten Wochen geht's an die untere Platine!

von K. L. (Gast)


Lesenswert?

A. S. schrieb:
> Die Idee mit den zweifarbigen LEDs gefällt mir auch unheimlich gut. RGB
> wäre natürlich noch lässiger.
Ganz meine Meinung und wie ich sehe, hast Du Dich nun auch auf die RGB 
festgelegt. Allerdings sehe ich im Schaltplan für die Matrix nur 8xLEDs. 
Sollten das nicht 32 sein? Was spräche dagegen?

Die Positionen der LEDs scheinen auch nicht rund herum angeordnet.

Hast Du auch schon die zweite (erste) Platine angegangen? Ich habe ein 
wenig ein Problem, mir das vorzustellen, wie die Geschichte nun aussehen 
soll.

Ich nehme an, auf der zweiten sitzt der Encoder und der Controller?

von A. S. (rava)


Lesenswert?

hi,

ja, unten (noch nichts geroutet) sind Controller ein schneller 
Resonator, Encoder, Programmierschnittstelle, und Anschlüsse, um mehrere 
von diesen Platinen anzureihen.

auf dem Schaltplan sind 31 RGB-LEDs zu sehen. Vielleicht zu kleiner 
Bildschirm?
Die LEDs sind gleichmäßig auf 255° verteilt. Dieser krumme Winkelbereich 
hat mir einfach am besten gefallen.

von K. L. (Gast)


Lesenswert?

A. S. schrieb:
> Dieser krumme Winkelbereich
> hat mir einfach am besten gefallen.
Wegen der 256? binär?

Wie sieht es aus mit der Helligkeit / PWM? Werden die LEDs 4fach, oder 
8fach gemuxt?

Was können deine LEDs ab?

Siehe dazu hier:
Beitrag "Re: Verschleiß bei LEDs im PWM-Betrieb?"

von A. S. (rava)


Lesenswert?

8 Spalten x 12 Zeilen = 96 Kanäle
32 Chips x 3 Farben = 96 Kanäle

Da sie eine gemeinsmae Anode haben, gibt es keine andere Möglichkeit, 
sie zu verschalten. Außerdem kann der Treiber nur "sinken" und nicht 
"sourcen".
Ich werde 8 Zyklen wählen - außerdem macht der Konstantstrom-LED-Treiber 
nur so Sinn!
Meine Rechnung mit R_EXT = 470Ohm führt zu einem LED-Strom von 40mA. 
Laut Datenblatt verkraften die LEDs 100mA (bei 1:10 Tastverhältnis und 
maximal 100µs Pulsdauer). Der limitierende Faktor ist der Treiber - aber 
40mA werden genügen. Meinste nicht?

von K. L. (Gast)


Lesenswert?

A. S. schrieb:
> 32 Chips x 3 Farben = 96 Kanäle
32 LEDs x 3 Farben nehme ich an, waren gemeint.

>8 Zyklen
die 40mA / 8 wären dann "wie" 5mA?
Wenn die bei 1:10 100mA können, sind da bei 1:8 sicher 80mA drin. Soweit 
mir bekannt ist das Verhältnis der LED-Spannung zum Strom im Pulsbetrieb 
eine Hyperbel. Du könntest also auch 60mA für den Puls nehmen.

von A. S. (rava)


Angehängte Dateien:

Lesenswert?

Hi Leute,

die untere Platine ist heute fertig geworden!

Ich habe mal berücksichtigt, dass eventuell 80mA in die LEDs gehen. Mit 
dem Multipleverhältnis ergibt sich dann im worst-case ein Strom von 1A 
pro Platine.
Um von diesen Dingern viele in einer Zeile anreihen zu können, habe ich 
versucht, die Versorgungsleitungen richtig dick zu bekommen. 12A waren 
mein Ziel. Wie viele gehen, wird sich zeigen.


Ich werde vermutlich in den nächsten Tagen die erste Ladung Teile 
bestellen und dann einen Satz Platinen in Auftrag geben...



hatten wir noch irgendwelche weiteren Footprints für Encoder? 
Irgendetwas, wo z.B. eine LED im Encoder verbaut ist? Die meisten waren 
zu windig, oder?

von J. S. (engineer) Benutzerseite


Lesenswert?

Schaut schon mal gut aus - die Encoder (auch die mit LED) sind sicher 
kein Problem, das kann man zur Not mit Drähten machen.

1A pro Platine kann hinkommen und das ist auch gut so, denn es soll ja 
auch optisch was hermachen.


Falk Brunner schrieb:
>>Wiederholrate für LEDs und Taster = 1/(48+16)
>> oder 1/(112+16) x 50MHz => 300 kHz

> Totaler Overkill.

Overkill bezüglich welcher Applikation?

Wenn man einen schnellen optischen oder magnetischen Drehencoder, wie 
sie auf Wellen sitzen, abtasten will und Beschleunigungen sehen will, 
ist das gerade so ausreichend und auch für den manuellen Betrieb geht es 
nicht wesentlich weiter runter, als nochmal eine gute Dekade: Eine 
Drehbewegung eines Encoders, die man geschnippt ausführt, um schnell zu 
blättern, produziert gemessene Impuls-Frequenzen im kHz-Bereich. Tastet 
man das nicht wenigstens mit Faktor 100 ab, bekommt man keine korrekte 
Kurvenabbildung mehr hin, was ich aber für mindestens zwei APPs 
benötige.

Für eine Beschleunigungsmessung braucht man mal rund 5 Werte, macht >500 
Samples in der ca. 1/10 Sekunde der Drehbewegung und damit 5ksps 
minimale Auflösung. Für eine quasi nicht existente Verzögerung wäre mehr 
noch besser. Die Abtastung produziert ja Jitter. Ich kann jetzt hier 
nicht im Detail ausführen, welche Knopf-, Finger- und Handbewegungen 
damit letztlich noch so alles gesampelt werden sollen, aber es geht 
nicht nur um eine irgendwie geartete Steuerung, die die Information als 
solche überträgt, sondern auch um Messung und exakte Übertragung. Man 
könnte vielleicht noch einen Faktor 10 runter, ok, das war es aber auch. 
Wenn ich mit den kHz-Abtastungen und den Verzögerungen existenter Geräte 
leben könnte, müsste ich nichts bauen.

von A. S. (rava)


Lesenswert?

soo, dann werde ich diesen Dinosaurier wieder aufwärmen:
kurze Info an Alle, die es interessiert: am Wochenende werde ich die 
ersten Platinen in Auftrag geben. Spätestens Ende August sollte also die 
Programmiererei losgehen :)

von J. S. (engineer) Benutzerseite


Lesenswert?

Ok, dann bin ich mal auf das Ergebnis gespannt. Vor allem in Sachen 
Helligkeit. Ich habe für mich inzwischen einige Tests gemacht und 
brauche einiges an Helligkeit- zumindest für eine spezielle Applikation. 
Mein FPGA-Design ist fertig, es hängt jetzt noch an dem Thema Treiber.

von A. S. (rava)


Angehängte Dateien:

Lesenswert?

ui, die Lieferung kma schneller als erwartet. Ich bestell noch eben 
Stencils, dann kann ich in spätestens 14 Tagen mit löten anfangen!

von A. S. (rava)


Angehängte Dateien:

Lesenswert?

es war natürlich ein kleiner Fehler im Design, aber nichts Kritisches.
Eine der Querverbindungen zwischen den Platinen muss durch eine 
Drahtbrücke ersetzt werden.

Die Helligkeit kann ich mit meiner Kamera nicht wirklich zeigen. Im 
rechten Bild wird das Ding von der Schreibtischlampe (50W, Halogen) aus 
ca. 10-15cm Entfernung angeleuchtet (Die Wand soll aber z.B. weiß sein 
;-).

Subjektiv ist die Helligkeit recht gut, vor allem bei Mischfarben. Das 
Rot ist etwas schwach auf der Brust. Wen die Rechenleistung im PIC 
reicht, implementiere ich noch eine Farbkorrektur.

Derzeit werden die LEDs mit 12,6mA betrieben. Rechnerisch sind bis zu 
80mA drin (Multiplexbetrieb), allerdings muss man da mit der Wärme 
aufpassen, da der Treiber-IC pro LED nur 125mW verbraten kann. Rechne 
ich (im Schnitt) mit 2.5V Spannungsabfall, sind das 50mA.

von J. S. (engineer) Benutzerseite


Lesenswert?

Schaut schon mal gut aus. Bei den Schrauben denke ich, könnte man kleine 
nehmen.

von A. S. (rava)


Lesenswert?

naja das sieht jetzt noch etwas klobig aus. Der ursprüngliche Gedanke 
war, dass da vorne das Frontpanel ran kommt und die Schrauben von außen 
dagegen.
Torx Senkkopf kann man natürlich auch verwenden, wäre sicherlich etwas 
eleganter!


Ich muss mir auch überlegen, ob man irgendeine Art Kunststoff-Diffusor 
zwischen Panel und das Modul bekommt. Der darf zwar nicht unnötig 
Helligkeit kosten, aber eine etwas saubere Farbmischung könnte den 
Aufwand wert sein!

von K. L. (Gast)


Lesenswert?

Es gibt für einzelen LEDs lichtleitende Verbinder nach Aussen, ob es das 
auch in bekrümmter Form gibt, ist mir nicht bekannt. Sieht man denn die 
Vereinzelung der Farben so stark?

von J. S. (engineer) Benutzerseite


Lesenswert?

Ich habe mit 3-Farben-LEDs Test dazu gemacht, ja man sieht sie. :-(

von NoName (Gast)


Lesenswert?

für die, die es nicht selber machen wollen:

http://www.exp-tech.de/Shields/LED-Controller/NeoPixel-Ring-24-WS2812-5050-RGB-LED.html

jede einzelne LED ansteuerbar, Alle farben die man will nur drauf achten 
dass Trafo genug Leistung hat und beidseitig einspeisen..

angesteuert kann das ding per arduino und mit Adafruit Neopixel Library

https://github.com/adafruit/Adafruit_NeoPixel

habe ich mir auch gegönnt so ein teil

von Maddin (Gast)


Lesenswert?

Hi,

wurde der BCR2000 von Thomann hier schon genannt?

Aber es ist warscheinlich zu grob in der Auflösung der Stufen und mit 
3mm LEDs bestückt. Dafür hat man ein fertiges Gerät und das Midi 
Protokoll ist noch überschaubar...


Gruß,
M

von Maddin (Gast)


Lesenswert?


von J. S. (engineer) Benutzerseite


Lesenswert?

Der BCR (von Behringer!) ist sehr weit weg von dem, was ich brauche. So 
etwa ein Lichtjahr. Darstellung zu grob, MIDI-Auflösung viel zu grob, 
Regler nicht fein genug, nicht schnell genug und auch viel zu eng 
gesetzt.

von Dennis B. (dcfoto)


Lesenswert?

Gibt's hier eigentlich was Neues?

von J. S. (engineer) Benutzerseite


Lesenswert?

"rava" hatte ja bereits was aufgebaut. Was mich angeht, gibt es einen 
Prototypen. Leider ist die Resonanz nicht sonderlich hoch, bzw es gibt 
keinen gesteigerten Bedarf für meine Bestrebungen einen hochauslösenden 
Controller zu etablieren, wenigstens nicht beim Consumer Audio. Man 
möchte mit 8-Bit weiterwuseln. Von daher lohnt es nicht, das Projekt 
weiterzuziehen und über meinen Prototypen hinaus zu erweitern. Das 
heisst aber nicht, dass ich nicht für mich weiter daran arbeite :-)

von Dennis B. (dcfoto)


Lesenswert?

Also mich interessiert's. Vielleicht berichte ich mal von meinem eigenen 
Projekt, um nicht nur Fragen zu stellen :)

Ich bastele an einem digitalen Synthesizer, der auf einem in VHDL selbst 
entwickelten Signalprozessor basiert. Der Prozessor rechnet mit 18bit 
Fixkomma-Arithmetik massiv parallel (24 parallele synchrone 
Ausführungseinheiten jeweils mit eigenem Daten-RAM und eigener ALU). An 
einem eigenen Compiler dafür (für eine einfache Hochsprache) arbeite ich 
auch. Plattform für den Prozessor ist ein Spartan-6 FPGA.

I/O-Pins sind bei diesen Chips ja keine Mangelware; warum also nicht 
auch gleich Drehknöpfe integrieren. Bisher habe ich eine einfache 
Hardware entwickelt, die bis zu 32 Encoder entprellt und ausliest. Das 
passt prima noch mit in den FPGA, d.h. es ist außerhalb des Chips keine 
Elektronik nötig außer den Encodern selbst. MIDI-Anbindung fehlt noch 
bei meiner Lösung, aber das ist auch nicht so aufwändig.

Was die Auflösung der Encoder angeht, so gibt es zu günstigen Preisen 
scheinbar nur welche mit geringer Auflösung von bis zu 24 Schritten pro 
Umdrehung. Höher auflösende Encoder (schön wäre ja eine dreistellige 
Anzahl von Schritten pro Umdrehung) kosten rund das 20fache. Als kleines 
Experiment habe ich mir ein Getriebe gebastelt, um die Auflösung der 
günstigen Encoder mechanisch zu erhöhen. Mit einem Laser-Cutter habe ich 
aus Acryl zwei Zahnräder plus Grundplatte geschnitten. 
Übersetzungsverhältnis ist 1:3 (60 zu 20 Zähne). Meine Sorgen, das 
Getriebe könnte zu viel Spiel haben oder klemmen, haben sich als 
unbegründet erwiesen. Allerdings sollte man einen größeren Knopf 
verwenden, da man doch etwas mehr Kraft braucht als bei typischen Potis 
oder "rohen" Encodern. Ich habe somit nun 72 Schritte pro Umdrehung. 
Eigentlich hätte ich lieber eine noch höhere Auflösung. Würde ich 
allerdings das Übersetzungsverhältnis der 2-Achsen-Variante weiter 
erhöhen, dann würde das Zahnrad am Knopf natürlich auch größer und damit 
der Mindestabstand der Knöpfe auf der Frontplatte größer als 
praktikabel. Daher müsste eine dritte Achse her, wobei auf der mittleren 
Achse dann zwei Zahnräder säßen. Das probiere ich später mal.

Eine Anzeige der Werte wäre natürlich schön. Bisher habe ich vor, das 
über ein zentrales LCD zu machen (was aber natürlich heißt, dass man 
immer nur den Wert eines Knopfes anzeigen kann und dies auch nicht am 
Knopf selbst). Ein LED-Kranz wäre definitiv ziemlich cool. Es wäre auch 
überhaupt kein Problem, in VHDL eine Logik zu bauen, die viele einzelne 
LEDs um einen Knopf herum ansteuert. Dafür bräuchte man aber eine Menge 
I/O-Pins, und bei der Anzahl der Knöpfe die ich gern hätte, würden die 
nicht ausreichen. Demnach müsste eben zwingend ein Teil der Logik aus 
dem Chip raus zum Knopf hin wandern (im einfachsten Fall wohl ein 
Schieberegister). Denkt man diese Idee konsequent weiter, dann kommt man 
zu Jürgens Konzept mit den Modulen.

Daher habe ich gefragt. Synergien gäbe es ja...

von Tobias S. (picollo)


Lesenswert?

How about diesem hier:

http://www.conrad.de/ce/de/product/179998/2-Kanal-Miniatur-Gabellichtschranke-EE-SX1131-SMD-Omron-EE-SX1131-2-Kanal-Gabellichtschranke-Reichweite-2-mm

Damit kannst du die Zähne eines M1 Zahnrads einwandfrei abzählen, wohl 
sogar unter Verwendung aller vier Quadratur-Phasen, und hast dadurch 
gleich mal eine sehr viel höhere Auflösung.
Und das ohne die angegebene Lebenszeit so eines Encoders in kürzester 
Zeit zu überschreiten ;)

Meine Wenigkeit verwendete übrigens zwei Getriebe hintereinander
2x 12:30  entspricht  1:6,25
http://www.conrad.de/ce/de/product/297402/Zahnradsortiment-Modul-05?ref=list

Diese drehen ein weiteres Zahnrad, das mit dem OMRON ausgezählt wird
Ausgewertet werden dann sowohl Luft, als auch Zahn, bzw der jeweilige 
Übergang (M0.5 ich doch etwas klein), was einer Auflösung von 375 
Schritten ergibt, nur eben ohne Rastung.

Geht aber super

Durch drei geteilt währen das dann 125 Schritte, entweder um 7 Bit nahe 
zu kommen, oder um etwas weniger als eine Umdrehung für die Werte 0-100 
zu brauchen, für ein besseres Bediengefühl.

Mit einem 40er Rad hättest du pro Umdrehung 250 oder zweiphasig gezählt 
500 Schritte, aber diese feinen Schritte lassen sich wohl kaum noch 
zuverlässig halten ;)

Ich würde dir echt gerne den Prototypen zeigen, gefräst aus drei kleinen 
Blöcken Hartkunststoff, aber dieser liegt jetzt, und wer weiß wie lange, 
in irgendeinem von vielen Kartons in der Garage oder im Speicher.

: Bearbeitet durch User
von Dennis B. (dcfoto)


Lesenswert?

Ui, interessant! Das würde ich ja gern mal sehen. Mechanisch bist Du 
also da schon deutlich weiter als ich. Ehrlich gesagt kannte ich diese 
Bauelemente gar nicht :)

Wie ist das hier zu verstehen: "Schlitz-Breite: (Mess-Spalt 0.3 mm) 2 
mm"? Heißt das der Zwischenraum ist 2mm breit und die beiden 
Lichtschranken sind 0,3mm versetzt? Das hieße dann ja, ein Zahn müsste 
nur breiter als 0,3mm sein (sonst kann man nicht unterscheiden, in 
welche Richtung gedreht wurde). Wenn ich das richtig interpretiert habe, 
dann bekommt man da ziemlich viel Auflösung auf wenig Platz unter.

Angenommen, der Abstand zwischen den Knöpfen soll max. 50mm sein und man 
möchte alle Zahnräder in einer Ebene haben (nicht vertikal versetzt, was 
mit mehr Aufwand ja auch ginge). Dann dürfte ein Zahnrad max. 25mm 
Durchmesser haben, was einem Umfang von 78mm entspricht. Bei einer 
Zahnbreite = Schlitzbreite von 0,5mm bekäme man 78 Zähne und Schlitze 
auf so ein Rad. Entspricht 156 Schritten pro Umdrehung, bzw. 7bit 
innerhalb des üblichen Drehbereichs. Da braucht man gar kein Getriebe 
mehr :) Acryl kann man mit einer Genauigkeit von ca. 0,1mm 
laserschneiden, das sollte also gehen (und lässt sich auf die Anwendung 
besser maßschneidern als fertige Zahnräder).

> aber diese feinen Schritte lassen sich wohl kaum noch
> zuverlässig halten ;)

Du meinst, man wird mit der Hand nicht genau einen gewünschten Wert 
einstellen können? Na gut, das ist der Preis der hohen Auflösung.

Nervig könnte sein, wenn so ein Knopf ständig zwischen zwei Werten hin- 
und her pendelt. Das müsste man evtl. algorithmisch herausfiltern.

An der Abtastfrequenz wird es jedenfalls nicht scheitern, denn die kann 
bei einem FPGA im dreistelligen MHz-Bereich liegen. So schnell kann 
niemand drehen.

Wie schließt man solche Doppel-Lichtschranken elektrisch an? Von 
Analogtechnik habe ich ja keine Ahnung, ich kann nur mit high und low 
etwas anfangen :)

von Tobias S. (picollo)


Lesenswert?

die Sensoren haben einen Blendenschlitz von 0,3mm und diese sind Mitte 
zu Mitte 2mm auseinander

Zahn und Luft sollte die "beiden" Schlitze optimalerweise durchlassen 
oder sperren
da es eine einzelne Leuchtquelle in der Mitte ist, hat ein schwarz 
lackieren des M0.5er Zahnrades gereicht und die beiden Übergänge sind 
klar erkennbar

Ich denke da an einen Zähler, der jede der vier Phasen zählt, und wenn 
eine einzelne Bewegung um eine oder zwei Phasen sich nach einer halben 
oder ganzen Sekunde nicht ändert, diesen Zähler wieder zurücksetzen. so 
fallen die kleinsten Bewegungen schonmal weg

Oder lass sogar zwei oder drei echt gezählte Schritte überwachen, die 
bewegst du ja schon, wenn du den Knopf nur anrührst ;)

es sind NPN OpenKollektor Ausgänge
mit einem 10k an Plus, dann hast zwei Werte
oder anders rum g

solltest aber einen Schmitt-Trigger davor hängen, dein FPGA könnte mit 
langsamen Schaltflanken durchaus Probleme haben

Schaltplan siehe Seite zwei unten
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/179998-da-01-en-2KANAL_GABELLICHTSCHR_SMD_EE_1131_2MM.pdf

wenn ich es dann echt mal praktisch umsetze, dann in einem Alu Gehäuse 
mit echtem Potikopf und einem 40er Rädchen maschinell bearbeitet für 
richtige Schlitze

: Bearbeitet durch User
von Dennis B. (dcfoto)


Lesenswert?

2mm Abstand... schade, dann muss ein Zahn größer als 2,3mm sein, was die 
Auflösung doch wieder deutlich reduziert.

Wenn ich nochmal scharf nachdenke, dann gibt es kein Problem mit Pendeln 
(den Absatz aus meinem vorigen Post also bitte vergessen). Denn 
mechanisch bewegt sich ja nichts mehr wenn niemand dreht. Nur elektisch 
kann ein Signal pendeln. Aber eben nur eins, denn durch die gewählte 
Zahnbreite steht das jeweils andere Signal immer stabil auf high bzw. 
low wenn eines der Signale auf der Kippe steht. Daher reicht zum 
Auswerten eine kleine State-Machine. Einen Zähler braucht man somit auch 
nicht. Einfach gesagt zählt man nur die erste Veränderung im Signal 
eines der beiden Pins solange sich das Signal am anderen Pin nicht 
verändert hat.

Hier ist das veranschaulicht:
http://www.xilinx.com/products/boards/s3estarter/files/s3esk_rotary_encoder_interface.pdf

von Tobias S. (picollo)


Lesenswert?

auf die Art erfaßt du die Übergänge sehr gut, jo gg

nur mit einer vier Phasen Erkennung kannst du eben kleinste Bewegungen 
bzw Vibrationen herausfiltern

ich werde das mit einem Microchip DSPic lösen

vier Drehencoder per Software und die beiden Motorfader mit 
Encoderscheibe mittels den beiden im Chip integrierten Hardwareencodern
... aber das wird eine anderes Thema ;)

: Bearbeitet durch User
von Dennis B. (dcfoto)


Lesenswert?

Nochmal weiter gedacht: es muss ja nicht der gleiche Zahn sein, den 
die beiden Lichtschranken messen. Die Zahn- und Schlitzbreite muss 
lediglich so auf den Abstand zwischen den Lichtschranken abgestimmt 
sein, dass etwa (n+0,5) Zahnbreiten dem Sensorabstand entsprechen (mit 
n=ganze Zahl). Dadurch ist sichergestellt, dass die Sensoren ein 
Quadratursignal liefern, und mehr wollen wir ja gar nicht.
1
Beispiel: Sensorabstand = 2,5 Zahnbreiten
2
3
4
Schlitze:             | |                 | |
5
6
            _______         _______         _______         __
7
Zähne: ____|       |_______|       |_______|       |_______|
8
9
10
Beispiel: Sensorabstand = 3,5 Zahnbreiten
11
12
13
Schlitze:             | |                  | |
14
15
               _____       _____       _____       _____
16
Zähne:  ______|     |_____|     |_____|     |_____|     |_____|

von Tobias S. (picollo)


Lesenswert?

interessanter Ansatz

von Tobias S. (picollo)


Lesenswert?

ach nein, hab mich oben sowas von vertan !!!

also richtig ist, daß die Sensorschlitze selbst 0,3mm breit sind

haben aber einen Mitte zu Mitte Abstand von nur 0,8mm !!!!
deshalb klappte es auch mit meinen M0.5 Zahnrädern gg

die 2mm sind der Platz, den du durch die Gabellichtschranke hindurch 
hast, dementsprechend dünn muß das Rädchen sein

siehe Seite vier unten
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/179998-da-01-en-2KANAL_GABELLICHTSCHR_SMD_EE_1131_2MM.pdf

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Tobias S. schrieb:
> How about diesem hier:
>
> 
http://www.conrad.de/ce/de/product/179998/2-Kanal-Miniatur-Gabellichtschranke-EE-SX1131-SMD-Omron-EE-SX1131-2-Kanal-Gabellichtschranke-Reichweite-2-mm

Viel zu teuer.

> Damit kannst du die Zähne eines M1 Zahnrads einwandfrei abzählen, wohl
> sogar unter Verwendung aller vier Quadratur-Phasen, und hast dadurch
> gleich mal eine sehr viel höhere Auflösung.

Klar. Optische Encoder kann man mit viel höherer Auflösung bauen. Eine 
triviale Erkenntnis aus der Vergangenheit.

Das Problem mit der geringen Auflösung haben nur die Encoder mit 
mechanischen Kontakten. Weil man die nicht beliebig klein bauen kann. 
Zumindest nicht wenn man eine sinnvolle Lebensdauer will.

Optische Encoder gehen deutlich besser für hohe Auflösung. Und auch in 
billig - schau halt mal in eine alte Rollkugelmaus. Es gibt sie 
allerdings nicht als fertige Bauelemente zu kaufen. Bzw. nur für 
professionelle Anwendungen mit z.B. Kugellagern, definiertem Rundlauf 
für hohe Geschwindigkeit.

Was man bräuchte, wäre eine Poti-Mechanik (Gehäuse, Achse, Lager) und 
angeflanscht so ein Spritzgußteil wie aus einer Maus. Dazu zwei 
billigste IR-LED und Fototransistoren auf der Platine. Kann man sich 
bestimmt bauen lassen, wenn man ein paar 10.000 Stück abnimmt.

Andererseits verstehe ich den Sinn der ganzen Sache nicht. Für manuelle 
Betätigung reichen Drehencoder mit 24 oder 30 Impulsen pro Umdrehung 
vollkommen aus. Alles was höher auflöst, kann man mit der Hand sowieso 
nicht mehr genau einstellen. Wenn es nur darum geht, die Einstellung 
anhand der Position des Drehknopfes direkt ablesen zu können: nimm ein 
Poti. Das wertet sich sogar noch leichter aus.

von Tobias S. (picollo)


Lesenswert?

1. 1€62 zu teuer ???

2. Weil man mit dieser hohen Auflösung in einem Handumdrehen den ganzen 
Wertebereich eines Synthesizer- oder Mischpult-Parameters abgedecken 
kann, mit kaum bis garnicht wahrnehmbarer Abstufung.
Wir reden hier von Audio Anwendungen und nicht von Maschinensteuerung

Ja, oder man kauft sich natürlich einfach einen vollwertigen Synthesizer 
Axel, welcher eben auch nicht besagtes hat.
Aber deswegen sind wir nicht hier

... Potistellungen abspeichern, und wieder zurückrufen ??? ...
Das finde ich bei diesen Geräten auch immer so lustig

Von Alps gibts einen optischen mit 120 Schritten Auflösung, aber kuck 
mal an, wie teuer dieser ist ...
Naja, immerhin 10 Stück: gg
http://de.aliexpress.com/store/product/SA-ALPS-encoder-12-the-number-of-120-positioning-10pcs-lot/346901_1807050956.html
Die sind aber normalerweise, bzw. 'neu' sehr viel teurer

Es gab auch mal Avago Motorencoder mit Potiaufsatz, 500 Schritte und 
fühlen sich super an, kosteten aber 80€ das Teil
(oder 5€, wenn du mal wieder eines bei "eBay" findest ;-)

: Bearbeitet durch User
von K. L. (Gast)


Lesenswert?

Seid ihr sicher, dass ihr bei Audioanwendungen so hohe Auflösungen und 
Winkelbereiche benötigt? Ein Poti am Analogsynthesizer geht ja auch nur 
bis 270 Grad.

Bei einem einfachen Encoder kann man noch einfach viele Umdrehungen 
benützen und weiter liesse sich auch noch eine Beschleunigung 
einprogrammieren, um die Geschwindigkeit zu steigern, wie bei der 
Computermaus.

von J. S. (engineer) Benutzerseite


Lesenswert?

Ui, hier tut sich ja was. Zu dem Vorschlag des optischen Enceoders: Ja, 
das wäre optimal, aber auch ich habe bisher nur individuelle Aufbauten 
für die Industrie vorgefunden, die eben Eigenentwicklungen waren oder 
entsprechend gekapselte Hochleistungsprodukte. Für dazwischen gibt es 
offenbar keinen Markt. Die angeschriebenen Hersteller äusserten sich 
entsprechend.

Zu dem Thema Audio: Ja, die analogen Eingaben gehen nur bis 270 Grad mit 
einem Poti aber das hat eben unendlich viele Zwischenstufen. Ich habe 
mir schon überlegt, ein Poti zu sampeln, aber das ist mir ehrlich gesagt 
scon zu fein. Mechanisch sinnvoll sind etwa 6 Grad an Auflösung je 
Schritt, also wären 60 Schritte das Maximum. Man würde dann nur 30 
zulassen und den Rest mitsamt der Beschleunigungsinformation auswerten.

Als Encoder reichen mir daher eigentlich die 24 Schritt, ich hätte nur 
gerne etwas stabilieres und langlebigeres, als die typischen 1,95 
Encoder.

Die grobe Einstellung mache ich inzwischen wie oben schon beschrieben 
mit einer Zoomfunktion: Man drückt den Drehknop und betätigt damit die 
Taste, die ein 4 fach schnelleres Verstellen ermöglicht, oder zwischen 
den Betriebsarten umschaltet. Das ist nötig, wenn man wirklich feine 
Stufen braucht, um bestimmte Werte einzusellten oder im anderen Fall 
schnell und in Echtzeit einen Cut-Off-Filter betätigten will.

Ich möchte aber nochmals herausstellen, dass mein ursprünglicher Ansatz 
der war, durchaus ein universelles Gerät zu bauen, dass auch 
industrietauglich ist und eine entsprechene Auflösung ermöglicht. Und: 
Es ging mir um die optische Rückmeldung, weil gerade mit einem 
Drehencoder (optisch) die Schritte nicht sicher mitgezählt werden können 
und es auch keinen echten Anschlag gibt, dafür der Drehknopf aber 
mehrfach um die eigene Achse kann.

von Michael W. (Gast)


Angehängte Dateien:

Lesenswert?

Vielleicht wäre so etwas auch hilfreich?

Gefunden eben auf Ali.
Kostet unter $7.50 per Stück!
Kann Temperatur, Zeit etc...

Fragt sich nur, ob man es reprogrammieren kann.

von Bimmerboy (Gast)


Lesenswert?

@A.S. (Rava)

< Please excuse my German, it's not my native language >

Hi Rava,

Ich bin auf der Suche nach fast genau so was für mein Hobbyprojekt 
(MIDI controller) - nur mit etwas schmalerem Durchmesser (LED circle), 
weil ich möchte bei ung. 25-30mm bleiben statt dein ~40 mm.

Wenn du möchtest, könntest du bitte ein Paar Fragen klären die ich habe?
1) Hast du dieses Projekt jetzt noch aktiv weitergemacht, oder ist es 
hierbei geblieben?
2) Wieviel würdest du schätzen dass ein Unit kostet/für dich gekostet 
hat (wenn selber gelötet usw.), bei einem Stückzahl von 50?
3) Gibt es deine Designs irgendwo herunter zu laden, oder ist das genau 
dein "Intellectual Property" ;)

Jetzt die "n00b" Fragen (leider bin ich kein Techniker, eher 
Programmierer, und versuche irgendwie deine Schematics zu verstehen)

4) Das LED-Treiber IC kann nur 16 LEDs treiben habe ich gelesen, aber du 
hast mehrere pro Kanal geschaltet (3-4). Verstehe ich richtig dass du 
diese LEDs pro Kanal in der Zeit versetzt steuerst? Und dass damit die 
max. Output ung. 25% ist (PWM kodiert quasi)? Oder habe ich das ganz 
falsch verstanden?

5) Weil ich nicht mit Rotary Encoders, aber eher mit "normalen" Pots 
arbeiten möchte; habe ich richtig verstanden das die obere Platine nur 
die LED-Steuerung macht, und die untere Platine alles was mit dem Rotary 
Encoder zu tun hat? (Dann würde das bedeuten dass ich erst mal nur 
Interesse hätte an der oberen Platine)

Danke erst mal an allen für die Ausführliche Posts die hier schon mal 
geschrieben sind!

von J. S. (engineer) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Vielleicht wäre so etwas auch hilfreich?

Ich glaube ehrlich gesagt nicht, dass man das reprogrammiert bekommt. 
Eher schon könnte man sich beim Chinesen sowas wie oben angedacht bauen 
und bestücken lassen.

von Pier S. (bigpier)


Lesenswert?

Peter D. schrieb:
> Man könnte noch nen Bootloader vorsehen, damit man ein Update per I2C
> machen kann, falls die Funktion mal erweitert, geändert werden soll.
>
> Peter

Peter sag blos du hat auch einen I2c Bootloader?

von Markus G. (ghost91)



Lesenswert?

Gibt es irgendwelche neuen Produkte in dieser Richtung?

Ich bin zufälligerweise auf das alte Elektor Board gestoßen, was leider 
nicht mehr als Bausatz verfügbar ist.

von Organist (Gast)


Lesenswert?


von J. S. (engineer) Benutzerseite


Lesenswert?

Markus G. schrieb:
> Gibt es irgendwelche neuen Produkte in dieser Richtung?
Abweichend von der Lösung damals mache ich das jetzt anders: Es gibt 
programmierbare LED-Ringe mit bis zu 24/32 LEDs, welche einen Controller 
drin haben. Der wird wie SPI seriell angeschubst. Das ist vom FPGA aus 
einfacher. Mur das Lesen der Encoder erfolgt noch wie oben beschrieben 
mit SRs.

von Teo D. (teoderix)


Lesenswert?

Jürgen S. schrieb:
> LED-Ringe mit bis zu 24/32 LEDs,
 ...
> Der wird wie SPI seriell angeschubst.

WS2812(b) :)

https://de.gearbest.com/lcd-led-display-module/pp_530256.html?wid=1433363&currency=EUR&vip=4275440&gclid=EAIaIQobChMIloHD-cOk3AIVRtiyCh3Iiw2JEAQYAyABEgKjGvD_BwE

66mm kommt mir etwas groß vor. Täuscht mich das?
Oder meinst du andre?


PS: Schon besser.
https://www.led-genial.de/DIGI-DOT-Ring-mit-24-x-WS2812B-LEDs

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

Ja genau die, es gibt die aber von unterschiedlichen Anbietern in 
unterschiedlichen Durchmessern. 24 LEDs gibt es auch mit 55mm. Ich habe 
schon welche mit 72 LEDs gesehen.

von Teo D. (teoderix)


Lesenswert?

Jürgen S. schrieb:
> schon welche mit 72 LEDs gesehen.

Da geht noch mehr. :)
Wird auch als Leuchtmittel angeboten.

Hab mir mal zum spielen, den kleinen da mal geordert. 16LEDs, 32/45mm. 
Wenn's taugt, passt das noch als Gimmick, in meinen Tussibelichetr. :)
https://www.banggood.com/de/Ring-5V-16x-5050-RGB-LED-with-Integrated-Drivers-Module-For-Arduino-p-1199159.html?cur_warehouse=CN

Jürgen S. schrieb:
> 24 LEDs gibt es auch mit 55mm.

Auch schon etwas kleiner gesehen (innen/außen?) aber ~17€ und keine 
echte Anwendung... :)

von georg (Gast)


Lesenswert?

Teo D. schrieb:
> Jürgen S. schrieb:
>> schon welche mit 72 LEDs gesehen.
>
> Da geht noch mehr. :)

Wenn man nicht die relativ grossen WS2812B-LEDs nimmt, sondern normale 
SMD-LEDs und die direkt ansteuert, z.B. als LED-Matrix, kann man viel 
mehr unterbringen. Nur ist halt der Aufwand auch viel höher, man muss 
wohl ein eigenes Bord mit einem kleinen Controller drauf designen.

Georg

von Teo D. (teoderix)


Lesenswert?

georg schrieb:
> man muss
> wohl ein eigenes Bord mit einem kleinen Controller drauf designen.

he hhee, pssstt! gug ganz oben ... e i n g a n s p o s t!


georg schrieb:
> kann man viel
> mehr unterbringen. Nur ist halt der Aufwand auch viel höher,

Genau, hät ich zB. ne Soundanlage aus NGZ2981, würd ich das auch so 
machen. ;)
Ne ich brauch grad ein paar WS2812b am Stück, zwecks SWE. Hier wirds 
halt eventuell noch ein Gimmick für den TussiBelichter draus. Is nich 
viel Platz und ob man den Ring beim bedienen verdeckt, ist auch egal.

von Der Hocko (Gast)


Lesenswert?

Teo D. schrieb:
> TussiBelichter
Was soll das denn bitte sein?

georg schrieb:
> man muss
> wohl ein eigenes Bord mit einem kleinen Controller drauf designen
was den Aufwand umkehren würde.

Ich finde diese programmierbaren Ringe interessant. Habe Preise um 2,90 
für einen Ring gefunden. Billiger geht es kaum.

Aber wie werden die genau angesteuert? Auf den Händlerseiten ist da 
nichts zu finden.

von Teo D. (teoderix)


Angehängte Dateien:

Lesenswert?

Der Hocko schrieb:
> Teo D. schrieb:
>> TussiBelichter
> Was soll das denn bitte sein?

Teil zum aushärten von so Fingernagel-Gedöns, umgebaut zum Belichter. 
(Gebraucht inkl. p&p 10€)
Original.
https://www.nd24.de/product/uv-lichthaertungsgeraet-basic.7205.html?p=16&gclid=EAIaIQobChMI8Jet55Cm3AIVS_lRCh15MQwKEAQYAyABEgLmFfD_BwE

Der Hocko schrieb:
> Habe Preise um 2,90
> für einen Ring gefunden. Billiger geht es kaum.

Irgendwie ist das unhöflich... :´(

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

Der Hocko schrieb:
> Aber wie werden die genau angesteuert? Auf den Händlerseiten ist da
> nichts zu finden.

Die verwenden NRZ mit so ca. 1/3 zu 2/3 für die Phasen für 0 und 1 - in 
manchen Datenblättern auch 1/4 zu 3/4. Rausgeschoben werden alle Bits 
seriell für alle LEDs in der Kette ohne Pause. Es sind jeweils 8 Bit für 
die 3 Farben in der Reihenfolge R.G.B. mit jeweils MSB first. Also die 
ersten 24 Bit für die erste LED, die zweiten 24 Bit für die nächste, 
u.s.w. Am Ende braucht es 50us Pause, damit die LEDs wissen, dass es neu 
losgeht.

Die maximale Datenrate sind gemäß DB wäre unter Anrechnung der 
Toleranzen theoretisch etwa 1MBit, aber da gab es vermehrt Probleme. Ich 
fahre die mit 768kHz x 16 mit 5/11 und 10/6 Takten und mache 64us Pause.

Das sind bei 24 LEDs 750us und 32 Ringen 24ms -> 40 Hz update Rate. Mit 
32 LEDs x 8 Ringen in 4 Reihen wie bei meinem Controller kommt man auf 
die spezifizierten 30fps. Dabei sieht man aber schon den update-Verlauf. 
Es wäre also anzustreben, weniger LEDs in einer Reihe zu verschalten.

Zu bemerken wäre noch der Stromhunger: Um richtig zu leuchten brauchen 
die mindestens 10mA je Farbe und das Doppelte bei Vollaussteuerung. Das 
sind über 1 pro Ring!  Da muss ein schnelles SNT oder ein fetter Elko 
hin, sonst sieht man bei der Beat Anzeige Pumpen. Für 32 LEDs würde ich 
2 A auslegen!

Wichtig ist auch eine gute GND-Verdrahung. Ich hatte anfänglich Probleme 
mit der Signalqualität, wenn viele LEDs gleichzeitig geschaltet haben. 
Bewährt haben sich kleine 1,2uF-Taltal-Elkos an VCC und GND direkt an 
den Ringen. Sonst geht bei starkem Aufleuchten des einen Rings der 
Nachbar optisch in die Knie. Wenn das zulässig ist, kann man auch auf 
den halben Strom auslegen und jede Kette mit einem China 
MINI-DC_DC-Wandler versorgen, damit voll angesteuerte Ringe nicht so 
hell werden. Ansonsten kämen bei Vollausleuchtung 60A zusammen!

Ich löse es so dass die Helligkeit konstant bleibt, also Weiss z.B. 
33%,33%,33% angesteuert wird, Zwei-Komponentenfarben mit 50%,0,50% etc 
und Einzel-Farben mit 75%. Trotzdem zieht das Ding weit über 10A!

Was ich auch gesehen habe, ist, dass die Helligkeiten nicht den gleichen 
Verlauf haben. Zum einen streuen die LEDs zum anderen die Farben in den 
LEDs und sie haben nicht die gleich Kurve. D.h. 33% Blau haben weniger 
Helligkeit, als 33% Rot. Man könnte auch so ansteuern 30,35,40. Wenn man 
damit also Fernsehen machen möchte, müsste man sich nochmal genauer die 
Verläufe ansehen und eine Farbraumtransformation entwickeln.

Jedenfalls sind die Dinge schon mal sehr bequem, weil sie keine 
Einzelleitungen und PWM mehr brauchen, wie der erste Prototyp.

Letzllich braucht die PWM-Steuerung auch wieder Fläche im FPGA, 
besonders bei unterschiedlichen Werten. Ich mache da zwar nicht viel 
damit, aber volle Helligkeit für jeden Wert ist etwas zuviel.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

georg schrieb:
> Wenn man nicht die relativ grossen WS2812B-LEDs nimmt, sondern normale
> SMD-LEDs und die direkt ansteuert, z.B. als LED-Matrix, kann man viel
> mehr unterbringen.
Ja, absolut, ist mir aber zuviel Arbeit geworden. Ein Prototyp reicht. 
Das Auflöten der LEDs und Bauteilkonstruktion ist nicht so prickelnd. 
Die Ringe kann man einfach draufpappen und unter der Acrylfrontplatte 
platzieren.

Für meine Zwecke wäre es prima, wenn es noch preiswertere, kleinere und 
schwächere gäbe, die man als Ringe kaufen oder zusammenfügen kann. 
Optimal für die MIDI-Zwecke wären flache LEDs, weil man die am engsten 
setzen kann. Damit bekommt man mit 24 Stück einen Durchmesser unter 
2,5cm hin. Mit 32 klappt es perfekt für die idealen 3cm. Nutzt man die 
Ringe sind 45m fällig und die Drehgeber sitzen mit 5cm. Das habe ich 
aufgebaut, ist optisch auch schön, aber die Platznutzung unzureichend. 
Auch dreieckige LEDs wären praktisch, besonders für Anzeigen mit maximal 
16 LEDs. Momentan ist es noch eine Animation, bzw. die Visualisierung 
auf dem Bildschirm.

Habe die Chinesen mal angeschubst, dass sie das bauen sollen. :-)

Aber vielleicht gibt es die auch schon?

Bekannt ist mir nur die Lösung mit dem flachen panel von sparkfun, sowie 
die 16-fach Baugruppe vom Bild weiter oben. Die werden aber alle mit 
einem Controller angesteuert.

von ROlf Meurer (Gast)


Lesenswert?

Zur Auflösung des Behringer BCR2000:
Der kann definitiv 14 BIT Auflösung, (16384 statt 127 Schritte)
Das kann beinahe jeder MIDI Controller.
Es werden einfach 2 cc# (MSB/LSB) von einem Encoder gesteuert.
Ist ganz normaler MIDI-Standard seit 1984.

von Wolfgang (Gast)


Lesenswert?

Der Hocko schrieb:
> Ich finde diese programmierbaren Ringe interessant. Habe Preise um 2,90
> für einen Ring gefunden. Billiger geht es kaum.
>
> Aber wie werden die genau angesteuert? Auf den Händlerseiten ist da
> nichts zu finden.

Für den Preis kannst du nicht mehr Support erwarten.
WS2812B?

von Johnny B. (johnnyb)


Angehängte Dateien:

Lesenswert?

Wolfgang schrieb:
> Der Hocko schrieb:
>> Ich finde diese programmierbaren Ringe interessant. Habe Preise um 2,90
>> für einen Ring gefunden. Billiger geht es kaum.
>>
>> Aber wie werden die genau angesteuert? Auf den Händlerseiten ist da
>> nichts zu finden.
>
> Für den Preis kannst du nicht mehr Support erwarten.
> WS2812B?

Ich denke die wären viel zu gross, aber es gibt gute Alternativen in 
kleineren Gehäusen wie z.B. die APA102-2020 (siehe Anhang).
Die Ansteuerung ist im Datenblatt beschrieben und rel. einfach. Schafft 
ein STM32 mittels DMA sogar im Hintergrund ganz ohne Zutun der CPU.

: Bearbeitet durch User
von Paul (Gast)


Lesenswert?

WS2812c-2020 im bequemen "neopixel" protokoll

https://www.tme.eu/de/details/ws2812c-2020/led-dioden-smd-bunt/worldsemi/

juergen / a.s. - ich waer auch an einer weiterentwicklung interessiert

von J. S. (engineer) Benutzerseite


Lesenswert?

Paul schrieb:
> juergen / a.s. - ich waer auch an einer weiterentwicklung interessiert

Ich baue auch gerade was mit einem Ring auf. Lässt sich mit einem FPGA 
ja gut machen.

von Paul (Gast)


Lesenswert?

Habe jetzt mit Hilfe eines Profis ein PCB fuer die midibox-plattform 
entwickelt das ich gerade auch als bulk-order anbiete, falls jemand 
interesse hat.

4x ledring/encoder mit jeweils 36 ws2812 in 2020 bauweise und 74hc595. 
fgpa's schienen zu aufwendig um midibox-basiert schnell ans ziel zu 
kommen bzw haetten wir uns da erst komplett neu einarbeiten muessen.

hier der link zum midibox-forum mit einer genaueren beschreibung und 
preisen:

http://midibox.org/forums/topic/21095-lre-4x1-breakable-rgb-led-ringrotary-encoder-pcb-bulk-order/

von Tim (Gast)


Lesenswert?

Hab hier was in die Richtung gefunden zum fertig kaufen

https://www.tindie.com/products/doubledutch/rotary-encoder-w-circular-leds/

von Audiomann (Gast)


Lesenswert?


von Audiomann (Gast)


Lesenswert?

Rolf Meurer schrieb:
> Der kann definitiv 14 BIT Auflösung, (16384 statt 127 Schritte)
> Das kann beinahe jeder MIDI Controller.
> Es werden einfach 2 cc# (MSB/LSB) von einem Encoder gesteuert.
> Ist ganz normaler MIDI-Standard seit 1984.

Ja, das laut MIDI 1.0 in der Tat möglich. Aber die meisten Controller 
unterstützten das damals nicht und somit die Geräte auch nicht. Noch 
heute sind die meisten MIDI-Klangerzeuger darauf ausgelegt, bei 
wichtigen Parametern mit 7 Bits zu arbeiten.

Somit bringt ein Eingabegerät mit 14 Bit zunächst nichts, wenn nicht 
auch die Hardware dahinter das verarbeiten kann. Das ist erst mit den 
PC-plugins anders geworden, die durchgängig höhere Auflösungen ihrer 
Parameter verarbeiten.

von MIDI-Baschtler (Gast)


Lesenswert?

Tim schrieb:
> Hab hier was in die Richtung gefunden zum fertig kaufen
>
> https://www.tindie.com/products/doubledutch/rotary-encoder-w-circular-leds/

Das wären immerhin 15,- für einen einzigen Kanal. Ich hätte ich Zweifel 
lieber soetwas gehabt:

http://www.doepfer.de/de.htm

Leider wurde dieser Controller schon vor Zeiten eingestellt. Für unter 
100,- bekam man 16 gute Drehreglerkanäle.

Müsste man eigentlich nachbauen können, meine ich.

von Dennis (. (asok)


Lesenswert?

Ich baue auch gerade ein Encoder-Modul mit LED-Ring. Meins hat 30 LEDs, 
wird seriell (über UART) angesteuert und ist kaskadierbar. Man braucht 
also nur zwei Pins (RX und TX) für bis zu 250 Regler. Insbesondere muss 
man nicht pollen und sich nicht mit I2C-Adressen herumärgern.

Warum noch ein Modul? Weil keins der vorhandenen für meinen Zweck 
richtig taugt. Die sind entweder zu komplex und damit zu teuer (ich 
brauche keine mehrfarbigen LEDs), zu simpel (zu wenige LEDs wie bei 
diesem Tindie-Ding), zu groß oder was auch immer.

Von meinem Modul werde ich auch ein paar mehr herstellen lassen. Was es 
genau kosten wird, weiß ich noch nicht, aber auf jeden Fall keine 15 
Euro. Bei typischen Abnahme-Stückzahlen (also z.B. 8 Module) bekomme ich 
das sicherlich für den halben Preis hin.

von Markus G. (Gast)


Angehängte Dateien:

Lesenswert?

Behringer den BCR2000 als BCR32 neu aufgelegt, vllt. sogar mit Open 
Source Firmware, aber genaues ist noch nicht bekannt.

von Dennis (. (asok)


Angehängte Dateien:

Lesenswert?

Anbei Bilder meines Encoder-Moduls.

In der Mitte wird ein handelsüblicher Dreh-Encoder montiert. Die drei 
Pins sind für die üblichen Encoder-Signale (A, Common, B) und gegenüber 
sind noch zwei optionale Pins für einen Drucktaster, den nicht alle 
Encoder haben. Bei der Monatage sind zwei Varianten möglich:

1. Encoder wird von oben auf die Platine gesetzt und dann einfach auf 
der Rückseite eingelötet. Das funkioniert mit allen 12mm-Encoder-Typen.

2. Der Schaft des Encoders wird von unten in die Platine geschoben und 
oben mit der zugehörigen Mutter festgeschraubt. Das erlaubt eine 
Frontplatten-bündige Montage und erfordert Encoder mit Schraubgewinde um 
den Schaft. Dazu muss man die Pins am Encoder einfach nur nach oben 
biegen.

Die runde Aussparung für den Schaft hat 9mm Durchmesser, die beiden 
Mulden rechts und links sind für Snap-In-Federn bei Montage von oben. 
Wie ich festgestellt habe, haben die meisten Encoder ein M9-Gewinde (so 
z.B. ALPS), Bourns allerdings M8. Encoder ohne Gewinde benötigen nur 7mm 
Aussparung. Ich habe versucht, break-away Tabs anzubringen, so dass man 
das Loch je nach Bedarf zwischen 7, 8 oder 9mm variieren kann. Aufgrund 
der engen Platzverhältnisse denke ich aber nicht, dass das gut 
funktioniert. Am universellsten ist insofern das 9mm Loch und 
sinnvollerweise verwendet man dann halt die passenden Komponenten. 
Alternativ könnte man aber auch kleine Adapterringe 3D-drucken.

Der Ring besteht aus insgesamt 30 LEDs in einem Winkel von 270 Grad.
Das sind herkömmliche einfarbige LEDs (viel günstiger als RGB-LEDs mit 
eigenem Controller).

Spannungsversorgung ist wahlweise 3,3V oder 5V. Die Platine hat einen 
eigenen Spannungsregler, so dass die korrekte Spannung für die LEDs 
gewährleistet ist.

Dann gibt es einen RX- und einen TX-Port für die UART-Schnittstelle zum 
externen Mikrocontroller. Wird der Encoder gedreht, sendet das Modul 
eine Nachricht. Indem man Nachrichten an das Modul sendet, kann man 
einen neuen Wert setzen. Bis zu 250 Module ohne Taster sind 
kaskadierbar. Sie erkennen beim Einschalten automatisch, ob und in 
welcher Reihenfolge sie verbunden sind und geben sich selbst eine 
numerische Adresse. Die erste Platine ist 0, die zweite 1 usw.. Eine 
Nachricht besteht immer aus einem Adressbyte und einem Datenbyte.

Verwendet man Encoder mit Tastern, dann belegt jedes Modul zwei 
Adressen. Somit sind "nur" noch 125 Module kaskadierbar.

Ich würde mich über Feedback freuen:
- Wie gefällt Euch das Ding überhaupt so?
- Was meint Ihr zum Formfaktor?
- Die Anschlusspins habe ich bewusst als SMD-Pads ausgeführt, auf die 
man von unten Kabel anlöten bzw. einfach Lötbrücken zum benachbarten 
Modul setzen kann. Ich kann natürlich auch Löcher in die Pads setzen, 
aber das sieht dann von oben nicht mehr so schön aus und außerdem stehen 
die Drähte dann oben über, was evtl. bei der Montage einer Blende stört. 
Wären Euch die Löcher trotzdem lieber?
- Ich könnte das Modul auch rund fräsen statt rechteckig. Das sieht sehr 
schick aus. Leider lässt es sich dann nicht mehr so gut panelizen und 
wird auch etwas teurer.

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

Markus G. schrieb:
> Behringer den BCR2000 als BCR32 neu aufgelegt, vllt. sogar mit Open
> Source Firmware,

open source firmware wäre interessant. Woher kommt diese Info? Dann 
würde man im Prinzip in der Lage sein, jeder Auflösung zu senden, also 
auch MIDI2 (16 Bit) für alle Standard-Controller.

von J. S. (engineer) Benutzerseite


Lesenswert?

Dennis (. schrieb:
> Der Ring besteht aus insgesamt 30 LEDs in einem Winkel von 270 Grad.
> Das sind herkömmliche einfarbige LEDs (viel günstiger als RGB-LEDs mit
> eigenem Controller).

Ich habe welche mit 50mm, 40mm und 30mm in 1 und 3 Farben. Die teuersten 
sind 5,95 das Stück. Das sind 20 Cent je LED. Welche verwendest du?

Grundsätzlich kriegt man es mit einem Eigenbau enger, daher ja auch mein 
Vorschlag aus 2012. Allerdings musste ich lernen, dass das Auflöten der 
LEDs nicht so prickelig ist, wenn man einen Controller bauen will, der 
4x8 solcher Ringe benutzt. Mir sind auch LEDs über den Jordan gegangen, 
teilweise vor- und auch kurz nach der Inbetriebnahme. Kann sein, dass 
meine Lötkünste nicht die Besten waren und die LEDs gestresst wurden.

Dennis (. schrieb:
> Ich könnte das Modul auch rund fräsen statt rechteckig. Das sieht sehr
> schick aus. Leider lässt es sich dann nicht mehr so gut panelizen
Es kommt drauf an, was man vorhat. Ich brauche in jedem Fall ein Panel 
das selber wieder mit anderen zu einem Panel zusammengefügt werden 
können muss, um z.b. eine n x 9 Config zu fahren. (8 Kanäle + Master 
Fade)

Man könnte überlegen, die als echt modulare Einheiten zu fahren und sie 
erst gar nicht zu brechen, um sie aus dem Los zu bekommen, sondern 
gleich eine entsprechende Größe DIN A4 oder was auch immer günstig ist, 
anzulegen.

Ich habe mein erstes System mit Eagle gemacht und eine 80 x 120 (mit 
2x3) aufgesetzt. Durch die Feinfühligkeit, mit der die Industrie-App 
arbeiten sollte, mussten große Knöpfe her und das Raster von 40x40 war 
zu klein für normale Finger. Daher würde man ein 100x150 bauen (wenn es 
EAGLE sein sollte) oder Europakarten-Maß genommen wird. Die Module 
müssten dann maximal so 48 x 48 an wirksamer Fläche für Elektronik haben 
wenn der Encoder exakt mittig ist.

Deine Anordnung ist ja nun flach, als Pseudo-Poti mit 270°. Daher 
kriegst du noch mehr Bruttofläche aus der Platine. Allerdings war mein 
Ansatz immer den Vollkreis zu nutzen, um mehr anzeigen zu können und 
auch die LEDs enger setzen zu können, bzw mit den angedachten 32 oder 36 
einen kleineren Kreis zu haben. Ist aber Deine Sache.

Als Tipp:

- Die Platine massiv genug und nicht vorgebrochen, damit man sie auch so 
ohne weitere Montage als Panel nehmen kann und kein weiteres Gehäuse 
braucht. Die Encoder müssen stabil halten.

- Die Dimension so, dass löt- oder schraubbare Encoder sowohl hart mit 
der Platine, als auch einer Frontplatte verschraubt werden können. Damit 
kriegt man die Querstabilität. Die Bedienung als Musiksteuergerät (meine 
Anwendung zwei) ist bei Encodern (besonders die Tasten) unhandlich, wenn 
die Angelegenheit zu sehr nachgibt.

- Alternativ oder zusätzlich Bohrungen oder wenigstens Platz zwischen 
der modularen Elektronik, dass man Abstandsbuchsen durchbohren und das 
Ganze auf einen Träger setzen kann. Nimmt man nämlich die Verschraubung 
aus Punkt 2 her, so wie ich das mit meinem Vorschlag im Eingangspost mit 
der Plexiglasscheibe mache, muss das alles sehr stabil sein, um die 
Scheibe nicht springen zu lassen. Mehr, als 3mm kriegt man nämlich nicht 
hin, weil der Schaft der Encoder nicht genug Gewinde hat. Man muss ja 
die Scheibe mit Mutter und U-Scheibe gegenkontern.

- Für Musikanwendungen haben sich die geriffelten Knöpfe mit 15mm - 18mm 
Durchmesser bewährt, wie sie als "Gitarrenknöpfe" verkauft werden. Wenn 
man die ohne Berührung mit gleitenden Fingern voll durchdrehen will, 
braucht man ein Elementar-Maß von min 45 mm als Abstand zwischen den 
Achsen. Ich plädiere inzwischen für 50mm. Damit kann man nämlich auch 
noch zwei benachbarte Regler gleichzeitig bedienen. Der Ring der LEDs 
hat idealerweise nicht viel mehr als 40mm Außenmaß, damit 1cm Abstand 
zwischen den Ringen ist.

von J. S. (engineer) Benutzerseite


Lesenswert?

Zur Programmierung: Der Vorteil der Encoder ist ein beliebiger 
Zahlenumfang. Dennoch braucht man mitunter ein exaktes feed back. Es ist 
daher sinnvoll, genau so viele LEDs zu nehmen, wie der Encoder Rasten 
hat und diese als Kommastellen anzuzeigen. Bei nur einer Farbe könnte 
man das wie mit einer Uhr tun und zwei Helligkeiten anbieten:

Einen "großen Zeiger", der jeweils die Vorkommastellen hell leuchtend 
anzeigt und einen "kleinen Zeiger", der nur halbhell leuchtet. Macht der 
kleine eine Runde, springt der große entsprechend um 1 weiter. Bei einem 
32-er Schalter, wäre das ein 2x5 = 10 Bit-System bis 1024. Ich hatte das 
bei einer Version mit zwei Farben gelöst.

Die Schalter werden bei 1-Farb-LEDs mit XOR verknüpft, um sie bei 
Überlappung sichtbar zu machen. Dazu lässt man den "kleinen" zwischen 0 
und 50% Helligkeit blinken. Die dafür nötige PWM müsste der Controller 
bringen. Kann der das?

Will man einen Dezimalschalter bauen, lässt man die beiden äußeren LEDs 
weg und schaltet immer 3 gleichzeitig, wodurch sich 30/3=10 Stellungen 
je Schalter ergeben. Macht 10x10 = 100 Positionen.

Bei einem 24er Drehencoder nimmt man auch 3 LEDs die eine Position 
zeigen, wodurch sich 8 ergeben, mit zwei verkürzen Position von nur 2 
LEDs links und rechts hat man wieder 10.

Alle anderen skalierten müsste man mit einer Schwerpunktbeleuchtung 
machen: Also einen mindestens 4 LEDs breiten Balken, deren Helligkeiten 
eine Haube bilden. Ich hatte das mal probiert, durch sehr eng sitzende 
LEDs einen quasi kontinuierlichen Zeiger zu bauen, aber das braucht dann 
eine sehr milchige Plexischeibe.

von Dennis (. (asok)


Lesenswert?

Danke für die umfangreichen Gedanken!

Jürgen S. schrieb:
> Deine Anordnung ist ja nun flach, als Pseudo-Poti mit 270°. Daher
> kriegst du noch mehr Bruttofläche aus der Platine. Allerdings war mein
> Ansatz immer den Vollkreis zu nutzen, um mehr anzeigen zu können und
> auch die LEDs enger setzen zu können, bzw mit den angedachten 32 oder
> 36 einen kleineren Kreis zu haben.

Rein objektiv ist der der Vollkreis besser, weil der Winkel pro LED 
größer ist. Allerdings macht ein kleiner Spalt schon Sinn, um optisch 
Min und Max zu erfassen - und das Auge ist halt Potis mit 270 Grad 
gewöhnt. Ich habe auch größere Winkel versucht und das sah immer 
irgendwie komisch aus.

Ich wollte auch nicht die Anzahl der LEDs maximieren, sondern einen 
sinnvollen Kompromiss finden, bei dem man mit vernünftiger Genauigkeit 
den Wert ablesen kann. 5 bit scheint mir angemessen.

> Ich habe welche mit 50mm, 40mm und 30mm in 1 und 3 Farben. Die
> teuersten sind 5,95 das Stück. Das sind 20 Cent je LED. Welche
> verwendest du?

Du hast auch einfarbige? War mir ganz entgangen.

Ich verwende ganz normale SMD-LEDs mit 0603-Footprint in rot (für andere 
Farben braucht man ggf. andere Widerstände). Wenn man eine ganze Rolle 
kauft, kostet so eine LED knapp einen Cent (Markenhersteller) oder auch 
auch weniger (Noname).

Mir geht es in erster Linie darum, günstig einen Drehregler mit 
Total-Recall-Funktion zu realisieren. Man braucht nicht mehrere Farben, 
um ein Poti nachzubilden. Aber Modul-Vielfalt ist doch prima.

> Auflöten der LEDs nicht so prickelig [...] Mir sind auch LEDs über
> den Jordan gegangen

Ja, das geht besser industriell zu fertigen. Mit Lötpaste und Reflow 
kriegt man 0603 zwar auch hin, aber Spaß macht es nicht (schon allein 
weil die LEDs so leicht sind, dass sie gern wegspringen und man kaum 
noch die Polarität erkennen kann, sobald sie erstmal aus dem Tape raus 
sind.

> Man könnte überlegen, die als echt modulare Einheiten zu fahren und
> sie erst gar nicht zu brechen, um sie aus dem Los zu bekommen, sondern
> gleich eine entsprechende Größe DIN A4 oder was auch immer günstig ist,
> anzulegen.

Ja, denn hergestellt werden sie sowieso als Panels. Allerdings ist mir 
nichts Schlaues für die Vorverdrahtung der Module innerhalb eines Panels 
eingefallen, daher wird man zumindest drei Lötbrücken von Modul zu Modul 
brauchen. Und das Verschicken von Panels ist halt auch nicht trivial. 
Wenn ich ein DIN-A4-Panel mit V-cuts nicht breche, dann bricht es der 
Postweg - oder ich muss für Verpackung und Porto mehr ausgeben als für 
die Platine. Bei 40mm-Modulen habe ich das Problem nicht. Aber wie wär's 
mit einem Makro-Modul von 2x2 Ringen?

> Alternativ oder zusätzlich Bohrungen oder wenigstens Platz

Sehr guter Punkt. Wahrscheinlich sind Bohrungen in den Ecken ganz gut.

> Wenn man die [Knöpfe] ohne Berührung mit gleitenden Fingern voll
> durchdrehen will, braucht man ein Elementar-Maß von min 45 mm als
> Abstand zwischen den Achsen. Ich plädiere inzwischen für 50mm.

Viele Geräte haben 25 - 40mm (ohne LED-Ring). 35mm funktionieren bei 
meinen Fingern noch prima. 25mm (Korg Minilogue) finde ich schon 
ziemlich eng. Aber hier noch ein Tipp: der vertikale Abstand kann 
durchaus kleiner sein als der horizontale.

> auch MIDI2 (16 Bit) für alle Standard-Controller.

Man könnte zwei Encoder pro Parameter vorsehen (Grob- und 
Feineinstellung) oder diese per Knopfdruck umschalten, damit man nicht 
1300 Umdrehungen für den 16bit-Wertebereich braucht... grundsätzlich 
sehe ich aber keinen so großen Bedarf, überhaupt höher als 7 bit 
aufzulösen. Das mag in einigen Fällen Sinn machen (z.B. beim exakten 
Einstellen von Delay-Zeiten), aber in den meisten Fällen ist der 
Mehrwert vernachlässigbar. Ist aber auch kein Problem - die Software 
dazu gehört sowieso eher in die Gesamtanwendung als in jeden einzelnen 
Regler, und wenn die Module nicht zu unflexibel sind, dann kann jemand 
der das braucht es ja so machen.

> Einen "großen Zeiger", der jeweils die Vorkommastellen hell leuchtend
> anzeigt und einen "kleinen Zeiger", der nur halbhell leuchtet.

Das ist ziemlich clever und passt auch gut zum vorigen Absatz. 
Allerdings glaube ich nicht, dass die breite Masse das kapiert. Hängt 
auch von der Anwendung ab. Wenn man die Option hat, den Wert des letzten 
Reglers noch auf einem Display zu zeigen (und damit leben kann, dass die 
anderen erst durch Anfassen exakt angezeigt werden), dann ist der 
"Sekundenzeiger" overkill.

> 50% Helligkeit [...] Die dafür nötige PWM müsste der Controller
> bringen. Kann der das?

Solange wir nicht viele Helligkeitsstufen brauchen, kann man das ja mit 
jedem beliebigen uC manuell machen (man muss halt drauf achten, dass 
nicht irgendwelche ISRs oder Kommunikationsroutinen zu Flackern führen).

> Alle anderen skalierten müsste man mit einer Schwerpunktbeleuchtung
> machen: Also einen mindestens 4 LEDs breiten Balken, deren Helligkeiten
> eine Haube bilden.

Warum mindestens 4? Ich wollte zwischen 2 Benachbarten "überblenden" und 
habe schon überlegt, dass man vielleicht 3 bräuchte, um die 
wahrgenommene Breite konstant zu halten. Wofür mehr als 3?

: Bearbeitet durch User
von Markus (Gast)


Lesenswert?

Zu dem Behringer BCR32 heißt es, dass es bald herauskommt. Bezüglich 
Open source Firmware ist noch nichts bekannt, Behringer arbeitet aber 
mit den Entwicklern von Zaquencer zusammen.

https://www.amazona.de/namm-2021-behringer-bcr32-controller-zaquencer-nach-bcr2000/

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Dennis (. schrieb:
> Man könnte zwei Encoder pro Parameter vorsehen (Grob- und
> Feineinstellung) oder diese per Knopfdruck umschalten,

Ja, so mache ich das mit meinen tastbaren Encodern. Ein bissl mehr 
Schmackes beim Drehen und es geht mehrfach schneller. Faktor 3 hat sich 
bewährt.

Markus schrieb:
> Zu dem Behringer BCR32 heißt es, dass es bald herauskommt.
Wenn die den bringen, werde ich mir den holen. Für meine eigenen Zwecke 
werde ich aber wohl kein LED Grab mehr aufbauen, sondern es 
virtualisieren, als mit VGA einen Controller auf den Screen abbilden. Da 
habe ich dann alle Teilungen die ich will.

Man kann auch die Werte direkt anzeigen und einen vertikale rollenden 
Encoder nehmen:
Beitrag "Re: Drehgeber mit "Gangschaltung" = Beschleunigung"

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.