Skip to Content

Eingabegeräte für Arduino und andere MCUs – Ein vollständiger Überblick

Eingabegeräte für Arduino und andere MCUs – Ein vollständiger Überblick

Eingabegeräte ermöglichen es dem Arduino und anderen Mikroprozessoren, mit der Welt zu interagieren. Ohne sie würde ein Arduino einfach sein Programm ausführen, ohne auf die externe Umgebung oder Benutzerbefehle reagieren zu können.

Hier geben wir einen Überblick über die verschiedenen Arten von Eingabegeräten, die an einen Arduino oder ähnliche Mikroprozessoren angeschlossen werden können. Wir erläutern ihre Funktionsprinzipien und worauf man achten sollte.

Die Begriffe Eingaben und Sensoren überschneiden sich teilweise. Hier verwenden wir Eingaben für Signale, die aus der Interaktion von Mensch oder Maschine mit dem System stammen, zum Beispiel über Tasten, Schalter, Touch-Displays oder Potentiometer. Sensoren hingegen dienen zur Erfassung oder Messung von Umweltparametern wie Temperatur, Licht, Abstand oder Magnetfeldern.

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Eingabegeräte

Im Folgenden betrachten wir alle Arten von Eingaben, die durch menschliche Interaktion initiiert werden und die ein Arduino oder ähnlicher Mikroprozessor empfangen kann. Am häufigsten sind dies Tasten und Schalter, aber es gibt auch andere.

Tasten

Tasten gibt es in allen Formen, Größen und Farben. Unten sehen Sie ein Bild eines typischen Drucktasters, der beim Drücken die elektrische Verbindung zwischen seinen beiden Polen schließt und sonst offen ist.

Push button input device

Momentary Push Button Switch, 1A 250VAC SPST Mini Pushbutton Switches Normally Open ( NO ). 

Bei der Auswahl einer Taste als Eingabegerät sind mehrere Aspekte zu beachten. Zunächst natürlich die Größe und damit verbunden die Spannungs- und Strom- belastbarkeit der Taste. Für die Steuerung eines digitalen Eingangs an einem Arduino-Board reichen kleine Tasten, die bis zu 12 Volt und 0,1 Ampere schalten können. Sie sind sehr günstig, und es ist sinnvoll, eine Auswahl verschiedener Typen für unterschiedliche Anwendungen zu haben. Ich mag das unten gezeigte Set.

Different push button types

TWTADE 260pcs Micro Momentary Tact Switch Tactile Push Button Switch 26 Values 4 pin/3 pin/2 pin Assortment Kit QC-26V.

Betriebsart Ein/Aus
Strombelastbarkeit 0,1 Ampere
Betriebsspannung 12 Volt

Wenn Sie typische Lasten wie kleine Elektromotoren oder die Batterieversorgung Ihres Arduino schalten wollen, ist ein Schalter mit 12V und 1 bis 3A ausreichend. Beachten Sie, dass das Schalten von Geräten, die am Netz (110V – 220V) hängen, gefährlich ist! Sie müssen einen Schalter wählen, der für 110V oder 220V (je nach Land) und 5A oder mehr (je nach Last) ausgelegt ist.

Normalerweise offen oder geschlossen

Die meisten Tasten sind normalerweise offen (NO), wenn sie nicht gedrückt werden. Das bedeutet, dass kein elektrischer Strom fließt, wenn die Taste nicht betätigt ist. Dies ist der Typ, den wir üblicherweise verwenden. Es gibt aber auch Tasten, die normalerweise geschlossen (NC) sind, wenn sie nicht gedrückt werden.

Momentary vs. gehaltene Tasten

Die meisten Tasten sind Momentary-Tasten, das heißt, sie springen nach dem Loslassen in ihre Ausgangsposition zurück. Eine gehaltene Taste hingegen bleibt in der gedrückten Position, bis sie erneut betätigt wird, um zurückzukehren. Gehaltene Tasten werden meist verwendet, um elektrische Leistung ein- oder auszuschalten. Manche Tasten haben sogar drei Zustände wie EIN – AUS – AUS oder ähnlich.

Anzahl der Pole

Die meisten Tasten haben zwei Kontakte (auch Pole genannt), die zur Herstellung der elektrischen Verbindung dienen. Es gibt jedoch auch Tasten mit mehreren Polen und unterschiedlichen Schaltkonfigurationen. Mehr dazu im Abschnitt Schalter weiter unten.

Manche Tasten sind sogar beleuchtet und haben zusätzliche Kontakte, um die integrierte Beleuchtung mit Strom zu versorgen. Verwechseln Sie diese nicht!

Wichtige Überlegungen

