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!

5.6 Map

Wenn Sie genau hinschauen, werden Sie feststellen, dass viele Werte in der Programmierung unterschiedliche Bereiche haben. Zum Beispiel liegt der Wertebereich für analoge Eingänge bei (0~1023). Der Wertebereich für den analogen Ausgang liegt bei (0~255). Der Ausgangswinkel des Servos beträgt (0~180).

Das bedeutet, dass wir, wenn wir den Potentiometer nutzen wollen, um die Helligkeit der LED oder den Winkel des Servos zu steuern, eine Zuordnungsoperation durchführen müssen.

Lassen Sie uns nun sehen, wie dies umgesetzt wird.

Benötigte Komponenten

Für dieses 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

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Sie können diese auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 Minima

-

Breadboard

KAUFEN

Jumper-Kabel

KAUFEN

Servo

KAUFEN

Potentiometer

KAUFEN

Schaltplan

../_images/circuit_8.3_amp.png

Verdrahtung

../_images/5.6_map_bb.png

Code

Bemerkung

  • Öffnen Sie die Datei 5.6.map.ino im Pfad 3in1-kit\learning_project\5.6.map.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

Nachdem Sie den Code erfolgreich hochgeladen haben, können Sie den Potentiometer hin- und herbewegen, und die Ausgangswelle des Servos wird entsprechend rotieren.

Wie funktioniert das?

map(value, fromLow, fromHigh, toLow, toHigh): Ordnet eine Zahl einem anderen Bereich zu. Das bedeutet, dass ein fromLow-Wert zu toLow und ein fromHigh-Wert zu toHigh zugeordnet wird.

Syntax

map(value, fromLow, fromHigh, toLow, toHigh)

Parameter
  • value: die zuordnende Zahl.

  • fromLow: die untere Grenze des aktuellen Bereichs des Wertes.

  • fromHigh: die obere Grenze des aktuellen Bereichs des Wertes.

  • toLow: die untere Grenze des Zielbereichs des Wertes.

  • toHigh: die obere Grenze des Zielbereichs des Wertes.

Wenn der Potentiometer die LED steuert, können Sie ebenfalls die Funktion map verwenden, um die Aufgabe zu erfüllen.

int x = analogRead(knob);
int y = map(x,0,1023,0,255);
analogWrite(led,y);

Anmerkungen und Warnungen

  • Die „untere Grenze“ beider Bereiche kann größer oder kleiner sein als die „obere Grenze“, was bedeutet, dass die Funktion map() verwendet werden kann, um einen Bereich von Zahlen umzukehren.

    y = map(x,0,180,180,0);
    
  • Das Mapping funktioniert auch gut für negative Zahlen.

    y = map(x,0,1023,-90,90);
    
  • Das Mapping verwendet Ganzzahlen, und die Dezimalstellen von Fließkommazahlen werden verworfen.