For a Weasley clock I’m making, I am trying to drive five stepper motors on one NodeMCU-32s. I am using these steppers with ULN2003 driver board with 5v 3a power adapter.
There’s a problem though, I can’t fit five times four pins on the ESP. I thought I’d solved that by adding a PCF8575, but then I found out that works different than I expected. The lights on the fifth ULN2003 board that I connected to the PCF8575 are dimly lit always, and the stepper doesn’t run. It tries to, though. I can hear it hum softly.
For added info, here’s the yaml that controls the fifth stepper:
api:
services:
- service: control_hand_5
variables:
target: int
then:
- stepper.set_target:
id: hand_5
target: !lambda 'return target;'
i2c:
sda: GPIO21
scl: GPIO22
scan: true
id: bus_a
pcf8574:
- id: 'pcf8574_hub'
address: 0x20
pcf8575: true
# Stepper Motors
stepper:
- platform: uln2003
id: hand_5
pin_a:
pcf8574: pcf8574_hub
number: 14
mode:
output: true
inverted: false
pin_b:
pcf8574: pcf8574_hub
number: 15
mode:
output: true
inverted: false
pin_c:
pcf8574: pcf8574_hub
number: 16
mode:
output: true
inverted: false
pin_d:
pcf8574: pcf8574_hub
number: 17
mode:
output: true
inverted: false
sleep_when_done: true
acceleration: 80 steps/s^2
deceleration: 80 steps/s^2
max_speed: 500 steps/s
One possible solution seems to be adding pull-up resistors - the problem is I’m rather new at all this and have no clue where to add those, and what kind of resistors. I’ve found values between 3k and 10k, which leaves me puzzled.
Another solution might be using MCP23017. I’m just not quite sure if that one is easier then the PCF8575. I might be mistaken again.
Last solution seems to be to swap the ULN2003’s for three 74HC595’s, to free up pins. I’ve found some info on how to wire those, but I just don’t quite know how to use them with ESPHome. Also, it seems to me I’d have to know how exactly the steppers work, which I don’t: If I swap the ULN2003’s out, I can’t use the ESPHome config for the steppers.
So, as I’m currently tired and can’t think anymore - could anyone with a little more experience then me help me out? Which option would work? Or do none of them work? Did I miss something somewhere to get the stupid PCF8575 working?
(Bonus: I also want to have five 3v solenoids working on the same PCF8575. Considering the way it’s currently going, I’m sure that doesn’t work as hoped either.
Extra bonus, if you’d like to see the clock I have images of the build in my instagram profile, @levend_lichtje. I’m not sure if linking to social media is allowed here.)