Belastbarkeit

Der wichtigste Faktor bei der Auswahl einer Taste ist die korrekte Belastbarkeit. Die Taste muss die Spannung und den Strom des gesteuerten Stromkreises aushalten können. Achten Sie auch darauf, bei beleuchteten Tasten die richtige Spannung und Polarität zu verwenden.

Entprellung

Die Kontakte innerhalb der Taste bestehen aus Metall, das eine gewisse Elastizität besitzt. Dies führt dazu, dass die Kontakte bounce für kurze Zeit (einige Millisekunden) beim Drücken der Taste nicht sofort einen stabilen Kontakt herstellen, sondern mehrfach kurz auf- und abschalten. Wir erhalten keinen sauberen Übergang von offen zu geschlossen, sondern einen „prellenden“ Übergang. Siehe den Bouncing-Effekt unten:

Beim Auslesen des Tastenzustands mit einem Mikrocontroller kann dies dazu führen, dass mehrere Tastendrücke erkannt werden, obwohl nur einer erfolgt ist. Typischerweise müssen Sie entweder spezifischen code for debouncing für eine Taste schreiben oder eine debouncing circuit verwenden, die einen Widerstand und einen Kondensator enthält. Wir haben ein Beispiel dazu in how to connect a push button to an Arduino.

Pull-up-Widerstände

Wenn eine Taste offen ist (nicht gedrückt), kann der Pin, an den sie angeschlossen ist, zwischen hohen und niedrigen Zuständen „schweben“, weil er nicht mit einer definierten Spannung verbunden ist. Dieser „schwebende“ Zustand kann zu unvorhersehbaren Messwerten führen, da der Pin im Grunde als Antenne wirkt, die elektromagnetische Wellen aus der Umgebung aufnimmt.

Wir können pull-up resistors verwenden, um den Pin mit der Spannungsversorgung (meist 5V oder 3,3V) zu verbinden. So ist der Pin in einem definierten Zustand (HIGH), wenn die Taste nicht gedrückt ist. Viele Arduino-Boards haben eingebaute Pull-up-Widerstände, die per Software mit pinMode(pin, INPUT_PULLUP) aktiviert werden können.

Es ist jedoch immer ratsam, auf Nummer sicher zu gehen und einen Pull-up-Widerstand hinzuzufügen. So können Sie Ihre Schaltung mit verschiedenen Boards oder an Pins verwenden, die keine internen Pull-up-Widerstände haben.

Strombegrenzungswiderstände

Obwohl nicht immer notwendig bei Verwendung von Pull-up- oder Pull-down-Widerständen, ist es manchmal sinnvoll, einen current limiting resistor in Reihe mit einer Taste zu schalten, besonders wenn sie direkt an Stromversorgung und Masse angeschlossen wird. Dies verhindert einen zu hohen Stromfluss beim Drücken der Taste.

Logikpegel

Schließlich müssen wir auf die different logic levels des Arduino (meist 5V) und anderer gängiger MCUs wie dem ESP32 achten, der mit 3,3V arbeitet. Zum Beispiel kann das Anschließen von 5V an einen 3,3V-Eingang des ESP32 den Chip beschädigen. Ebenso kann die Verwendung von mehr als 5V an einem Arduino-Eingang Schaden verursachen. Die erwähnten Strombegrenzungswiderstände bieten hier einen gewissen Schutz.

Schalter

Ähnlich wie Tasten gibt es Schalter in allen möglichen Formen und Größen. Unten ein typischer kleiner Schalter, der zum Schalten von logischen Eingängen oder kleinen Lasten verwendet werden kann:

A simple switch as input device

Chanzon SPDT Mini Micro Slide Switch 2 Positions.

Hinweis : Wählen Sie solche mit einem Pin-Abstand von 2,54 mm (0,1″) für Breadboard-Kompatibilität.

Momentary vs. gehaltene / rastende Schalter

Schalter sind im Grunde dieselben Eingabegeräte wie Tasten – und manchmal werden Tasten auch als Schalter bezeichnet. Während die am häufigsten verwendeten Tasten Momentary-Tasten sind, sind Schalter typischerweise gehaltene oder rastende Typen.

Es gibt jedoch auch Momentary-Schalter. Ein Momentary-Typ, den ich häufig verwende, ist dieser Mikroschalter, der sehr wenig Kraft zum Betätigen benötigt und sich gut eignet, um Kollisionen (bei Robotern) oder das Öffnen/Schließen von Türen zu erkennen:

A micro switch

Cylewet 25Pcs AC 1A 125V 3Pin SPDT Limit Micro Switch Long Hinge Lever.

