Forum: Mikrocontroller und Digitale Elektronik IC gesucht zum seriellen Tasterauslesen


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 Mike (Gast)


Lesenswert?

Hallo zusammen!

Ich will für ein Projekt ca. 100 Taster abfragen. Die Taster sitzen auf 
einzelnen Platinen, die in Reihe aneinander angeschlossen sind. Ich 
suche nun nach einer Lösung, wie ich die Taster mit möglichst nur einer 
Datenleitung abfragen kann.

Inspiriert bin ich von den WS2812 LEDs, bei denen auch eine einzelne 
Datenleitung reicht, um etliche LEDs zu steuern. Einen ähnlichen IC 
suche ich nun, bloß halt zum auslesen von Tastern.

Gibt es einen IC, der aus meinen Tastersignalen ein Serielles Signal 
macht und gleichzeitig noch kaskadierbar ist? Idealerweise sollte dieser 
IC einfach 1 bit pro Taster an einen ankommenden Datenstream anhängen 
und diesen dann an den nächsten IC weitergeben.

Vielen Dank für euere Hilfe!

von hörbel (Gast)


Lesenswert?

Du kannst Dir so etwas mit einer low-cost MCU ja selber bauen. Weit 
unter 0.30 EUR wirst Du wohl mit einer anderen IC-Lösung auch nicht 
kommen.

von Mike (Gast)


Lesenswert?

hörbel schrieb:
> Du kannst Dir so etwas mit einer low-cost MCU ja selber bauen. Weit
> unter 0.30 EUR wirst Du wohl mit einer anderen IC-Lösung auch nicht
> kommen.

Danke für deine Antwort!

Stimmt, ans selber Programmieren habe ich auch schon gedacht. Allerdings 
wäre mir der geringere Aufwand einer fertigen IC-Lösung auch einen 
Aufpreis wert :)

von hörbel (Gast)


Lesenswert?

Im Moment scheint der ATtiny9 der günstigste MCU bei Mouser zu sein. 
Drei GPIO  reichen gerade für Input/Output und einen Taster.

von Waldfee (Gast)


Lesenswert?

Guten Morgen,

wie wäre es denn mit ein paar MCP23017 16-Bit I2C I/O Expander und einem 
µC?

Gruß

von Reiner_Gast (Gast)


Lesenswert?

Mike schrieb:
> Gibt es einen IC, der aus meinen Tastersignalen ein Serielles Signal
> macht und gleichzeitig noch kaskadierbar ist? Idealerweise sollte dieser
> IC einfach 1 bit pro Taster an einen ankommenden Datenstream anhängen
> und diesen dann an den nächsten IC weitergeben.

Du könntest dafür auch eine Kaskade aus 74HC165 ICs nehmen.

von HildeK (Gast)


Lesenswert?

Reiner_Gast schrieb:
> Du könntest dafür auch eine Kaskade aus 74HC165 ICs nehmen.

Und du darfst erzählen, wie das mit einer Leitung zu machen wäre ...

Mike schrieb:
> wie ich die Taster mit möglichst nur einer
> Datenleitung abfragen kann.

von m.n. (Gast)


Lesenswert?

HildeK schrieb:
> Und du darfst erzählen, wie das mit einer Leitung zu machen wäre ...

Ganz einfach: eine 4-adrige Leitung mit Abschirmung.

von Reiner_Gast (Gast)


Lesenswert?

HildeK schrieb:
> Reiner_Gast schrieb:
>> Du könntest dafür auch eine Kaskade aus 74HC165 ICs nehmen.
>
> Und du darfst erzählen, wie das mit einer Leitung zu machen wäre ...
>
> Mike schrieb:
>> wie ich die Taster mit möglichst nur einer
>> Datenleitung abfragen kann.

Das wird mit keinem der bisher genannten IC (weder MC23017 noch 74HC165) 
gehen... Du wirst immer mindestens ein Clocksignal und eine Datenleitung 
brauchen.

Selbst das Timing auf dem WS2812 ist sehr eng und empfindlichst genau 
einzuhalten. Sonst flackert es wie wild.

Eine 1 Draht Datenleitung könnte ich mir lediglich auf Basis eines 
One-Wire Busses vorstellen. Dafür käme z.B. der DS2408 in Frage: 
https://www.maximintegrated.com/en/products/digital/memory-products/DS2408.html
Hier ist aber wieder ein exaktes Timing einzuhalten und es ist schwierig 
festzustellen, in welcher Reihenfolge die ICs am Datenbus hängen.

von Harald W. (wilhelms)


Lesenswert?

m.n. schrieb:

