Alternativen zu einem klassischen DIP-Schalter

Ich suche nach einem Teil, das es einem Benutzer ermöglicht, häufig eine Konfiguration zu ändern. 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 eher langweilige Benutzeroberfläche. Gibt es DIP-Schalter oder etwas, das die gleiche Funktion erfüllt, mit der ich über einen digitalen Bus wie I2C sprechen kann, um seinen Zustand zu lesen?

Ich bin auch offen für ganz andere Herangehensweisen. Alles, was ich brauche, ist etwas, das mechanisch dauerhaft 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 ein visuelles Feedback der genauen Konfiguration liefert. Die Schaltung kann nur eingeschaltet werden, wenn die Konfiguration und das visuelle Feedback eigenständig sind, ohne dass eine Steuerung durch einen Mikrocontroller oder SoC erforderlich ist.

Die Frage hängt etwas mit dieser Frage von vor 6 Jahren zusammen: Austausch der DIP-Schalter

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, sehen Sie sich alle Antworten an.

Wenn es schick sein soll, schalte das Bluetooth-Modul ein und stelle alle Schalter per Smartphone ein.
Mein erster Gedanke ist, dass es nicht der tatsächliche Fußabdruck ist, der einen DIP-Schalter groß macht; Es sind die eigentlichen Schalter. Der Wechsel zu einem seriellen Protokoll würde es nicht unbedingt kleiner machen.
Könnten Sie Ihren Benutzern beibringen, in Hex zu zählen und ein oder zwei davon zu verwenden ?
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 "digitale DIP-Schalter" gibt, wäre das großartig.
Oft benötigt ein DIP-Schalter keine zusätzlichen Pins. Vielleicht können Pins geteilt werden, wenn Sie ein bisschen schlau sind.
Wie viel kleiner als ein kleines Gehäuse mit 6 Schaltern kann es Ihrer Meinung nach hergestellt werden, bevor es nicht mehr mechanisch manipulierbar ist?
Wie regelmäßig hantieren Benutzer an den Schaltern? Würde ein Breakout-Board-Ding funktionieren?
Ich sage, verwenden Sie keine DIP-Schalter. Wenn Sie sie bereitstellen, werden die Benutzer damit herumspielen, was dazu führt, dass die Dinge nicht funktionieren.

Antworten (11)

Anstelle eines DIP könnte man auch einen SIP-Switch verwenden. Die Einsparung von Platinenfläche würde Ihnen Platz für Ihre I2C-Schnittstelle (oder eine einfachere Schnittstelle wie ein Schieberegister mit Eingangslatch) geben:

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.
Es kann SMD-Versionen geben. SMD-SIP-Gehäuse haben normalerweise versetzte Füße.
SMD könnte eine Herausforderung sein, Apem (die das auf dem Bild machen) machen sie nicht, ich kann mich nicht erinnern, sie irgendwo anders gesehen zu haben. Normalerweise habe ich sie in der Nähe des Randes der Leiterplatte, wo das Routing nicht immer so wichtig ist.

"DIP Schalter

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

CHS-06TAGeben Sie hier die Bildbeschreibung ein

Potentiometer

Wenn Sie verzweifelt den Platzbedarf 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 unterscheiden zu können, vorausgesetzt, einige elektrische und Software-Filter und Schwellenwerte. Hier ist eine 2 x 2 mm Lösung:

PVF2A

Ich habe jedoch noch nie ein analoges Potentiometer mit 64 physikalischen Arretierungen gesehen. Das bedeutet, dass Sie bei der Konfiguration des Geräts kein verlässliches taktisches Feedback für den Benutzer haben. Es ist auch schwierig, die richtige Einstellung beim Booten zuverlässig zu finden, da sie direkt auf einer Schwelle zwischen zwei Einstellungen belassen werden kann - ich würde die vorherige Einstellung in einem EEPROM speichern, und wenn das Potentiometer beim Booten nah genug am gespeicherten Wert ist, I würde sie als gleich ansehen.

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

