Alternativen zu einem klassischen DIP-Schalter


10

Ich suche nach einem Teil, mit dem ein Benutzer eine Konfiguration häufig ändern kann. Im Moment verwende ich einen SMD-DIP-Schalter, der an einen I2C-E / A-Expander angeschlossen ist.

Was mich stört, ist der große Platzbedarf dieser Komponenten (DIP-Schalter kombiniert mit IO-Expander-IC) sowie die recht langwierige Benutzeroberfläche. Gibt es DIP-Schalter oder etwas, das dieselbe Funktion erfüllt, mit der ich über einen digitalen Bus wie I2C sprechen kann, um seinen Status zu lesen?

Ich bin auch offen für ganz andere Ansätze. Ich brauche nur etwas, das dauerhaft mechanisch verändert werden kann und mindestens 64 verschiedene Zustände zulässt. Es ist wichtig, dass die Konfiguration vorgenommen werden kann, wenn die Schaltung nicht eingeschaltet ist, und dem Benutzer eine visuelle Rückmeldung über die genaue Konfiguration gibt. Die einzige Möglichkeit, die Schaltung einzuschalten, besteht darin, dass die Konfiguration und die visuelle Rückmeldung in sich geschlossen sind, ohne dass eine Steuerung durch einen Mikrocontroller oder SoC erforderlich ist.

Die Frage hat etwas mit dieser Frage von vor 6 Jahren zu tun: DIP-Schalter ersetzen

Bearbeiten: Es gibt einige großartige Vorschläge in den Antworten und ich denke, ich lasse diese Frage unbeantwortet. Community-Abstimmungen sollten entscheiden, was hilfreich ist und was nicht. Wenn Sie das gleiche Problem haben wie ich, lesen Sie alle Antworten durch.


Wenn Sie möchten, dass es schick wird, schalten Sie das Bluetooth-Modul ein und stellen Sie alle Schalter über das Smartphone ein.
Chupacabras

8
Mein erster Gedanke ist, dass es nicht der tatsächliche Platzbedarf ist, der einen DIP-Schalter groß macht. Es sind die eigentlichen Schalter. Die Umstellung auf ein serielles Protokoll würde es nicht unbedingt verkleinern.
Pipe

3
Könnten Sie Ihren Benutzern beibringen, in Hex zu zählen und ein oder zwei davon zu verwenden ?
Brhans

Nun, ich möchte den I2C-Multiplexer / Port-Expander loswerden. Wenn es nur der DIP-Schalter ist, wäre es in Ordnung. Wenn es also so etwas wie einen "digitalen DIP-Schalter" gibt, wäre das großartig.
PTS

4
Wie viel kleiner als ein kleines 6-Schalter-Paket, können Sie es herstellen, bevor es nicht mehr mechanisch manipulierbar ist?
Phil Frost

Antworten:


19

Sie können einen SIP-Schalter anstelle eines DIP verwenden. Durch das Einsparen des Kartenbereichs erhalten Sie Platz für Ihre I2C-Schnittstelle (oder eine einfachere Schnittstelle wie ein Schieberegister mit Eingangsverriegelung):

Geben Sie hier die Bildbeschreibung ein

Das Bild zeigt es horizontal, aber es wird tatsächlich vertikal montiert.


Sie sind in der Tat nett und ich erwäge sie für mein Design, obwohl es in einer mehrschichtigen SMD-Platine etwas schwierig ist, eine davon zu verwenden, ohne einen großen Bereich für das Routing zu blockieren.
PTS

1
Möglicherweise gibt es SMD-Versionen. SMD-SIP-Pakete haben normalerweise versetzte Füße.
Passant

SMD könnte eine Herausforderung sein, Apem (der den auf dem Bild macht) macht sie nicht, ich erinnere mich nicht, sie irgendwo anders gesehen zu haben. Normalerweise habe ich sie am Rand der Leiterplatte, wo das Routing nicht immer so wichtig ist.
Finbarr

9

"DIP Schalter