>> Und du darfst erzählen, wie das mit einer Leitung zu machen wäre ...
>
> Ganz einfach: eine 4-adrige Leitung mit Abschirmung.

Mit einer 101-adrigen Leitung wäre es einfacher.

von georg (Gast)


Lesenswert?

Mike schrieb:
> einfach 1 bit pro Taster an einen ankommenden Datenstream anhängen
> und diesen dann an den nächsten IC weitergeben

Ob ein Datenwort mit 100 bit Länge ein gutes Protokoll ist würde ich 
bezweifeln. So etwas ist sehr störanfällig.

Georg

von Michael B. (laberkopp)


Lesenswert?

Mike schrieb:
> Gibt es einen IC, der aus meinen Tastersignalen ein Serielles Signal
> macht und gleichzeitig noch kaskadierbar ist?

Üblicherweise nimmt man Schieberegister wie 74HC589, aber die brauchen 
ein LOAD Signal und ein Taktsignal, weil sie für universelle Taktraten 
und Schieberegisterlängen gebaut sind.

Weiss man das Protokoll, kann man das LOAD und CLK Signal aus einer 
Datenleitung gewinnen, z.B. mit 3 MonoFlops:
1
            +----+  +------+
2
         +--| MF1|--|LOAD  |
3
         |  +----+  |      |
4
         |          |      |
5
DataIn --+----------|DATA  |
6
         |          |   OUT|-----|-\
7
         |  +----+  |      |     |  )--DataOut
8
         +--| MF2|--|CLK   |  +--|-/
9
         |  +----+  +------+  |
10
         |  +----+            |
11
         +--| MF3|------------+
12
            +----+
Eine lange Pause im DataIn Signal erzeugt LOAD, ein kurzer Impuls steht 
für 0 (da ist das Signal schon wieder 0 wenn CLK fällt) ein langer 
Impuls steht für 1 (muss aber auch zeitlich begrenzt sein, daher MF3).

Dummerweise kostet das 3 MonoFlops, die man mit 3 Schmitt.triggern und 
RC Netzwerken aufbauen könnte, kostet also einen zusätzlichen IC.

Da nimmt man heute doch besser einen uC, der kann dann auch mehr als 8 
Tasten (falls das nötig ist und nicht sowieso nur 1 Taste pro Platine 
erfasst werden soll).

Bleibt die Frage, ob die Schaltung mit 1 CD4093 aufgebaut werden könnte 
wenn man nur 1 Taste einlesen will...

von georg (Gast)


Lesenswert?

georg schrieb:
> So etwas ist sehr störanfällig.

Zur Ergänzung: 1 Tasternode kaputt - nichts geht mehr. Fröhliche 
Fehlersuche.

Georg

von m.n. (Gast)


Lesenswert?

Offensichtlich ist der Begriff Datenleitung nicht jedem bekannt.
Es handelt sich jedenfalls nicht um eine 1-adrige Leitung. Die 
diesbezüglichen Schaltungs-Spinnereien kann man sich daher sparen.

von HildeK (Gast)


Lesenswert?

m.n. schrieb:
> Es handelt sich jedenfalls nicht um eine 1-adrige Leitung.

Doch, plus Versorgung. Der TO hat ja explizit auf WS2812-LEDs Bezug 
genommen.

von Reiner_Gast (Gast)


Lesenswert?

HildeK schrieb:
> m.n. schrieb:
>> Es handelt sich jedenfalls nicht um eine 1-adrige Leitung.
>
> Doch, plus Versorgung. Der TO hat ja explizit auf WS2812-LEDs Bezug
> genommen.

Der TO hat auch "möglichst" in diesem Bezug genannt, also quasi ein 
Nice-2-Have

von m.n. (Gast)


Lesenswert?

HildeK schrieb:
> m.n. schrieb:
>> Es handelt sich jedenfalls nicht um eine 1-adrige Leitung.
>
> Doch, plus Versorgung. Der TO hat ja explizit auf WS2812-LEDs Bezug
> genommen.

Das zeigt eigentlich nur, daß der TO garnichts anderes kennt.
Völlig abartig finde ich obige Vorschläge mit einem 30 ct µC, als ob das 
der Knackpunkt wäre.
Das Teuerste bei jeder Lösung ist die Verkabelung. Daher ist es von 
Vorteil, wenn man auf vorhandene, konfektionierte Leitungen 
zurückgreifen kann. Günstig sind dann z.B. USB- oder Netzwerkkabel, wenn 
man eine 'steckbare Lösung' braucht.
Aber letzlich fehlen noch einige Informationen zur Anwendung, zum 
Beispiel über die räumliche Ausbreitung der Taster und mögliche 
Störquellen im Umfeld.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.