Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [ hier ] und treten Sie heute bei!
Potentiometer
Überblick
In dieser Lektion sehen wir uns an, wie wir die Leuchtkraft einer LED mit einem Potentiometer verändern und die Daten des Potentiometers im Seriellen Monitor ablesen, um seine Wertänderungen zu beobachten.
Benötigte Komponenten
In diesem Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
Elite Explorer Kit |
300+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
|---|---|
- |
|
Verdrahtung
Schaltplan
In diesem Experiment wird das Potentiometer als Spannungsteiler verwendet, was bedeutet, dass Geräte an alle drei Pins angeschlossen werden. Verbinden Sie den mittleren Pin des Potentiometers mit Pin A0 und die anderen beiden Pins mit 5V bzw. GND. Daher liegt die Spannung des Potentiometers zwischen 0-5V. Drehen Sie den Knopf des Potentiometers, und die Spannung an Pin A0 wird sich ändern. Dann wird diese Spannung mit dem AD-Wandler im Steuerboard in einen digitalen Wert (0-1024) umgewandelt. Durch Programmierung können wir den umgewandelten digitalen Wert nutzen, um die Helligkeit der LED auf dem Steuerboard zu steuern.
Code
Bemerkung
Sie können die Datei
19-potentiometer.inodirekt unter dem Pfadelite-explorer-kit-main\basic_project\19-potentiometeröffnen.Oder kopieren Sie diesen Code in die Arduino IDE.
1/*
2 This code is for controlling the brightness of an LED using a potentiometer.
3
4 The code uses a potentiometer as an input device. It reads analog data from
5 the potentiometer, scales the read value from a range of 0-1023 to 0-255,
6 and then uses this scaled value to control the brightness of an LED. The raw
7 and scaled values are also printed to the serial monitor for debugging or monitoring.
8
9 Board: Arduino Uno R4
10 Component: Potentiometer
11*/
12
13const int analogPin = 0; // Analog input pin connected to the potentiometer
14const int ledPin = 9; // Digital output pin connected to the LED
15
16int inputValue = 0; // Variable to store the raw value from the potentiometer
17int outputValue = 0; // Variable to store the scaled output value
18
19void setup() {
20 Serial.begin(9600); // Initialize serial communication with a baud rate of 9600
21}
22
23void loop() {
24 inputValue = analogRead(analogPin); // Read the analog value from the potentiometer
25 Serial.print("Input: "); // Print "Input: " to the serial monitor
26 Serial.println(inputValue); // Print the raw input value to the serial monitor
27
28 // Map the input value from a range of 0-1023 to a range of 0-255
29 outputValue = map(inputValue, 0, 1023, 0, 255);
30
31 Serial.print("Output: "); // Print "Output: " to the serial monitor
32 Serial.println(outputValue); // Print the scaled output value to the serial monitor
33
34 analogWrite(ledPin, outputValue); // Control the LED brightness based on the scaled value
35 delay(1000); // Wait for 1 second before the next loop iteration
36}
Nachdem der Code auf das Uno-Board hochgeladen wurde, kann der serielle Monitor geöffnet werden, um die gelesenen Werte des Potentiometers zu beobachten. Wenn Sie am Knopf des Potentiometers drehen, ändert sich der gelesene Wert entsprechend. Der rohe Analogwert des Potentiometers reicht von (0) bis (1023). Gleichzeitig skaliert der Code diesen Wert in einen Bereich von (0) bis (255), der auch auf dem seriellen Monitor angezeigt wird. Dieser skalierte Wert wird dann verwendet, um die Helligkeit der angeschlossenen LED zu steuern. Die LED wird heller oder dunkler, je nach skaliertem Wert. Es ist anzumerken, dass der theoretische Bereich des Potentiometers (0) bis (1023) beträgt, der tatsächliche Bereich kann jedoch aufgrund von Hardwaretoleranzen leicht variieren.
Code-Analyse
Initialisierung und Einrichtung (Einstellen der Pin-Modi und Initialisieren der seriellen Kommunikation)
Bevor wir in die Schleife einsteigen, definieren wir, welche Pins wir verwenden und initialisieren die serielle Kommunikation.
const int analogPin = 0; // Analog input pin connected to the potentiometer const int ledPin = 9; // Digital output pin connected to the LED void setup() { Serial.begin(9600); // Initialize serial communication with a baud rate of 9600 }
Lesen des Analogeingangs (Daten vom Potentiometer abrufen)
In diesem Abschnitt lesen wir die Analogdaten vom Potentiometer und drucken sie auf den seriellen Monitor.
inputValue = analogRead(analogPin); // Read the analog value from the potentiometer Serial.print("Input: "); // Print "Input: " to the serial monitor Serial.println(inputValue); // Print the raw input value to the serial monitor
Kartierung und Skalierung (Umrechnung der Potentiometer-Daten)
Wir skalieren die Rohdaten vom Potentiometer, die im Bereich von 0-1023 liegen, in einen neuen Bereich von 0-255.
map(value, fromLow, fromHigh, toLow, toHigh)wird verwendet, um eine Zahl von einem Bereich in einen anderen umzurechnen. Wenn der Wert innerhalb des Bereichs vonfromLowundfromHighliegt, wird er in einen entsprechenden Wert innerhalb des Bereichs vontoLowundtoHighumgewandelt, wobei die Proportionalität zwischen den beiden Bereichen erhalten bleibt.In diesem Fall müssen wir, da der LED-Pin (Pin 9) einen Bereich von 0-255 hat, Werte im Bereich von 0-1023 auf dieselbe Skala von 0-255 abbilden.
outputValue = map(inputValue, 0, 1023, 0, 255); // Map the input value to a new range
Steuerung der LED und serielle Ausgabe
Schließlich steuern wir die Helligkeit der LED basierend auf dem skalierten Wert und drucken den skalierten Wert zur Überwachung.
Serial.print("Output: "); // Print "Output: " to the serial monitor Serial.println(outputValue); // Print the scaled output value to the serial monitor analogWrite(ledPin, outputValue); // Control the LED brightness based on the scaled value delay(1000);