Zunächst muss ein "DIP" -Schalter nicht groß sein. Hier ist ein 6-Bit-SMD-Switch mit J-Hook-Pins und einem Abstand von 1,27 mm:

CHS-06TAGeben Sie hier die Bildbeschreibung ein

Potentiometer

Wenn Sie den Platzbedarf unbedingt reduzieren möchten und den Benutzer ein wenig belästigen können, können Sie ein Potentiometer verwenden, das an einen A / D-Wandler angeschlossen ist. Da Sie 64 Einstellungen benötigen, sollte ein 12-Bit-Konverter mehr als genug Auflösungsspielraum haben, um zwischen den Schritten zu unterscheiden, da einige elektrische und Software-Filter und Schwellenwerte vorhanden sind. Hier ist eine 2 x 2 mm Lösung:

PVF2A

Ich habe jedoch noch nie ein analoges Potentiometer mit 64 physischen Arretierungen gesehen. Dies bedeutet, dass Sie bei der Konfiguration des Geräts kein zuverlässiges taktisches Feedback für den Benutzer erhalten. Es ist auch schwierig, die richtige Einstellung beim Booten zuverlässig zu finden, da sie auf einem Schwellenwert zwischen zwei Einstellungen belassen werden kann. Ich würde die vorherige Einstellung in einem EEPROM speichern, und wenn das Potentiometer nahe genug am gespeicherten Wert beim Booten liegt, I. würde sie als gleich betrachten.

Außerdem würde ich diesen 2 x 2 mm Trimmer wahrscheinlich nicht verwenden, aber es gibt Tausende verschiedener Trimpots.


Interessante Idee mit dem Potentiometer. Eine visuelle Rückmeldung der genauen Einstellung wäre jedoch wichtig.
PTS

Es sind Mini-Drehgeber erhältlich, die ein ähnliches Profil wie ein Trimmer haben, jedoch über Binärausgänge verfügen, normalerweise 4-Bit / 16-Schritte mit der Bezeichnung 0-F und deutlichen Arretierungen.
John U

@ JohnU Sie benötigen zwei davon, was zu einer größeren Lösung führt.
Pipe

Zwei davon (vielleicht eher aufrecht als flach) könnten das Verpacken erleichtern.
John U

@PTS Wenn auf Ihrem Gerät bereits eine Anzeige verfügbar ist, können Sie die Software missbrauchen, um den Wert zu lesen und anzuzeigen. Vorausgesetzt, Sie haben bereits eine Art Konfigurationsmenü geladen, muss dies auch nicht viel Arbeit sein. Natürlich können Sie das Display bei ausgeschaltetem Gerät nicht lesen.
Mast

9

Haben Sie einen Ersatz-ADC?

Wenn Sie einen 8-Bit-Ersatz-ADC auf einem nahe gelegenen Mikrocontroller haben, könnten Sie den E / A-Expander wahrscheinlich zugunsten eines Widerstandsnetzwerks fallen lassen - entweder einer R-2R-Leiter oder einer binär gewichteten Leiter. Das würde die Schalterpositionen als Analogpegel codieren. Widerstandsleitern sind in sehr kleinen Paketen erhältlich, aber ich weiß nicht, ob Sie eine kleiner als Ihren I2C-Expander erhalten.

Wie viele Allzweck-E / A-Leitungen haben Sie?

Wenn Sie mit weniger E / A-Leitungen auskommen, können Sie vielleicht den E / A-Expander fallen lassen und die verwenden, die Sie haben? Sie können die Switches auf weniger als sechs E / A-Leitungen multiplexen. Wenn Sie Platz für 3 Dioden haben und Ihr Mikrocontroller über Tristate-Pins verfügt, können Sie mit nur 3 Pins auskommen.

Können Ihre Benutzer etwas Technisches verwalten?

