user78339: How can I use a MC33926 Motor Driver like it is offered for Arduino to drive forwards, backwards with a PWM and a direction control.
The problem is that the MC33926 has Inputs IN1 and IN2 and not PWM and DIR as usual. How can IN1 and IN2 be directly used with a Arduino. Such as it is done in the ArduMower project.
I'm also wondering under which conditions this is controller is energy efficient? If the load has a flywheel effect (e.g. high RPM mower disk) reducing RPM would waste energy?
I know there are different shields that have logic to drive the inputs with PWM and DIR, but the ArduMower PCB 1.4 decided to hook it up directly. Here is a hardware solution by pololu (I wish i would understand these two NAND gates and the Q2, but that's another problem):

https://www.pololu.com/product/1213/pictures

user78339: I have figured this so far:

If the PWM frequency is too low, the load-free power consumption (100% PWM 200mA) of the
motors increases(!) rapidly when driving slowly, e.g. 33% to 1A.
From a certain PWM frequency (>2kHz), the power consumption normalizes and driving more slowly requires less power.
MC33936 has IN1 and IN2, which are normally connected with IN1 = LOW and
IN2 = PWM or IN1 = PWM and IN2 = LOW (not good for most MCs)
Alternatively you can use IN1 = PWM and IN2 = LOW / HIGH BUT you must INVERT the PWM SIGNAL when running reverse, i.e. IN1 = PWM and IN2 = LOW or reverse IN1 = ~PWM (inverted PWM) and IN2 = HIGH. Otherwise you start driving at 0 PWM with 100% motor power. This is quite tricky, too.
MC33936 has no freewheel (except if ENABLE = LOW) and brakes the
motor to 0 when IN1 = IN2
MC33936 is a braking motor controller that actively sets the output RPM.
of the motor according to PWM.


78339: <p>How can I use a MC33926 Motor Driver like it is offered for Arduino to drive forwards, backwards with a PWM and a direction control.</p>
<p><strong>The problem is that the MC33926 has Inputs IN1 and IN2 and not PWM and DIR as usual. How can IN1 and IN2 be directly used with a Arduino. Such as it is done in the ArduMower project.</strong></p>
<p>I'm also wondering under which conditions this is controller is energy efficient? If the load has a flywheel effect (e.g. high RPM mower disk) reducing RPM would waste energy?</p>
<p>I know there are different shields that have logic to drive the inputs with PWM and DIR, but the ArduMower PCB 1.4 decided to hook it up directly. Here is a hardware solution by pololu (I wish i would understand these two NAND gates and the Q2, but that's another problem):</p>
<p><a href="https://i.stack.imgur.com/FJDLe.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/FJDLe.png" alt="enter image description here" /></a></p>
<p><a href="https://www.pololu.com/product/1213/pictures" rel="nofollow noreferrer">https://www.pololu.com/product/1213/pictures</a></p>
 78339: <p>I have figured this so far:</p>
<ul>
<li>If the PWM frequency is too low, the load-free power consumption (100% PWM 200mA) of the
motors increases(!) rapidly when driving slowly, e.g. 33% to 1A.</li>
<li>From a certain PWM frequency (&gt;2kHz), the power consumption normalizes and driving more slowly requires less power.</li>
<li>MC33936 has IN1 and IN2, which are normally connected with IN1 = LOW and
IN2 = PWM or IN1 = PWM and IN2 = LOW (not good for most MCs)</li>
<li>Alternatively you can use IN1 = PWM and IN2 = LOW / HIGH <strong>BUT you must INVERT the PWM SIGNAL when running reverse</strong>, i.e. IN1 = PWM and IN2 = LOW or reverse IN1 = ~PWM (inverted PWM) and IN2 = HIGH. Otherwise you start driving at 0 PWM with 100% motor power. This is quite tricky, too.</li>
<li>MC33936 has no freewheel (except if ENABLE = LOW) and brakes the
motor to 0 when IN1 = IN2</li>
<li>MC33936 is a braking motor controller that actively sets the output RPM.
of the motor according to PWM.</li>
</ul>
