Stepper Motor Tester
I've been working with stepper motors a lot and athough I already had a stepper motor tester, it was too basic and could only test one motor at a time.
My first build was to make something simple, on perfboard, using the venerable stepper motor controller, the A4988. That was a disaster. So many wires that were hard to implement, then to troubleshoot. When it didn't work, I was so disgusted with it that I threw it in the garbage, scrounging the usable parts.
My second build was a printed circuit board. Note there are now two motors that can be tested simultaneously. I had all the parts attached to the cover of a box with cabled connectors attached to the parts and then to the PCB. TOO MANY CABLES! Just for the two LED's I needed two wire connectors, i.e. four wires. At this time I also had to make a box on my 3D printer. The injection molded ones I had were not deep enough.
My third build was also a PCB using two 2x5 ribbon connectors to connect parts on the lid to the Arduino UNO and my board below. Still a lot of wires, but what are you going to do?
I played around with a PCB design where all the parts would be on the PCB: 2 LEDs, 2 mode switches, 2 pots, 2 rotary encoders, a power switch, an LED power indicator and an LCD display. Not to forget the two 1x4 male JSC connectors that attach to the stepper motors. The problem with this is that all the parts are different heights, so a top that would fit over these parts could not unless all the parts were the same height. For a couple of switches, this would be no problem, but there are too many parts to modify in order to have the cover fit.
I also decided to replace the pushbutton start switches, which were going to be used for Start or Jog, with rotary encoders. The encoders have detents in the part with each representing a certain degree of movement in the steppers, i.e. a certain amount of steps. I can go backwards or forwards, and the shaft also serves as a pushbutton. All that functionality and the part fits in the same hole that the pushbutton switch was in.
I started with the idea of something "simple", but it got out of hand the more I looked into options for operation. In my case, I have a pot controlling stepper speed, and a rotary encoder advancing or reversing steps, a chunk at a time. I do this for two motors. A selection switch determines which mode the motor will be in. The LCD is for information reporting, such things as speed, rotation angle, etc.
Introduction
Screwups
I had been using 12 volts for the motors, through the A4988 motor drivers but this was not enough voltage and I was getting "stalls". The A4988 will take up to 35 volts so I upped the voltage input to my board to 24 volts.
I added a jumper, powered the box up and blew a capacitor. Why? Because the capacitor was only rated for 16V, good enough for a 12 volt system, but not a 24 volt system.
I did notice when I ran the system without USB power for the UNO that the UNO did not start because I forgot to tie in the 12 volts to the Vin of the UNO.
So I added a jumper from the input power (24Volts) to the Vin of the UNO, expecting the onboard regulator to drop the voltage to 5 volts for the UNO and rest of circuit.
The UNO regulator maxes out at 12 volts input. I applied 24 volts and blew the regulator! It can be fixed but still... A late change that wasn't properly thought out, that could have had more drastic consequences.
Oh...the LCD display runs on 5 volts, not 24 volts. Blew that up too.
Since then I added a buck converter to change the 24 volts to 12 volts to apply to the Vin of the UNO, which then converts it down to 5 volts for the remainder of the equipment. The 24 volts is needed for the motors/drivers.
How it Works
- Turning on the power lights up the LCD display with a message that lasts for 4 seconds and turns on the Power LED.
- The Jog/Continuous switch isset to default Jog position. This means the rotary encoder is live and ready to use
- Pressing the rotary encoder pushbutton selects the motor to activate. The LED shows which motor is active.
- Turning the knob clockwise makes the motor jog clockwise while turning the knob counter-clockwise reverses the direction of rotation. Steps are hard coded at 25, so for a 200 step/revolution motor, this represents an angular displacement of 45 degrees.
- Continuous rotation is controlled by the speed pot.
- The LCD can display position, rotation speed, steps, direction of travel, distance travelled.
Copyright 2024 Queenidog - All Rights Reserved
Video (plays from YouTube): (coming....)