Wenn Ihre Benutzer den Anweisungen folgen können und sich die Konfiguration nur selten ändert, können offene Klemmen vorhanden sein, an denen sie einen Widerstand einsetzen können. Sie würden den Widerstand mit einem ADC oder durch Messen der Zeitkonstante messen, die er gegen einen Kondensator erzeugt. Sie müssten in der Lage sein, 64 Widerstandswerte zu unterscheiden, was bei letzterem Ansatz schwierig sein könnte. Und natürlich müssten Ihre Benutzer die richtigen Widerstandswerte / Gehäusestile zur Hand haben.


Mit den Widerständen könnten Sie auch 2 Widerstände machen, dann brauchen Sie nur einen 4-Bit-A / D-Wandler und Sie brauchen weniger Widerstände zum Verteilen, also sparen Sie den Preis
Ferrybig

Ich habe meine Frage umformuliert. Es ist nicht unbedingt die Größe des DIP-Schalters, die mich betrifft, sondern die Notwendigkeit der zusätzlichen Komponente in Form eines E / A-Expanders. Abgesehen von meinem I2C-Bus habe ich nur noch 3 IOs.
PTS

Drei Drei-Zustands-E / A-Leitungen reichen aus, um sechs Schalter anzusprechen. Im Allgemeinen können Sie n ^ 2-n Schalter mit n E / A-Leitungen und n Dioden adressieren. Soll ich einen Schaltplan hinzufügen?
Jack B

7

Ein oder mehrere codierte Drehschalter sind das, wonach Sie suchen.

Theoretisch bieten Jumper mehr Konfigurationen, wenn Sie Hunderte von Optionen benötigen, da Benutzer eine beliebige Anzahl von Optionen in verschiedenen Konfigurationen kurzschließen, Widerstände, Kondensatoren, Dioden usw. hinzufügen können. Dies ist jedoch sehr technisch für Benutzer und für die Entschlüsselung der Karte!


Entschuldigung, ich muss Ihre Antwort verpasst haben, als ich meine hinzugefügt habe. In der Tat sind sie eine großartige Alternative zu DIP-Schaltern!
PTS

4

NFC NTAG vom NXP + Smartphone. Grundsätzlich handelt es sich um ein I2C-EEPROM, das auch ohne Systemstromversorgung über NFC gelesen und geschrieben werden kann.


2

Viele tolle Möglichkeiten hier! Noch etwas Unklares: Verwenden Sie einen IR-Empfänger und dann eine TV-Fernbedienung oder einen Computer, um über die Einstellungen zu strahlen. So machen es die RGB-Lichter.


1
IR liefert ein bisschen Energie, daher funktioniert es möglicherweise nur, wenn das Gerät selbst nicht mit Strom versorgt wird. Wie würden Sie dies bei Hardware erkennen?
MSalters

2

Während ich dies recherchierte, bekam ich eine Empfehlung für Drehschalter. Ihr Platzbedarf ist vergleichbar mit einem etwas äquivalenten 1,27-mm-DIP-Schalter. Obwohl sie meiner Meinung nach im Vergleich zu DIP / SIP-Switches eine weitaus bessere Benutzeroberfläche bieten.

Anstatt eine Dezimal- oder Hexadezimalzahl in eine Binärzahl umzuwandeln und eine Menge kleiner Schalter zu betätigen, können Sie einfach 1 oder 2 dieser Drehschalter drehen und mit Hexadezimalzahlen arbeiten. Es ist viel einfacher, einen Benutzer anzuweisen, E6 "einzugeben", als ihn anzuweisen, viele Schalter in einem bestimmten Muster zu betätigen.

Geben Sie hier die Bildbeschreibung ein


1

Ein anderer Ansatz könnte ein Drehgeber, ein EEPROM und 6 kleine LEDs sein.

Der Status wird im EEPROM gespeichert und die LEDs zeigen den aktuell ausgewählten Modus an.

Durch Drehen des Encoders wird zwischen den Modi gewechselt.

Wahrscheinlich sparen Sie auch nicht viel Platz - Ihr typischer Encoder hat eine 6-mm-Welle und dann benötigen Sie auch Platz für die LEDs.

Nur einen einzigen Drehschalter zu verwenden, sieht nicht vielversprechend aus. Bei 64 Positionen würden Sie knapp 6 ° pro Position haben, da Sie das Gefühl haben oder dass das Beschriften schwierig wird.


