Ich plane, eine kinderfreundliche "Universalfernbedienung" zu bauen, damit die Kinder unzählige IR-gesteuerte Geräte mit ein oder zwei einfachen Drücken ein- und ausschalten können ...
Die Fernbedienung wird vielleicht 20 große, klobige Tasten haben, die, wenn sie gedrückt werden, die mehreren IR-Signale an alle notwendigen Geräte senden, um beispielsweise den Kinderkanal einzuschalten, die Wii einzurichten usw. usw.
Die meisten Tasten sind in einem Gittermuster angeordnet, aber einige können für Auf/Ab/Links/Rechts, Eingabe usw. verwendet werden.
Ich werde einen Arduino Pro Mini oder Uno als uC verwenden.
Gibt es clevere Möglichkeiten, diese Tasten zu verdrahten? Eine Gitterschaltung? Analogeingänge mit unterschiedlichen Widerständen zwischen den einzelnen Tasten? Ein IC, das die Arbeit erleichtert?
Du hast sie im Grunde alle aufgelistet.
Eine Matrix aus x Zeilen und y Spalten. Sie benötigen x + y-Pins.
Digitaler GPIO-Expander-IC, vorzugsweise mit Interrupt. I2C, SPI, sogar Seriell sind verfügbar. Interrupt-Pins ermöglichen es Ihnen, bei Interrupts zu lesen, anstatt abzufragen. Sie müssen über Hardware-I2C/SPI/UART verfügen oder Softwarecode hinzufügen. Dieser Ansatz wird hauptsächlich verwendet, wenn Sie viel mehr GPIO benötigen, als Sie auf dem Hauptmikrocontroller zur Verfügung haben. An diesem Punkt verwenden Sie im Grunde immer noch die Optionen 1, 3 und 4 oder die direkte eine Taste pro Pin.
Widerstandsleiter. Sie benötigen einen ADC und ständige Abfragen. Es ist besser, auf mehreren ADC-Kanälen in ein paar ähnliche Gruppen aufzuteilen, aber Sie können eine große 20-Tasten-Gruppe erstellen, wenn Sie wirklich müssen.
Charlieplexing . Wie eine Multiplex-Matrix (#1), aber mit Wo ist die Anzahl der verwendeten Pins. Benötigt so viele Dioden wie Tasten, sodass Sie die Pin-Anzahl für Dioden ändern. Sie könnten jedoch LEDs verwenden.
Meistens ist Nr. 1 die gebräuchlichste Methode. Jedes Tastatur- oder Tonwahltelefon, das Sie jemals benutzt haben, 1000 zu 1, hätte es benutzt. Zur Hölle, sogar Mobiltelefone verwenden es (insbesondere das mir bekannte Nokia 5110 verwendet es). Für 20 Tasten benötigt eine 4x5-Matrix nur 9 Pins, mehr als genug.
Texas Instruments stellt einen i2C-Keypad-Encoder her . Oberflächenmontage. Viel einfacher geht es nicht.
Ein IC, das die Arbeit erleichtert?
Der LM8330 I/O - Expander und Keypad Controller ist ein dediziertes Gerät, das entwickelt wurde, um einen Host-Prozessor vom Scannen einer matrixadressierten Tastatur zu entlasten und flexible und universelle, vom Host programmierbare Eingangs-/Ausgangsfunktionen bereitzustellen. Für die dynamische LED-Helligkeitsmodulation stehen drei unabhängige PWM-Timerausgänge (Pulse Width Modulation) zur Verfügung.
Es kommuniziert mit einem Host-Prozessor über eine I 2 C-kompatible serielle ACCESS.bus-Schnittstelle. Es kann nur im Standard- (100 kHz) und Fast-Modus (400 kHz) im Slave-Modus kommunizieren.
Damit können Sie wahrscheinlich mit einem ATtinyX5 anstelle eines ATmega davonkommen.
Superkatze
Passant
Superkatze
AMADANON Inc.