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 Karte (Map)

Wenn Sie genau hinsehen, 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 Ausgabewinkel des Servos liegt bei (0~180).

Das bedeutet, wenn wir das Potentiometer verwenden möchten, um die Helligkeit der LED oder den Winkel des Servos zu steuern, müssen wir eine Zuordnungsoperation durchführen.

Lassen Sie uns nun sehen, wie das erreicht werden kann.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Set 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 sie auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENEINFÜHRUNG

KAUF-LINK

SunFounder R3 Platine

KAUFEN

Breadboard

KAUFEN

Jumper-Kabel

KAUFEN

Servo

KAUFEN

Potentiometer

KAUFEN

Schaltplan

../_images/circuit_8.3_amp.png

Verdrahtung

../_images/map_bb.jpg

Code

Bemerkung

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

  • Oder kopieren Sie diesen Code in die Arduino IDE.

  • Oder laden Sie den Code über den Arduino Web Editor hoch.

Nachdem der Code erfolgreich hochgeladen wurde, können Sie das Potentiometer hin und her drehen, und die Ausgangswelle des Servos wird hin und her drehen.

Wie funktioniert das?

map(value, fromLow, fromHigh, toLow, toHigh): Ordne eine Zahl von einem Bereich einem anderen zu. Das heißt, ein fromLow-Wert wird zu toLow zugeordnet und ein fromHigh-Wert zu toHigh.

Syntax

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

Parameter
  • value: die zuzuordnende Zahl.

  • fromLow: die untere Grenze des aktuellen Wertebereichs.

  • fromHigh: die obere Grenze des aktuellen Wertebereichs.

  • toLow: die untere Grenze des Zielwertebereichs.

  • toHigh: die obere Grenze des Zielwertebereichs.

Wenn das Potentiometer die LED steuert, können Sie auch die Zuordnung 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 als die „obere Grenze“ sein, was bedeutet, dass die map() Funktion verwendet werden kann, um einen Zahlenbereich umzukehren.

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

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