The response from
here seems really helpful ...
These chips are not as simple as they seem because they have to sense which side is driving the signal and change direction as required. Both sides have pullup resistors so you will see high levels on all the pins even with no inputs.
Unless you actively drive one side low, the chip may think that pin is an output. So grounding input A should drive B low and grounding input B should drive A low. Anything else results in a high on both A (3.3V) and B (5V).I think the "B" pins need to be persuaded to be inputs.
As a test, disconnect B1 from the Arduino and connect it to GND, then power up the device ... does A1 read low (0V)?
If it does read low, then instead try a 1K pulldown resistor from B1 to GND, then power up the device ... does A1 read low (0V)?
If it does read low, then reconnect B1 to the Arduino (do not remove the pulldown resistor). Test your code ... does the PWM signal pass through?
If it does, then you could probably eliminate the pulldown resistor and just initially drive the signal low in your setup prior to starting the PWM.
Did you try reply#9? (6v6gt)See question by TomGeorge.