Potentiometer und Drehgeber sehen auf den ersten Blick fast gleich aus, funktionieren aber unterschiedlich. Entdecken Sie, wie Sie beides mit einem Arduino verwenden können.
Unter den elektronischen Benutzersteuerungskomponenten stechen Drehknöpfe als einige der befriedigendsten hervor. Sie können Touchscreens und andere Eingabegeräte ergänzen und gut mit Tasten und Schaltern zusammenarbeiten. Aber wie können Sie Ihren eigenen DIY-Arduino-Projekten einen Knopf hinzufügen?
Sie haben zwei Hauptoptionen: ein Potentiometer oder einen Drehgeber. Diese Komponenten mögen ähnlich aussehen, aber die Methoden, sie mit einem Gerät wie einem Arduino-Mikrocontroller-Board zu verwenden, sind sehr unterschiedlich. Mal sehen, wie sie sich vergleichen.
Potentiometer vs. Drehgeber
Die meisten Potentiometer und Drehgeber, denen Heimwerker begegnen werden, haben einen ähnlichen Formfaktor. Sie haben eine quaderförmige oder zylindrische Basis mit daran befestigten Verbindungsbeinen und einen runden Schaft, der sich dreht und Aussparungen für eine Kappe zum Aufsetzen hat.
Einige Potentiometer sehen anders aus, beispielsweise solche, die in Form langer Schieber vorliegen, wie sie auf Musikmischpulten zu finden sind. Wenn es jedoch um die Drehgeber geht, sehen sie auf den ersten Blick fast identisch mit Drehgebern aus, sodass Sie denken, dass sie gleich sind.
Was ist ein Potentiometer?
Ein Potentiometer ist im Wesentlichen ein variabler Widerstand. Wenn die Welle gedreht wird, ändert sich der Widerstand im Inneren des Potentiometers, sodass ein Benutzer die Eigenschaften einer Schaltung ändern kann, ohne sie neu aufbauen zu müssen. Potentiometer können sowohl analog als auch digital sein, aber digitale Potentiometer ahmen analoge nach und sind daher sehr ähnlich zu verwenden.
Potentiometer haben immer einen definierten Start- und Endpunkt, an dem sich die Welle nicht mehr drehen lässt. Einige Potentiometer fühlen sich beim Drehen holprig an, aber viele sind auch glatt, wie sie bei alten Stereoanlagen zu finden sind.
Obwohl Potentiometer analog sind, funktionieren sie gut mit Mikrocontrollern. Sie können leicht Richten Sie ein Potentiometer mit einem Raspberry Pi Pico ein oder Arduino.
Was ist ein Drehgeber?
Drehgeber bestimmen die Position ihrer Welle mithilfe eines Sensors, um ein analoges oder digitales Signal an das Gerät zu liefern, an das sie angeschlossen sind. Dadurch wird dem Gerät mitgeteilt, in welcher Position sich der Encoder befindet. Neben der rotierenden Welle haben Drehgeber meist auch einen eingebauten Taster, der durch Drücken der Welle nach unten betätigt wird.
Im Gegensatz zu Potentiometern können sich Drehgeber ohne Unterbrechung drehen, und sie haben fast immer fühlbare Unebenheiten für jede Position der Welle. Viele moderne Autos verwenden Drehgeber, um ihre Unterhaltungssysteme zu steuern.
So verwenden Sie ein Potentiometer mit einem Arduino
Dank ihres einfachen Designs ist die Verwendung eines Potentiometers mit einem Arduino einfach. Ihr Potentiometer hat drei Anschlüsse: Masse, Ausgang und vref. Die Erdungs- und Vref-Pins sind jeweils mit den GND- und 5-V-Anschlüssen auf Ihrem Arduino verbunden, während der Ausgangspin des Potentiometers mit einem der analogen Eingänge auf Ihrer Platine verbunden ist.
Arduino-Potentiometer-Code
Ihr Arduino-Potentiometer-Code beginnt mit den Grundlagen aufstellen() Und Schleife() Vorlage, die Sie sehen, wenn Sie eine neue Datei in der Arduino IDE erstellen. Fügen Sie zuerst a hinzu konstant int Variable am Anfang des Codes, um die analoge Pin-Verbindung des Potis zu registrieren – in diesem Fall A0.
konstint Potentiometer = A0;
Im Anschluss daran die aufstellen() Die Funktion ist einfach: Sie müssen nur den Pin Ihres Potentiometers als Eingang deklarieren. Sie können auch eine serielle Verbindung starten, wenn Sie Daten zur Diagnose an Ihren PC senden möchten.
Leereaufstellen(){
PinMode (Potentiometer, INPUT);
Seriell.Start(9600);
}
Als nächstes ist es Zeit, die einzurichten Schleife() Funktion. Beginnen Sie mit der Erstellung einer int Variable mit der analogRead() Funktion zum Speichern der Position Ihres Potentiometers. Anschließend können Sie die verwenden Karte() Funktion, um die Größe des Werts zu reduzieren, mit dem Sie es zu tun haben – in diesem Beispiel, um PWM-Spezifikationen zu erfüllen, um beispielsweise die Helligkeit einer LED zu steuern. Fügen Sie eine kurze Verzögerung hinzu, um Stabilität zu gewährleisten.
LeereSchleife(){
int potentiometerValue = analogRead (Potentiometer);
map (potentiometerValue, 0, 1023, 0, 255);
Seriell.println(PotentiometerWert);
Verzögerung (10);
}
Jetzt, da Sie die Position Ihres Potentiometers haben, können Sie es mit anderen Teilen des Codes verwenden. Zum Beispiel ein Wenn Anweisung würde gut funktionieren, um Code auszulösen, wenn sich das Potentiometer in einer bestimmten Position befindet.
konstint Potentiometer = A0;
Leereaufstellen(){
PinMode (Potentiometer, INPUT);
Seriell.Start(9600);
}
LeereSchleife(){
int potentiometerValue = analogRead (Potentiometer);
map (potentiometerValue, 0, 1023, 0, 255);
Seriell.println(PotentiometerWert);
Verzögerung (10);
}
So verwenden Sie einen Drehgeber mit einem Arduino
Drehgeber erfordern einen komplizierteren Code als Potentiometer, aber sie sind immer noch ziemlich einfach zu handhaben. Ihr Drehgeber hat fünf Pins: Masse, VCC, einen Tastenstift (SW), Ausgang A (CLK) und Ausgang B (DT). Die Erdungs- und VCC-Pins sind jeweils mit den Erdungs- und 5-V-Anschlüssen Ihres Arduino verbunden, während die SW-, CLK- und BT-Pins mit einzelnen digitalen Anschlüssen des Arduino verbunden sind.
Arduino Drehgebercode
Um unseren Code einfacher und benutzerfreundlicher zu gestalten, verwenden wir die von MPrograms on erstellte SimpleRotary Arduino-Bibliothek GitHub. Stellen Sie sicher, dass Sie diese Bibliothek installiert haben, bevor Sie mit der Arbeit an Ihrem Code beginnen.
Ähnlich wie Ihr Potentiometer-Code können Sie Ihr Drehgeber-Skript mit dem einfachen Arduino starten aufstellen() Und Schleife() Funktionsvorlage. Beginnen Sie damit, die SimpleRotary-Bibliothek zu deklarieren und Ihre Encoder-Pins in dieser Reihenfolge zuzuweisen; CLK, DT und SW.
#enthalten
SimpleRotary rotierend(1,2,3);
Sie müssen Ihrer nichts hinzufügen aufstellen() funktionieren, es sei denn, Sie möchten den seriellen Monitor zur Diagnose Ihres Drehgebers verwenden.
Leereaufstellen(){
Seriell.Start(9600);
}
Der Schleife() Funktion ist eine andere Geschichte. Die Bestimmung der Rotation der Geberwelle beginnt mit a rotierend.rotieren() Funktionsaufruf, der einem zugeordnet ist int Variable. Wenn das Ergebnis 1 ist, dreht sich der Encoder im Uhrzeigersinn. Wenn das Ergebnis 2 ist, dreht sich der Encoder gegen den Uhrzeigersinn. Das Ergebnis ist immer 0, wenn sich der Encoder seit der letzten Überprüfung nicht gedreht hat.
Sie können verwenden Wenn Anweisungen, um abhängig von der Drehrichtung des Encoders einen anderen Code auszulösen.
LeereSchleife(){
int EncoderRotation;
EncoderRotation = rotation.rotate ();if (encoderRotation == 1) {
Serial.println ("im Uhrzeigersinn");
}
if (encoderRotation == 2) {
Serial.println ("gegen den Uhrzeigersinn");
}
}
Sie müssen auch einen Code für die Schaltfläche Ihres Encoders hinzufügen Schleife() Funktion. Dieser Vorgang ist sehr ähnlich, außer dass Sie die verwenden rotation.push() Funktion, eher als rotierend.rotieren().
LeereSchleife(){
int EncoderButton;
EncoderButton = rotation.push ();
if (encoderButton == 1) {
Serial.println ("Taste gedrückt");
}
}
Dieses Skript ist ziemlich einfach, und Sie können viel tun, um es zu Ihrem eigenen zu machen. Es lohnt sich, die SimpleRotary-Projektdokumentation zu lesen, um sicherzustellen, dass Sie alle wichtigen Funktionen verwenden. Einmal zusammengesetzt, sollte Ihr Encoder-Code so aussehen.
#enthalten
SimpleRotary rotierend(1,2,3);Leereaufstellen(){
Seriell.Start(9600);
}LeereSchleife(){
int EncoderRotation;
EncoderRotation = rotation.rotate ();if (encoderRotation == 1) {
Serial.println ("im Uhrzeigersinn");
}if (encoderRotation == 2) {
Serial.println ("gegen den Uhrzeigersinn");
}int EncoderButton;
EncoderButton = rotation.push ();
if (encoderButton == 1) {
Serial.println ("Taste gedrückt");
}
}
So wählen Sie zwischen Potentiometern und Drehgebern für Projekte
Wie Sie sehen können, arbeiten Drehgeber und Potentiometer ganz unterschiedlich. Diese beiden Komponenten bieten Ihnen neue Möglichkeiten zur Steuerung Ihrer Elektronikprojekte, aber für welche sollten Sie sich entscheiden?
Potentiometer sind erschwinglich und einfach zu bedienen, erlauben aber nur einen begrenzten Eingangsbereich. Dies macht sie großartig, wenn Sie die Helligkeit einer LED steuern oder die Leistung für bestimmte Komponenten und andere ähnliche Aufgaben erhöhen und verringern möchten.
Drehgeber bieten viel mehr Spielraum als Potentiometer. Die Aufnahme eines Druckknopfs bedeutet, dass sie sich hervorragend für Menüsteuerungssysteme eignen, wie sie in vielen modernen Autos zu sehen sind. Diese Art von Bauteil ist im Bereich des Baus mechanischer Tastaturen sehr beliebt geworden. Du kannst sogar Baue ein kleines Makropad mit eingebautem Encoder.
Ähnliche Optik, unterschiedliche Komponenten
Mit all diesen Informationen sollten Sie bereit sein, mit einem Elektronikprojekt mit einem Potentiometer oder Drehgeber zu beginnen. Diese Komponenten können Ihnen eine Menge Kontrolle über die Schaltungen geben, die Sie bauen, aber Sie müssen sicherstellen, dass Sie die richtige Option für Ihr Projekt auswählen.