Bei genauerem Hinsehen erkennt man die Markierungen C (Kontakt), NO (normal offen) und NC (normal geschlossen) an den Pins. Dies ist ein SPST (Single Pole, Single Throw) Schaltertyp, zu dem wir im nächsten Abschnitt mehr sagen.

Kontaktbezeichnungen

Ein weiterer Unterschied zwischen Schaltern und Tasten ist, dass Schalter oft viel mehr Variationen in der Pole- und Throw-Konfiguration haben.

Pole bezeichnet die Anzahl der getrennten Stromkreise, die der Schalter steuern kann. Es ist im Grunde die Anzahl der unabhängigen Eingänge eines Schalters. Throw bezeichnet die Anzahl der verfügbaren Pfade für jeden Pol. Es beschreibt, wie viele Ausgangsverbindungen jeder Pol haben kann oder „geschaltet“ werden kann.

Die gebräuchlichste Konfiguration, ein einfacher Schalter, hat die SPST (Single Pole, Single Throw) Konfiguration.

Ein Schalter mit zwei Polen und einem Wurf heißt DPST (Double Pole, Single Throw).

Einen DPST-Schalter, den ich in vielen Projekten verwendet habe, ist der folgende. Obwohl er klein ist, kann er eine beträchtliche Last schalten und ist definitiv ausreichend, um beispielsweise Batteriestrom zu schalten. Beachten Sie, dass dieser nicht in ein Breadboard gesteckt werden kann.

A DPDT switch as input device

RuoFeng DPDT Toggle Switch AC 125V 6A Amps ON/ON 6 Terminals 2 Position

Gängige Konfigurationen

Unten finden Sie eine Liste gängiger Pole- und Throw-Konfigurationen für Schalter. Je nach Anwendung wählen Sie den passenden Typ, wobei die am häufigsten benötigten wahrscheinlich SPST- und DPST-Schalter sind.

Abkürzung Name Beschreibung
SPST Single Pole Single Throw Ein einfacher Ein/Aus-Schalter
SPDT Single Pole Double Throw Ein Schalter, der den Strom von einem Pfad auf einen anderen umleiten kann
DPST Double Pole Single Throw Zwei Ein/Aus-Schalter, die von einem Mechanismus gesteuert werden
DPDT Double Pole Double Throw Steuert zwei Stromkreise und hat für jeden zwei Pfade
3PST Triple Pole Single Throw Drei Ein/Aus-Schalter, die von einem Mechanismus gesteuert werden
3PDT Triple Pole Double Throw Steuert drei Stromkreise, jeweils mit zwei Pfaden
4PST Quadruple Pole Single Throw Vier Ein/Aus-Schalter, die von einem Mechanismus gesteuert werden
4PDT Quadruple Pole Double Throw Steuert vier Stromkreise, jeweils mit zwei Pfaden

Wichtige Überlegungen

Die wichtigsten Überlegungen für Schalter sind dieselben wie für Tasten. Stellen Sie sicher, dass der Schalter die passende Belastbarkeit für die angeschlossene Last hat. Wenn der Schalter logische Eingänge schaltet, sind Entprellung, Pull-up-Widerstände und gegebenenfalls Strombegrenzungswiderstände ratsam. Achten Sie auch auf die korrekten Logikpegel (3,3V vs. 5V) für Eingänge.

Touch-Tasten

Touch-Tasten sind Eingabegeräte, die für die Erkennung von menschlicher Berührung ausgelegt sind. Der gebräuchlichste Typ misst Kapazität, die sich ändert, wenn das Sensorelement von einem Finger (oder einem metallischen Objekt) berührt wird. Der ESP32 has touch sensor pins benötigt keine zusätzliche Schaltung zur Berührungserkennung. Für Arduino und andere MCUs, die keine direkte Touch-Sensor-Unterstützung haben, sind Touch-Sensormodule erhältlich. Unten ein Beispiel für ein gängiges Touch-Sensormodul:

A touch sensor as input device

BAEASU TTP223 TTP223B Capacitive Touch Sensor Switch Module, Self-Lock Switch Button Module

sind easy to connect and to use. Im Vergleich zu mechanischen Tasten und Schaltern haben sie den Vorteil, dass sie in ein Gehäuse eingekapselt werden können und somit vollständig vor Staub oder Wasser geschützt sind. Die meisten Typen erlauben auch die Konfiguration eines rastenden oder momentanen Verhaltens, das heißt, das Ausgangssignal bleibt nach einer Berührung hoch oder nicht.

Wichtige Überlegungen