Interessante Idee mit dem Potentiometer. Visuelles Feedback der genauen Einstellung wäre jedoch wichtig.
Mini-Drehgeber sind erhältlich, ähnliches Profil wie ein Trimmerpoti, aber mit binären Ausgängen, normalerweise 4-Bit / 16 Schritte, gekennzeichnet 0-F mit klaren Rasten.
@JohnU Sie benötigen zwei davon, was zu einer größeren Lösung führt.
Zwei davon (vielleicht eher aufrecht als flach) könnten das Verpacken erleichtern.
@PTS Wenn auf Ihrem Gerät bereits eine Art Anzeige vorhanden ist, können Sie die Software missbrauchen, um den Wert auszulesen und anzuzeigen. Angenommen, Sie haben bereits eine Art Konfigurationsmenü geladen, muss dies auch nicht viel Arbeit sein. Natürlich können Sie das Display nicht ablesen, wenn das Gerät ausgeschaltet ist.

Haben Sie einen Ersatz-ADC?

Wenn Sie einen freien 8-Bit-ADC auf einem Mikrocontroller in der Nähe haben, könnten Sie den IO-Expander wahrscheinlich zugunsten eines Widerstandsnetzwerks fallen lassen - entweder eine R-2R-Leiter oder eine binär gewichtete Leiter. Das würde die Schalterstellungen als analogen Pegel kodieren. Widerstandsleitern sind in sehr kleinen Paketen erhältlich, aber ich weiß nicht, ob Sie eines bekommen, das kleiner ist als Ihr I2C-Expander.

Wie viele Allzweck-IO-Leitungen haben Sie?

Wenn Sie mit weniger IO-Leitungen auskommen, können Sie vielleicht den IO-Expander fallen lassen und die verwenden, die Sie haben? Sie können die Schalter auf weniger als sechs IO-Leitungen multiplexen. Wenn Sie Platz für 3 Dioden haben und Ihr Mikrocontroller Tristate-Pins hat, dann können Sie mit nur 3 Pins auskommen.

Können Ihre Benutzer etwas Technisches verwalten?

Wenn Ihre Benutzer Anweisungen befolgen können und sich die Konfiguration nur selten ändert, könnten Sie offene Anschlüsse haben, an denen sie einen Widerstand einsetzen können. Sie würden den Widerstand mit einem ADC messen oder indem Sie die Zeitkonstante messen, die er gegen einen Kondensator macht. 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 müssen weniger Widerstände verteilen, sodass Sie den Preis sparen
Ich habe meine Frage umformuliert. Es ist nicht unbedingt die Größe der DIP-Schalter, die mich stört, sondern die Notwendigkeit der zusätzlichen Komponente in Form eines I/O-Expanders. Abgesehen von meinem I2C-Bus habe ich nur noch 3 IOs übrig.
Drei Tristate-IO-Leitungen reichen aus, um sechs Schalter anzusprechen. Im Allgemeinen können Sie n^2-n Schalter mit n IO-Leitungen und n Dioden ansprechen. Soll ich einen Schaltplan hinzufügen?

Dann sind Sie auf der Suche nach einem oder mehreren codierten Drehschaltern .

Theoretisch bieten Jumper mehr Konfigurationen, wenn Sie Hunderte von Optionen benötigen, da Benutzer eine beliebige Anzahl von ihnen in verschiedenen Konfigurationen kurzschließen, Widerstände, Kondensatoren, Dioden usw. hinzufügen können, aber das ist sehr technisch für Benutzer und für das Board zu entschlüsseln!

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!

NFC NTAG von NXP + Smartphone. Es ist im Grunde ein I2C-EEPROM, das auch ohne Systemstrom über NFC gelesen und beschrieben werden kann.

Bei der Recherche bekam ich eine Empfehlung für Drehkodierschalter. Ihr Footprint ist vergleichbar mit einem etwas äquivalenten 1,27-mm-Raster-DIP-Schalter. Obwohl sie meiner Meinung nach im Vergleich zu DIP/SIP-Schaltern eine weit überlegene Benutzeroberfläche bieten.

Anstatt eine Dezimal- oder Hexzahl in eine Binärzahl umwandeln und eine Menge kleiner Schalter umlegen zu müssen, können Sie einfach 1 oder 2 dieser Drehschalter drehen und mit Hexadezimalzahlen arbeiten. Es ist viel einfacher, einem Benutzer zu sagen, dass er E6 "betreten" soll, als ihn anzuweisen, viele Schalter in einem bestimmten Muster umzulegen.