Lesen Sie einfach Ihren Kommentar @Trevors Antwort, so ist dieser Ansatz auch nutzlos.


Trotzdem würde Ihre Idee zumindest nicht erfordern, dass das gesamte System gestartet wird. Ich habe das als akzeptablen Weg zur Frage hinzugefügt.
PTS

Ein winziger Druckknopf mit den LEDs zum Radfahren könnte jedoch funktionieren. Ich wette, das ist die Art und Weise, wie sie Tricorder in Star Trek TNG
PlasmaHH am

1

Drei Optionen.

  1. Analog. Ein einstellbarer Spannungsteiler. Der Benutzer liefert seine eigenen Standardwiderstände im Bereich von 5%, um den Wert einzustellen.

  2. PWM. Eine optisch isolierte PWM- oder RC-Schaltung mit 64 Schritten, die Ihr Gerät liest. Sie können separat oder von derselben Quelle mit Strom versorgt werden. Da sie jedoch optisch isoliert sind, ist Ihr Gerät nicht eingeschaltet. Sie können die PWM-Schaltung nach dem Start deaktivieren.

  3. Digital. Ein digitales Potentiometer mit Druckknopfsteuerung. Auch hier kann die Schaltung unabhängig von Ihrem Gerät mit Strom versorgt werden.


1

Daumenradgeber? Diese reichen von 0 bis 9, sind stapelbar und haben Binärausgänge:

Daumenrad-Encoder


2
Ist das wirklich kleiner als ein SMD DIP-Switch?
Pipe

Autsch, nein. Es ist ungefähr so ​​groß wie meine Unfähigkeit, eine einfache Frage zu lesen ... Bitte stimmen Sie ab, wie Sie es für richtig halten. Tut mir leid, dass ich deine Zeit verschwende.
Peter

0

Sie können jederzeit das I2C oder eine andere Schnittstelle, möglicherweise USB, herausbringen und den Benutzer sein Telefon mit einer benutzerdefinierten App anschließen lassen, mit der Sie eine interne EEPROM-Adresse konfigurieren können.

Die Verwendung einer Telefonanwendung kann jedoch recht problematisch sein. Sie müssten die App unterstützen und sich über die neuesten Technologien auf dem Laufenden halten, und Sie müssten viele Telefonanbieter unterstützen.

Oder Sie können einen benutzerdefinierten "Dongle" liefern, der angeschlossen wird, damit Sie ähnliche Aktionen ausführen können.

Aber ich bezweifle, dass es Ihnen viel Platz sparen würde.

Wenn Sie andere Benutzereingaben haben, z. B. zwei oder drei Tasten und eine Art Anzeige, können Sie das Gerät bei entsprechender Benutzereingabe auf den Tasten (Haltezeit usw.) auch in einen Programmiermodus versetzen und konfigurieren dieser Weg. Das Gleiche gilt für Haushaltsgeräte wie Thermostate, Wasserenthärter, Dosencomputer usw.

Mit zwei oder drei Tasten und einer LED können Sie eine Menge tun.

Wenn es konfiguriert werden muss, während es nicht mit Strom versorgt wird, stecken Sie ziemlich fest mit Schaltern oder Jumpern.


3
Die Verwendung einer Telefonanwendung kann sehr problematisch sein, da Telefone sehr volatil sind. Ein eingebettetes System kann problemlos 5 bis 10 Telefongenerationen überleben, und die Bereitstellung von Support für den gesamten Zeitraum kann problematisch sein.
AndrejaKo

@ AndrejaKo guter Punkt .. gut genug für ein Hinzufügen :)
Trevor_G

3
Leider erfordert die Anwendung, dass der Benutzer die Konfiguration ändern kann, ohne dass die Schaltung eingeschaltet ist. Daher muss sie mechanisch konfigurierbar sein. Einige interessante Ideen.
PTS

2
@PTS dann stecken Sie so ziemlich mit Schaltern oder Jumpern fest.
Trevor_G
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.