Beim Einsatz von Touch-Sensormodulen sind einige Aspekte zu beachten. Erstens sind sie weniger für Niedrigstromanwendungen geeignet, da sie Strom verbrauchen. Sie sind auch anfälliger für elektromagnetische Störungen und versehentliche Aktivierungen. Schließlich gibt es kein taktiles Feedback, aber die meisten Module verfügen über eine integrierte LED, die den Schaltzustand anzeigt.

Tastaturen

Tastaturen oder Keypads sind im Grunde rechteckige Anordnungen mehrerer Tasten. Üblicherweise sind die Tasten mechanisch oder kapazitiv. Unten ein Bild eines typischen 4×4-Keypads mit mechanischen Membranschaltern:

A  4x4 keypad as input device

DEVMO 2PCS 4 x 4 Matrix Array 16 Key Membrane Switch Keypad Keyboard

Da die Anzahl der Tasten oft größer ist als die verfügbaren Eingänge am Arduino, werden sie nicht einzeln adressiert. Stattdessen wird ein Keyboard-Matrix-Adressierungsschema verwendet. Es organisiert die Tasten in Spalten (C1…C4) und Reihen (R1…R4):

A keypad address matrix

Für ein 4×4-Keypad mit 16 Tasten reduziert sich so die Anzahl der benötigten GPIO-Eingänge von 16 auf 8. We have a tutorial on how to connect a keypad to an Arduino.

Wichtige Überlegungen

Keypads, besonders größere, beanspruchen viele wertvolle GPIO-Pins. Mit I2C communication und einem passenden IO-Erweiterungsmodul lässt sich dieses Problem jedoch lösen. Ein Erweiterungsmodul wie das unten gezeigte benötigt nur die zwei Pins des I2C-Busses (SCL & SDA), um 8 I/O-Kanäle zu steuern.

An IO expansion board

HiLetgo 2pcs PCF8574 PCF8574T IO Expansion Board I/O Expander I2C Evaluation Develop Module

Das I2C Keypad library bietet fertige Software, um ein 4×4, 5×3, 6×2, 8×1 oder kleineres Keypad an ein PCF8574 basiertes Erweiterungsmodul anzuschließen. Nicht nur Arduino, sondern auch ESP32 und viele andere MCUs unterstützen den I2C-Bus.

Touchscreens

Eine Alternative zu einem Keypad als Eingabegerät ist ein Touchscreen. Touchscreens sind meist TFT-Displays mit resistiver oder kapazitiver Touch-Erkennung. Die resistiven Typen benötigen Druck auf den Bildschirm, um die Berührung zu erkennen. Ein häufig verwendetes resistives Touchdisplay ist das folgende von ELEGOO:

A touchscreen display as input device

ELEGOO UNO R3 2.8 Inches TFT Touch Screen with SD Card Socket

Die Steuerung eines Touchscreens mit einem Arduino ist natürlich komplexer als die eines einfachen Keypads. Wir haben jedoch ein Tutorial zu how to interface an Arduino with a touchscreen display.

Wichtige Überlegungen

Abgesehen von der höheren Komplexität sind Touchscreens generell weniger robust als Keypads und zerkratzen leicht. Sie verbrauchen aktiv Strom, während Keypads passive Eingabegeräte sind. Außerdem ist die Rechenlast für den Betrieb eines Touchscreen-Displays deutlich höher als bei einem Keypad. Das bedeutet auch, dass ein Touchscreen in der Regel nicht so reaktionsschnell ist wie ein Keypad.

Drehgeber (Rotary Encoders)

Drehgeber sind Eingabegeräte, die eine Drehung in digitale Codes umwandeln. Sie geben typischerweise zwei digitale Signale oder Impulse aus, oft als ‚DT‘ und ‚CLK‘ (oder ‚A‘ und ‚B‘) bezeichnet. Diese Impulse sind meist um 90° phasenverschoben. Durch Überwachen dieser beiden Signale können wir die Menge und Richtung der Drehung bestimmen.

Unten ein gängiges Drehgeber-Modul, geeignet für Arduino, mit 20 Impulsen pro Umdrehung und einem zusätzlichen Druckknopf.

A rotary encoder as input device

HiLetgo 5pcs 360 Degrees Rotary Encoder Module

Typische Anwendungsfälle für Drehgeber sind digitale Lautstärkeregelung, Auswahl von (Menü-)Funktionen sowie Überwachung von Motor-Geschwindigkeit, Position und Richtung. Sie sind einfach zu verwenden, und wir haben ein Tutorial, wie man how to interface a rotary encoder with an Arduino.

Wichtige Überlegungen

