So, looks like MarkT was right! So the boost converter is out. When I drew enough current on the output, I suddenly got a huge inrush current and drop in voltage on the supply side. So I tested another one of the boost converters with a high-power multi-tap resistor with 2.5, 5, 7.5, and 10 ohm options. Every time my Arduino rebooted, I saw a quick voltage drop. I used a spare Arduino Uno as a cheap oscilloscope, and scoped the main input voltage. And I can unplug some of the motors, boot it up, then plug the motors back in and it functions. The code ran fine with a different power setup, so I'm certain it isn't a RAM issue. I, initially, thought of a possible ground connection issue. Does it work with only one motor active, 2, 3, 4? From your descriptions the issue could be running out of RAM that the program runs in. Keep all 4 steppers connected, comment out the code for all but one motors, does the uController keep running? Un-comment a 2nd one and so an and so forth. Here's the main part of my code, at least: #include "ClockHand.h"ĬlockHand one = ClockHand(true, POSITIONS, SPEED, STEPS, MODE, 2, 4, 3, 5) ĬlockHand two = ClockHand(false, POSITIONS, SPEED, STEPS, MODE, 6, 8, 7, 9) ĬlockHand three = ClockHand(true, POSITIONS, SPEED, STEPS, MODE, 10, 12, 11, 13) ĬlockHand four = ClockHand(false, POSITIONS, SPEED, STEPS, MODE, 14, 16, 15, 17) Īny suggestions? Am I doing something dumb with my power setup? Thanks in advance! So I'm not sure how useful posting my code will be, but I'm happy to provide anything desired. (For example, I've overridden the run() and move() methods to disable the output pins when the motor is done moving and re-enable before moving, since I care about limiting power usage and don't need the holding torque. Some other info: I'm using the AccelStepper class, but I've written my own derived class from that which overrides some methods and adds some other new methods. I also discovered that I can plug in the unplugged stepper motors after startup, and that works too. I can then unplug the FTDI board and it will continue functioning. Here's the really weird part (to me, at least): I figured doing some serial debugging would be useful, so I hooked my FTDI board to the Pro Mini, and it powered up fine with all motors connected. However, if I unplug 2 or 3 of the 4 stepper motors from the driver boards, it will boot up. When I plug it in, the LEDs on the ULN2003 boards all briefly blink, then shut off, then repeat that ad-nauseam. Now I'm splitting the USB power to the NodeMCU and the XL6009, and boosting the power to the steppers up to 6v. I initially tested with a completely separate 9v supply with a buck converter set to 6v, and that worked great, so I grabbed some boost converters. The ULN2003 has a voltage drop of about 1v, which means the steppers were actually only getting 4v, so I decided to try providing 6v to the ULN2003 boards. However, the NodeMCU board seemed to be getting pretty hot, and I was having issues with the steppers missing steps. Initially, I was powering the steppers from the NodeMCU's VUSB pin, which passes through the USB voltage. Power is delivered by a 5v 2A USB charger (Samsung Adaptive Fast charger, testing shows it doesn't limit current). Pro Mini handles all of the stepper motors. It connects to an MQTT server for commands, and parses those commands and sends motor id and position updates to the Pro Mini via SoftwareSerial. Overview: NodeMCU provides 3.3v output to power the Pro Mini. I'm having trouble with an Arduino that appears to be constantly rebooting.
0 Comments
Leave a Reply. |