Geben Sie hier die Bildbeschreibung ein

Hier gibt es viele tolle Möglichkeiten! Eine weitere etwas obskure: Verwenden Sie einen IR-Empfänger und verwenden Sie dann eine TV-Fernbedienung oder einen Computer, um die Einstellungen zu übertragen. So machen es die RGB-Leuchten.

IR liefert ein wenig Energie, daher funktioniert es möglicherweise nur, wenn das Gerät selbst nicht mit Strom versorgt wird, aber wie würden Sie das in der Hardware realisieren?

Daumenrad-Encoder? Diese reichen von 0 bis 9, sind stapelbar und haben binäre Ausgänge:

Daumenrad-Encoder

Ist das wirklich kleiner als ein SMD-DIP-Schalter?
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.

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

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

Durch Drehen des Encoders wird zwischen den Modi umgeschaltet.

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

Nur einen einzigen Drehschalter zu verwenden, sieht nicht vielversprechend aus. Bei 64 Positionen würden Sie am Ende knapp 6° pro Position haben, oder das Etikettieren wird schwierig.


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

Trotzdem danke, Ihre Idee würde zumindest nicht erfordern, dass das gesamte System gebootet wird. Ich habe das als akzeptablen Weg zur Frage hinzugefügt.
Ein winziger Taster mit den LEDs zum Radfahren könnte jedoch funktionieren. Ich wette, auf diese Weise werden Tricorder in Star Trek TNG neu programmiert

Drei Optionen.

  1. Analog. Ein einstellbarer Spannungsteiler. Der Benutzer stellt seine eigenen standardmäßigen 5 %-Bereichswiderstände bereit, um den Wert einzustellen.

  2. PWM. Eine optoisolierte PWM- oder RC-Schaltung mit 64 Schritten, die Ihr Gerät liest. Sie können separat oder von derselben Quelle mit Strom versorgt werden, aber da es optoisoliert ist, wird Ihr Gerät nicht eingeschaltet sein. Sie können die PWM-Schaltung nach dem Booten deaktivieren.

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

Sie könnten immer das I2C oder eine andere Schnittstelle, vielleicht USB, herausbringen und den Benutzer sein Telefon mit einer benutzerdefinierten App verbinden lassen, mit der Sie eine interne EEPROM-Adresse konfigurieren können.

Die Verwendung einer Telefonanwendung kann jedoch ziemlich problematisch sein. Sie müssten die App unterstützen und mit den neuesten Technologien auf dem Laufenden bleiben, und Sie müssten viele Telefonanbieter unterstützen.

Oder Sie könnten einen benutzerdefinierten "Dongle" liefern, der eingesteckt wird und Sie ähnliches tun 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, ist es auch möglich, durch entsprechende Benutzereingaben an den Tasten (Haltezeit usw.) das Gerät in einen Programmiermodus zu versetzen und es zu konfigurieren dieser Weg. Das Gleiche sehen Sie auf Haushaltsgeräten wie Thermostaten, Wasserenthärtern, Dosencomputern usw.

Mit zwei oder drei Tasten und einer LED kann man verdammt viel machen.

Wenn es im stromlosen Zustand konfiguriert werden muss, stecken Sie mit Schaltern oder Jumpern ziemlich fest.

Die Verwendung einer Telefonanwendung kann ziemlich problematisch sein, da Telefone sehr volatil sind. Ein eingebettetes System kann leicht 5 bis 10 Telefongenerationen überleben, und die Bereitstellung von Support für den gesamten Zeitraum kann problematisch sein.
@AndrejaKo guter Punkt.. gut genug für eine Ergänzung :)
Leider erfordert die Anwendung, dass der Benutzer die Konfiguration ändern kann, ohne dass die Schaltung eingeschaltet ist, weshalb ich sie mechanisch konfigurieren muss. Einige interessante Ideen.
@PTS, dann stecken Sie ziemlich fest mit Schaltern oder Jumpern.