Die meisten Drehgeber sind mechanisch ähnlich wie Schalter. Daher müssen wir dieselben potenziellen Probleme wie bei Schaltern berücksichtigen, wie Entprellung, Pull-up-Widerstände und Logikpegel (3,3V vs. 5V). Außerdem muss der Arduino bzw. der Code schnell genug sein, um keine Impulse zu verpassen, wenn wir per Polling die Impulse überwachen. Schließlich variieren Drehgeber in ihrer Auflösung (Impulse pro Umdrehung). Wir müssen einen Encoder mit ausreichender Auflösung für unsere Anwendung wählen.

Potentiometer

Bisher waren alle vorgestellten Eingabegeräte digitale Eingabegeräte. Sie erzeugen digitale Signale (HIGH, LOW) und werden an digitale GPIO-Pins angeschlossen. Potentiometer hingegen sind analoge Eingabegeräte. Hier ist unser Tutorial zu how to control an LED with a potentiometer.

Intern ist ein Potentiometer ein dreipoliger Widerstand mit einem gleitenden oder drehenden Kontakt, der einen einstellbaren Spannungsteiler bildet. Typische Widerstandswerte für Potentiometer sind 10K Ω oder 100K Ω . Unten ein Beispiel für ein häufig verwendetes 10K-Potentiometer:

A Potentiometer as input device

HiLetgo 20pcs WH148 Single-Joint Potentiometer 10K B10K Variable Resistors

Wichtige Überlegungen

Stellen Sie sicher, dass das Potentiometer an einen analogen GPIO-Pin (A0, …) angeschlossen ist und verwenden Sie analogRead(), um den Eingabewert auszulesen. Da sich der Widerstand des Potentiometers mit der Temperatur ändern kann, wird sich der Eingabewert verändern, wenn das Potentiometer wärmer oder kälter wird. Außerdem sehen Sie Schwankungen im Eingabewert durch elektromagnetische Störungen, die von den Leitungen aufgenommen werden. Schließlich ist die Auflösung durch den Analog-Digital-Wandler (ADC) des Mikrocontrollers begrenzt.

Joysticks

Ein Joystick besteht aus zwei Potentiometern, die senkrecht zueinander angeordnet sind (X, Y) und über einen zentralen Hebel oder Knopf gesteuert werden. Unten ein gängiges Joystick-Modul für Arduino:

Joystick as input device

WWZMDiB 6Pcs Dual-Axis Button Joystick Module

Ein typischer Joystick liefert Eingaben über seine Position entlang der Achsen, meist X (horizontal) und Y (vertikal), als analoge Werte. Viele haben auch einen zusätzlichen Schalter (Feuertaste), der ein digitales Signal erzeugt. Siehe unser Tutorial zu how to use a joystick with an Arduino.

Wichtige Überlegungen

Beachten Sie, dass es vereinfachte Joysticks gibt, die keine Potentiometer, sondern Schalter zur Richtungsanzeige verwenden. Diese sind digital. Andererseits gibt es auch Joysticks mit mehr als zwei Achsen, zum Beispiel zur Steuerung von X-, Y- und Z-Richtungen. Beim Anschluss eines Joystick-Moduls an Ihren Mikroprozessor stellen Sie sicher, dass die Logikpegel übereinstimmen (3,3V vs. 5V). Die analogen Ausgänge müssen an analoge Eingänge (A0, A1) angeschlossen und mit analogRead() ausgelesen werden, während der Schalter an einen digitalen Eingang angeschlossen und mit digitalRead() gelesen wird.

USB-Maus

Sie können eine USB-Maus nicht direkt an einen Arduino anschließen und als Eingabegerät verwenden. Sie benötigen ein USB-Shield, wie das unten gezeigte (speziell für das von Ihnen verwendete Arduino-Board):

USB shield

ARCELI USB Host Shield for Arduino UNO MEGA 2560

Hier ist ein Tutorial zu how to connect a mouse to an Arduino using a USB shield.

Wichtige Überlegungen

Im Allgemeinen sind Sie besser beraten, einen Joystick an einen Arduino anzuschließen, als zu versuchen, eine USB-Maus über ein USB-Shield zu verbinden. Sie können Ihre eigene Maus bauen, indem Sie zwei Drehgeber verwenden oder die Drehgeber in einer (alten) mechanischen Maus direkt auslesen.

Zusammenfassung

Hier haben wir Ihnen einen Überblick über die verschiedenen Arten von Eingabegeräten gegeben, die häufig mit Arduino und ähnlichen Mikrocontrollern verwendet werden. Für weitere Details zur Verbindung dieser Geräte schauen Sie sich unser Articles on inputs and sensors und die Links im Beitrag an. Wir haben auch ein overview article on all the different types of sensors you can connect to an Arduino.