# PWM zu Step-Dir - Ich komme nicht weiter

**URL:** <https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030>\
**Category:** Deutsch\
**Created:** [August 4, 2023, 3:55pm UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030 "2023-08-04T15:55:55Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Matt-Hias](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/matt-hias/32/1013044_2.png) [@Matt-Hias](https://forum.arduino.cc/u/Matt-Hias)\
**Post date:** [August 4, 2023, 3:55pm UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/1 "2023-08-04T15:55:55Z")

</div>

Hallo zusammen,

ich versuche seit einiger Zeit ein RC – PWM Signal über einen Arduino Nano zu einem Step- / Dir – Signal für eine Schrittmotorendstufe zu wandeln.

Leider komme ich nicht weiter, mein Verständniss reicht hierfür leider nicht aus. Meine Ergebnisse erzeugen entweder langsam laufende oder zuckelnde Motoren.

Die Maximale Pulsfrequenz für die Schrittsignale soll bei 40kHz liegen (maximal RPM) und im besten falle von nahe 0 bis 40kHz in stufen über das RC-Signal geregelt werden können.

Falls ich hier unmögliches versuche, wäre ein Hinweis nett.

Ich habe jetzt hier schon ein Stück Code mit dem ich den PWM – Pin auslese und unplausible Werte aussortiere. Das funktioniert soweit ich das über die serielle Schnittstele nachverfolgen kann auch schon ganz zuverlässig.

Nun möchte ich die Schrittsignale zum Motor senden aber mein Motor dreht entweder nicht oder nur sehr langsam.

Mit einem sehr einfachen Programm habe ich mal getestet ob der Motor überhaupt funktioniert und dabei auch gut Drehzahl zusammen bekommen.

Mein Code sieht aktuell so aus:

```cpp
/*
#1 Controlling a Stepper Motor with a Remote Control and Arduino von: Brandon Tsuge
https://theboredrobot.com/blogs/blog/controlling-a-stepper-motor-with-a-remote-control-and-arduino
----------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------
#2 Tutorial for reading PWM non-blocking von: "heinduplessis" 
https://forum.arduino.cc/t/tutorial-for-reading-pwm-non-blocking/479611
-----------------------------------------------------------------------------------------------------------------
 */
#define PWM_Pin 2
#define DIR 4
#define STEP 5

int lastPulseTime;
int pulseTime;
int channelValue;
int pulse_Lenght;

//Set up time variables for Stepper motor
unsigned long previousMotorTime = micros();
unsigned long MotorInterval = 0;
volatile long StartTime = 0;
volatile long CurrentTime = 0;

void setup() {
  Serial.begin(115200);
  attachInterrupt(digitalPinToInterrupt(PWM_Pin), Pulse, CHANGE);
}

void loop() {

  //Serial.print("channelValue");
  //Serial.println(channelValue);
  //Serial.print("MotorInterval:");
  //Serial.println(MotorInterval);

  digitalWrite(STEP, LOW);

  //Stepper motor speed, bigger MotorInterval is a slower speed.
  if (channelValue >= 1450 && channelValue <= 1550) {
    digitalWrite(STEP, LOW); //Motor doesn't move if the joystick is near the midpoint

  } else if (channelValue < 1450) {
    digitalWrite(DIR, LOW);
    MotorInterval = map(channelValue, 1150, 1450, 0, 25); //map the RC signal to the motor speed in reverse when the joystick is pulled down
    Serial.println(MotorInterval);
  } else if (channelValue > 1550) {
    digitalWrite(DIR, HIGH);
    MotorInterval = map(channelValue, 1550, 1850, 25, 0); //map the RC signal to the motor speed when the joystick is pushed forward.
    Serial.println(MotorInterval);
  }

  //check if the MotorInterval time has elapsed and step the motor.
  unsigned long currentMotorTime = micros();
  if (currentMotorTime - previousMotorTime > MotorInterval) {
    digitalWrite(STEP, HIGH);
    previousMotorTime = currentMotorTime;
  }
}

void Pulse() {
  lastPulseTime = pulseTime;
  pulseTime = micros();
  pulse_Lenght = pulseTime - lastPulseTime;
  if ((pulse_Lenght > 1150) & (pulse_Lenght < 1850)) {
    channelValue = pulse_Lenght;
  }
}

```

Über einen Schubs in die richtige Richtung wäre ich Euch dankbar.

Schönes Wochennende zusammen!  
Matt-Hias

---

<div class="post-metadata">

**Author:** ![MicroBahner](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/microbahner/32/238923_2.png) [@MicroBahner](https://forum.arduino.cc/u/MicroBahner)\
**Post date:** [August 4, 2023, 4:16pm UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/2 "2023-08-04T16:16:38Z")

</div>

> [@Matt-Hias](#):
>
> ```arduino
> MotorInterval = map(channelValue, 1150, 1450, 0, 25); //map the RC signal to the motor speed in reverse when the joystick is pulled down
> 
> ```

Wenn ich deinen Code richtig verstehe, bedeuten die 25 die Maximalgeschwindigkeit ( 25µs / Step ). Wenn es langsamer gehen soll, muss das Intervall aber größer werden, und nicht noch kleiner ( Intervall 0 geht ja gar nicht ).

---

<div class="post-metadata">

**Author:** ![my\_xy\_projekt](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/my_xy_projekt/32/810062_2.png) [@my\_xy\_projekt](https://forum.arduino.cc/u/my_xy_projekt)\
**Post date:** [August 4, 2023, 4:33pm UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/3 "2023-08-04T16:33:10Z")

</div>

> [@Matt-Hias](#):
>
> ```arduino
> if ((pulse_Lenght > 1150) & (pulse_Lenght < 1850)) {
> channelValue = pulse_Lenght;
> 
> ```

Das würde ich nicht so machen - achte auf den Operator!.  
Und hier bricht es Dir dann das Genick restlos.

> [@Matt-Hias](#):
>
> `int pulseTime;`  
> [...]
> 
> ` pulseTime = micros();`

---

<div class="post-metadata">

**Author:** ![Matt-Hias](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/matt-hias/32/1013044_2.png) [@Matt-Hias](https://forum.arduino.cc/u/Matt-Hias)\
**Post date:** [August 5, 2023, 6:04pm UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/4 "2023-08-05T18:04:25Z")

</div>

@MicroBahner : Stimmt, das habe ich nicht bedacht. Ich habe den Code nochmal etwas angepasst und ich komme langsam schon in eine brauchbare Richtung.

@my_xy_projekt : Ich verstehe nicht was ich da falsch mache beziehungsweise anders machen kann.  
Habe ich die falsche Variablen - Type gewählt?

Anbei der aktuelle, schon etwas bessere Code:  
Es hackt noch bei der PWM - Abfrage, die funktioniert scheinbar nicht zuverlässig. Kann Hier jeamnd erkennen was da los ist? Oder ist das was @my_xy_projekt gemeint hat?

```cpp
/*
#1 Controlling a Stepper Motor with a Remote Control and Arduino von: Brandon Tsuge
https://github.com/TheBoredRobot/Arduino-Examples/blob/master/RC_and_Stepper.ino
----------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------
#2 Tutorial for reading PWM non-blocking von: "heinduplessis" 
https://forum.arduino.cc/t/tutorial-for-reading-pwm-non-blocking/479611
-----------------------------------------------------------------------------------------------------------------
 */
#define PWM_Pin 2
#define DIR 4
#define STEP 5

int lastPulseTime;
unsigned long pulseTime;
int channelValue;
int pulse_Lenght;
int Motor_STEP;

//Set up time variables for Stepper motor
unsigned long previousMotorTime = micros();
unsigned long MotorInterval;
volatile long StartTime = 0;
volatile long CurrentTime = 0;

void setup() {
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  Serial.begin(115200);
  attachInterrupt(digitalPinToInterrupt(PWM_Pin), Pulse, CHANGE);
}

void loop() {

  digitalWrite(STEP, LOW);

  //Stepper motor speed, bigger MotorInterval is a slower speed.
  if (channelValue >= 1450 && channelValue <= 1550) {
    digitalWrite(STEP, LOW); //Motor doesn't move if the joystick is near the midpoint
    Motor_STEP = 0;

  } else if (channelValue < 1450) {
    digitalWrite(DIR, LOW);
    Motor_STEP = 1;
    MotorInterval = map(channelValue, 1150, 1450, 100, 1000); //map the RC signal to the motor speed in reverse when the joystick is pulled down
    Serial.println(MotorInterval);
  } else if (channelValue > 1550) {
    digitalWrite(DIR, HIGH);
    Motor_STEP = 1;
    MotorInterval = map(channelValue, 1550, 1850, 1000, 100); //map the RC signal to the motor speed when the joystick is pushed forward.
   // Serial.println(MotorInterval);
  }

  //check if the MotorInterval time has elapsed and step the motor.
  unsigned long currentMotorTime = micros();
  if(Motor_STEP== 1){
  if (currentMotorTime - previousMotorTime > MotorInterval) {
    digitalWrite(STEP, HIGH);
    previousMotorTime = currentMotorTime;}
  }
}

void Pulse() {
  lastPulseTime = pulseTime;
  pulseTime = micros();
  pulse_Lenght = pulseTime - lastPulseTime;
  if ((pulse_Lenght > 1150) & (pulse_Lenght < 1850)) {
    channelValue = pulse_Lenght;
  }
}

```

---

<div class="post-metadata">

**Author:** ![kolaha](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kolaha/32/966427_2.png) [@kolaha](https://forum.arduino.cc/u/kolaha)\
**Post date:** [August 5, 2023, 8:18pm UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/5 "2023-08-05T20:18:21Z")

</div>

> [@Matt-Hias](#):
>
> ```arduino
> attachInterrupt(digitalPinToInterrupt(PWM_Pin), Pulse, CHANGE);
> ...
> void Pulse() {
> lastPulseTime = pulseTime;
> pulseTime = micros();
> pulse_Lenght = pulseTime - lastPulseTime;
> if ((pulse_Lenght > 1150) & (pulse_Lenght < 1850)) {
> channelValue = pulse_Lenght;
> }
> }
> 
> ```

macht das nichts aus dass `pulse_Lenght` springt zwischen zwei Werten zweimal pro Period?

---

<div class="post-metadata">

**Author:** ![fony](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/fony/32/936882_2.png) [@fony](https://forum.arduino.cc/u/fony)\
**Post date:** [August 5, 2023, 8:39pm UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/6 "2023-08-05T20:39:38Z")

</div>

> [@Matt-Hias](#):
>
> ```arduino
> if ((pulse_Lenght > 1150) & (pulse_Lenght < 1850)) {
> channelValue = pulse_Lenght;
> 
> ```

Da fehlt was 😉

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [August 5, 2023, 9:23pm UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/7 "2023-08-05T21:23:25Z")

</div>

> [@Matt-Hias](#):
>
> `if ((pulse_Lenght > 1150) & (pulse_Lenght < 1850))`

Lerne den Unterschied zwischen & und &&

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![my\_xy\_projekt](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/my_xy_projekt/32/810062_2.png) [@my\_xy\_projekt](https://forum.arduino.cc/u/my_xy_projekt)\
**Post date:** [August 5, 2023, 10:32pm UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/8 "2023-08-05T22:32:07Z")

</div>

Also:  
Du hast mit & versucht etwas zu verbinden, meinst aber &&.  
Das eine (&) ist ein bitweises UND das andere (&&) ist ein logisches UND.  
Das sind zwei vollkommen andere Dinge. Wir hatten hier auch schon den Fall, das ein bitweises & das gleiche Ergebnis brachte wie ein logisches UND. Es ist also nicht ausgeschlossen, das es hier genau so ist.

Dann der Genickbrecher:  
pulseTime soll den Inhalt von micros() aufnehmen.  
Das geht aber nicht, da der Datentyp int nur bis 32767 geht und dann überläuft. (und damit wieder von -32768 anfängt)

micros() arbeitet mit einem Zahlentyp unsigned long.  
Damit muss der aufnehmende Datentyp auch so eingerichtet werden.

Das wäre dann: `uint32_t pulseTime`

Im Übrigen habe ich bereits mehrerer solcher RC-Dinger begleitet.  
Ich würde das mit den mehrfachen if-Vergleichen komplett weg lassen.  
Ist mir jetzt aber zu früh - ich bau Dir mal was, von dem ich denke das es funktioniert.

---

<div class="post-metadata">

**Author:** ![Matt-Hias](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/matt-hias/32/1013044_2.png) [@Matt-Hias](https://forum.arduino.cc/u/Matt-Hias)\
**Post date:** [August 6, 2023, 6:47am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/9 "2023-08-06T06:47:07Z")

</div>

@kolaha : Danke, habs jetzt verstanden, das war mir garnicht bewusst. - Hab das in meinem 2. Code also instinktiv richtig gemacht. 😄

Danke auch an die Tippgeber @fony ; @Tommy56 ; @my_xy_projekt .

---

<div class="post-metadata">

**Author:** ![Matt-Hias](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/matt-hias/32/1013044_2.png) [@Matt-Hias](https://forum.arduino.cc/u/Matt-Hias)\
**Post date:** [August 6, 2023, 6:52am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/10 "2023-08-06T06:52:33Z")

</div>

Danke @my_xy_projekt 😄  
Sorry, hab das mit den Variablentypen bis heute nicht richtig verstanden. - Ich bin einfach nicht vom Fach.

Entspricht dann eine Variable vom Typ unsigned long einer Variable vom Typ `uint32_t`?  
Bzw. warum finde ich uint32\_t nicht in der Referenz?

> **[Arduino-Referenz - Arduino-Referenz](https://www.arduino.cc/reference/de/)**
>
> The Arduino programming language Reference, organized into Functions, Variable and Constant, and Structure keywords.

> Blockquote  
> Ist mir jetzt aber zu früh - ich bau Dir mal was, von dem ich denke das es funktioniert.

> Blockquote

Keine Eile 🙂 Danke für das freundliche Angebot.

---

<div class="post-metadata">

**Author:** ![my\_xy\_projekt](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/my_xy_projekt/32/810062_2.png) [@my\_xy\_projekt](https://forum.arduino.cc/u/my_xy_projekt)\
**Post date:** [August 6, 2023, 8:16am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/11 "2023-08-06T08:16:55Z")

</div>

> [@Matt-Hias](#):
>
> warum finde ich uint32\_t nicht in der Referenz?

Arduino hat als Unterbau C++.  
Alles was C++ kann, kann Arduino auch.  
Mit kleinen Einschränkungen.  
Die hauptsächliste ist in der verwendeten Version zu finden. hier: C++ 11

Ansonsten Kurzliteratur: [ArduinoForum.de - Das deutschsprachige Forum rund um den Arduino - Arduino Code-Referenz (deutsch)](https://www.arduinoforum.de/code-referenz) dort das pdf runter laden. Sehr schick geschrieben und liest sich an 3-4 Abenden weg. Da haste schon die halbe Miete.

Ein gutes hier gerne empfohlenes Buch: [Der C++ Programmierer – Ulrich Breymann (2017) – terrashop.de](https://www.terrashop.de/Buch/Der-C-Programmierer-Ulrich-Breymann-ISBN-3446448845/art/44644884/) auch wenn es "nur" bis Version 17 behandelt ist das vollkommen ausreichend.

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [August 6, 2023, 8:52am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/12 "2023-08-06T08:52:51Z")

</div>

> [@my\_xy\_projekt](#):
>
> [Der C++ Programmierer – Ulrich Breymann (2017)](https://www.terrashop.de/Buch/Der-C-Programmierer-Ulrich-Breymann-ISBN-3446448845/art/44644884/)

Das Buch ist aktuell kaum noch zu bekommen.

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![my\_xy\_projekt](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/my_xy_projekt/32/810062_2.png) [@my\_xy\_projekt](https://forum.arduino.cc/u/my_xy_projekt)\
**Post date:** [August 6, 2023, 9:05am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/13 "2023-08-06T09:05:07Z")

</div>

> [@Tommy56](#):
>
> aktuell kaum noch zu bekommen.

Ups. - Die gemeinen Forenleser aber auch... 😉

---

<div class="post-metadata">

**Author:** ![Matt-Hias](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/matt-hias/32/1013044_2.png) [@Matt-Hias](https://forum.arduino.cc/u/Matt-Hias)\
**Post date:** [August 6, 2023, 10:07am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/14 "2023-08-06T10:07:33Z")

</div>

Danke, ich versuchs mal mit der Code-Referenz. Hab mich an den 2kg Gewicht von dem Fachbuch erschreckt. 😲

---

<div class="post-metadata">

**Author:** ![kolaha](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kolaha/32/966427_2.png) [@kolaha](https://forum.arduino.cc/u/kolaha)\
**Post date:** [August 6, 2023, 10:51am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/15 "2023-08-06T10:51:08Z")

</div>

> [@Matt-Hias](#):
>
> richtig gemacht

Zeigst Du?

---

<div class="post-metadata">

**Author:** ![kolaha](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kolaha/32/966427_2.png) [@kolaha](https://forum.arduino.cc/u/kolaha)\
**Post date:** [August 6, 2023, 10:57am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/16 "2023-08-06T10:57:53Z")

</div>

> [@Matt-Hias](#):
>
> ein RC – PWM Signal

echt [PWM](https://de.wikipedia.org/wiki/Pulsdauermodulation) oder [RC PPM](http://www.mftech.de/ppm.htm)?

---

<div class="post-metadata">

**Author:** ![my\_xy\_projekt](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/my_xy_projekt/32/810062_2.png) [@my\_xy\_projekt](https://forum.arduino.cc/u/my_xy_projekt)\
**Post date:** [August 6, 2023, 11:14am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/17 "2023-08-06T11:14:40Z")

</div>

> [@Matt-Hias](#):
>
> erschreckt

😁  
Wenn Du das Buch hast, ist in dem ein Code. Mit dem kannst Du beim Verlag ein personalisiertes .pdf herunter laden, mit dem gleichen Inhalt.

Ich hab mal etwas länger über Deinen Code geschaut.  
Da gibts ne Menge Baustellen.  
Sicher alles nur Kleinigkeiten, aber eben Baustellen.  
Eine ganz berüchtigte, die sich wiederholt:

> [@Matt-Hias](#):
>
> `else if (channelValue < 1450) {`  
> [...]  
> `MotorInterval = map(channelValue, 1150, 1450, 100, 1000);`

A) Was passiert, wenn channelValue \<1150 ist?  
B) map wird nie channelValue mit dem Wert 1450 auswerten können

Las mir mal noch ne gute halbe Stunde, bis ich die Logik zerlegt habe.

---

<div class="post-metadata">

**Author:** ![Matt-Hias](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/matt-hias/32/1013044_2.png) [@Matt-Hias](https://forum.arduino.cc/u/Matt-Hias)\
**Post date:** [August 6, 2023, 11:29am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/18 "2023-08-06T11:29:24Z")

</div>

> [@kolaha](#):
>
> Zeigst Du?

Tut mir leid, hier habe ich einen Fehler gemacht. Kämpfe gerade damit es zu reproduzieren wie es dazu kam. Jedenfalls hatte das mal in einer anderen Version des Codes mit eingefügt – Ohne spürbare Ergebnisse.

Ich habe es jetzt nochmal richtig gestellt:

```arduino
  if ((pulse_Lenght > 1150) && (pulse_Lenght < 1850)) {
    channelValue = pulse_Lenght;
  }

```

---

<div class="post-metadata">

**Author:** ![Matt-Hias](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/matt-hias/32/1013044_2.png) [@Matt-Hias](https://forum.arduino.cc/u/Matt-Hias)\
**Post date:** [August 6, 2023, 11:36am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/19 "2023-08-06T11:36:21Z")

</div>

Ich hab mir das am Oszilloskop mal angesehen und bin mir nicht so recht sicher. Es sollte ein PWM - Signal sein, sieht aber irgendwie komisch aus.

Die Rückgabewerte von `void Pulse() ` sind allerdings bis auf einige Ausreißer plausibel.  
Das Signal kommt aus einem Cube Orange, den ich mit einer Herelink per Sbus ansteuere.

---

<div class="post-metadata">

**Author:** ![MicroBahner](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/microbahner/32/238923_2.png) [@MicroBahner](https://forum.arduino.cc/u/MicroBahner)\
**Post date:** [August 6, 2023, 11:37am UTC](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030/20 "2023-08-06T11:37:02Z")

</div>

> [@my\_xy\_projekt](#):
>
> A) Was passiert, wenn channelValue \<1150 ist?

Die [map-Funktion](https://www.arduino.cc/reference/en/language/functions/math/map/) ist nicht auf den min/max Bereich der Eingangswerte begrenzt, sondern funktoniert auch darüber hinaus. Die 2 Wertepaare definieren sozusagen nur die Steigung der Umwandlungsgeraden.

[Next page](https://forum.arduino.cc/t/pwm-zu-step-dir-ich-komme-nicht-weiter/1155030.md?page=2)
