Thanks Tom, Dave, and Robin again for your help. If some do work, I'll update you guys on it. I'll test the remaining 7 and if none of them work, I'll just order some different ones. I will explain in details how they work, how to connect stepper motors with Arduino, how to set the current limit of the drivers and how to program them with or without an Arduino library. I think I am going to give up on these chips. They don't follow the truth table at all. The motor was probably running on the 5v logic supply. A discontinuity in the breadboard I later discovered caused the 12v psu not to be connected. It seemed to be working today, however the torque was very low. I think it's because I might be shorting something.Īnyways, removing the high value from the enable pins (EN) still has the output pins (Y) high all the time! These 3 chips are surely trashed. Im using several stepper motors from scanners/printers and a L293D dual H-bridge in the two control wire setup. However, when I put the oscilloscope wire to either one of the input pins (A), the voltage at that pin dropped to close to zero and the motor started spinning. I just tried the DC motor on one side of the chip and it did exactly the same thing (not work.) Both sides were getting 5V (this time I used 5V instead of 12V since the motor was different) so the motor did not spin. Put in a simple dc motor, may it needs to be connected.ĭave, I connected the ground of the 12V power supply and the Arduino together and then connected the 4 chip grounds to them too. I'll attach it to this post!īring enable pins low should bring the output low. :o I removed all of the UNO outputs and the motor inputs are all still at 12V! What is going on here?Ĭan you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png? Your grounds to the power supplies and arduino should all be common. Some stepper drives will blow up without a load. I think the chip can operate without anything connected ? I ordered 10 of these, so I really want to be able to use them in projects.Īs a test, disconnect the motor.
Arduino's sample circuit and program for bipolar stepper motors for example uses it. Author Arduino Last revision Stepper motors, due to their unique design, can be controlled to a high degree of accuracy without any feedback mechanisms. Thanks Robin, I just figured that with the bountiful amount of resources available for the SN754410 that it would also be easy to use. Learn how to control a variety of stepper motors using unipolar / bipolar circuits with Arduino. But I did mention that in your previous Thread. int positionOne = 8 Ī specialized stepper motor driver such as a Pololu A4988 would be easy to use. Here is the code again for quick reference. Does anyone have any idea of what I should do? I appreciate any help. The bipolar stepper will never run if its inputs don't alternate since these require the coils being energized in precise pattern to step. I slowed the code down from 1 ms to 2 seconds to be able to see this on the scope. However, the motor inputs from the driver are all high at 12V all the time even though the UNO inputs are indeed alternating according to the code. I verified the voltages using an oscilloscope, so those are good. The remaining pins are either motor inputs or UNO outputs. Stepper Motors with Arduino Getting Started with Stepper Motors. I have pin 8 at 12V from the power supply. I have pins 4, 5, 12, and 13 tied to ground between my analog power supply and the UNO. I can spin the axle freely with my hands, so it's not even locked.Ĭurrently, I have 5V from the UNO going to pins 1, 9, and 16. I thought the SN754410 would be easy to use, but the motor is not turning. This is very similar to my previous topic, since I'm using the same motor, same microcontroller, and same code. I want it more if its possible.Hey all, I want to use an UNO to control a motor driver, specifically the SN754410 (click for datasheet) to get a bipolar stepper motor to run. Is there a chance that we can get more speed out of it? Now we are running it at about 255 rpm. delayMicroseconds(pulseWidthMicros) // probably not needed Int millisbetweenSteps = 1 // millisecondsĭelayMicroseconds(pulseWidthMicros) // this line is probably unnecessaryĭigitalWrite(ledPin, !digitalRead(ledPin)) Int pulseWidthMicros = 50 // microseconds