Arduino Mega - Potentiometer

Diese Anleitung zeigt Ihnen, wie Sie einen Arduino Mega mit einem Potentiometer verwenden. Hier ist, was wir lernen werden:

Arduino Mega potentiometer

Erforderliche Hardware

1×Arduino Mega
1×USB 2.0 Kabel Typ A/B
1×Potentiometer
1×Alternativ: 10k Ohm Trimmer Potentiometer
1×(Alternativ) Potentiometer Kit
1×(Alternativ) Potentiometer Modul mit Drehknopf
1×Breadboard (Steckplatine)
1×Jumper Wires (Verbindungskabel)
1×(Empfohlen) Screw Terminal Block Shield for Arduino Uno/Mega
1×(Empfohlen) Breadboard Shield for Arduino Mega
1×(Empfohlen) Enclosure for Arduino Mega

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Potentiometer

Ein Drehknopf, Drehpotentiometer oder Drehwinkelsensor genannt, ermöglicht es Ihnen, Einstellungen durch Drehen zu ändern, wie z.B. Stereo-Lautstärke, Lampenhelligkeit oder Oszilloskop-Zoom.

Potentiometer Pinout

Pinbelegung

Ein Potentiometer hat normalerweise drei Pins.

  • GND Pin: an Masse anschließen (0 Volt)
  • VCC Pin: an 5V oder 3,3V anschließen
  • Output Pin: sendet Spannung an den Eingangspin des Arduino Mega
Potentiometer Pinout

※ Notiz:

Sie können den Masse-Pin und den Versorgungspin vertauschen.

Wie es funktioniert

Der Potentiometer-Drehknopf kann von 0° (nächst zu GND) bis zum maximalen Winkel (nächst zum VCC Pin) gedreht werden, genannt ANGLE_MAX.

Die Ausgangsspannung kann von Masse bis zur Versorgungsspannung variieren. Die Ausgangsspannung ändert sich direkt, während Sie die Welle drehen.

  • Wenn der Winkel 0 Grad beträgt, ist die Ausgangsspannung 0 Volt.
  • Wenn der Winkel ANGLE_MAX entspricht, ist die Ausgangsspannung VCC.
  • Wenn der Winkel zwischen 0 und ANGLE_MAX liegt, output_voltage = Winkel mal VCC geteilt durch ANGLE_MAX.

※ Notiz:

Der ANGLE_MAX Wert variiert je nach Hersteller. Normalerweise machen wir uns keine Gedanken über ANGLE_MAX, es sei denn, wir müssen den Drehwinkel berechnen (siehe Anwendungsfälle).

How Potentiometer Works

Arduino Mega - Drehpotentiometer

Die Pins A0 bis A5 am Arduino Mega können als analoge Eingänge verwendet werden. Sie lesen eine Spannung von 0 Volt bis zur Versorgungsspannung (VCC) und wandeln sie in Zahlen von 0 bis 1023 um. Diese Zahlen werden ADC-Werte (Analog-Digital-Wandler-Werte) genannt.

Wenn Sie den Ausgangspin des Potentiometers an einen analogen Eingangspin des Arduino Mega anschließen, können Sie den Arduino programmieren, um den analogen Wert zu lesen und ihn in eine nützliche Zahl umzuwandeln.

Die Zahl, die der Arduino Mega erhält, ist kein Winkel oder eine Spannung. Es ist eine ganze Zahl von 0 bis 1023.

Wir lesen den Wert vom analogen Eingangspin und ändern ihn zu einem anderen Wert. Schauen wir uns nun an, wie wir ihn verwenden.

Anwendungsfälle

  • Den ADC-Wert in einen Winkel umwandeln.
  • Den ADC-Wert in eine Spannung umwandeln.
  • Den ADC-Wert in einen Kontrollwert umwandeln (zum Beispiel Lautstärke, Helligkeit oder Motorgeschwindigkeit). Dies ist die häufigste Verwendung.

Bereichsskalierung

VON ZU
Winkelvom Benutzer gedrehtANGLE_MAX
Spannungvom Potentiometer-Pin 0VVCC
ADC-Wertvom Arduino Mega gelesen 01023
Anderer Wertvom Arduino Mega umgewandelt VALUE_MINVALUE_MAX

Schaltplan

Arduino Mega Potentiometer Wiring Diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Bei Verwendung des Potentiometer-Moduls:

Arduino Mega Potentiometer Module Wiring Diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wie Sie für Potentiometer programmieren

  • Verwenden Sie die analogRead() Funktion, um den Wert vom Pin zu lesen, der mit dem Ausgang des Potentiometers verbunden ist.
adc_value = analogRead(A0);
  • Wandeln Sie den ADC-Wert in den Potentiometer-Winkel um, indem Sie die map() Funktion verwenden.
angle = map(adc_value, 0, 1023, 0, ANGLE_MAX);
  • Den ADC-Wert in eine Spannung umwandeln:
voltage = map(adc_value, 0, 1023, 0, VCC);
  • Den ADC-Wert in einen einfachen Wert umwandeln, den Sie verwenden können (zum Beispiel zur Steuerung der Stereo-Lautstärke, Helligkeit oder Geschwindigkeit eines DC-Motors).
value = map(adc_value, 0, 1023, VALUE_MIN, VALUE_MAX);
  • Beispiel: Anpassung der Helligkeit einer LED. Sie steuern die Helligkeit mit einem PWM-Wert von 0 (aus) bis 255 (vollständig an). So können wir den ADC-Wert der LED-Helligkeit (von aus bis hellste) wie folgt zuordnen:
brightness = map(adc_value, 0, 1023, 0, 255);

※ Notiz:

map() konvertiert einen analogen Wert in einen int oder long. Wenn Sie einen float-Wert benötigen, verwenden Sie stattdessen floatMap().

Die floatMap Funktion:

float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

Arduino Mega Code

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-mega/arduino-mega-potentiometer */ float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { // Remap a floating-point value from the input range to the output range. return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } void setup() { // Initialize serial communication at 9600 baud. Serial.begin(9600); } void loop() { // Read the analog value from pin A0. int adc_value = analogRead(A0); // Convert the ADC value to a voltage in the 0-5 V range. float voltage = floatMap(adc_value, 0, 1023, 0, 5); // Print the measured value and its calculated voltage to the serial monitor. Serial.print("Analog: "); Serial.print(adc_value); Serial.print(", Voltage: "); Serial.println(voltage); // Pause for one second before the next loop iteration. delay(1000); }

Schnelle Schritte

Führen Sie diese Schritte nacheinander durch.

  • Verbinden Sie das Potentiometer mit dem Arduino Mega wie im Schaltplan gezeigt.
  • Verbinden Sie den Arduino Mega über ein USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das korrekte Arduino Mega Board (zum Beispiel Arduino Mega) und den Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie auf die Upload Schaltfläche in der Arduino IDE, um den Code auf den Arduino Mega hochzuladen.
Arduino IDE Upload Code
  • Öffnen Sie den Serial Monitor
  • Drehen Sie das Potentiometer
  • Schauen Sie sich den Serial Monitor an, um das Ergebnis zu sehen
COM6
Send
Analog: 0, Voltage: 0.00 Analog: 0, Voltage: 0.00 Analog: 126, Voltage: 0.62 Analog: 281, Voltage: 1.37 Analog: 517, Voltage: 2.53 Analog: 754, Voltage: 3.69 Analog: 906, Voltage: 4.43 Analog: 1023, Voltage: 5.00 Analog: 1023, Voltage: 5.00
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Funktionsreferenzen

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!