Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Computer Controlled Stepper Motor

In this article, we will connect a stepper motor to our computer's parallel port, and then we will write some code to control it with the scroll wheel on a mouse (video). If you have never worked with stepper motors, you will surely have a lot of fun with this project. With stepper motors, you can build things such as robots, automatic fish feeder, or even a computerized etch-a-sketch! I'll start off by discussing the basics of parallel ports and stepper motors. Then, we will build the driver circuit required for connecting a stepper motor to a parallel port. In the final section, we will learn how to communicate with parallel ports and how stepper motors are controlled.
Ashish Blog

Difficulty: Easy
Time Required: 1-3 hours
Cost: Less Than $50
Software: Visual C# or Visual Basic Express Editions
Hardware: A 5-wire unipolar stepper motor (these could also be salvaged from old 5¼" floppy disk drives), ULN2003 IC (stepper motor driver), wire, stripboard (or a solderless breadboard ), solder and DB-25 Male connector (buy these two if you can solder. Soldering is not necessary for doing this project, but it will ensure that your connections are secure), DB25 (female/male) parallel port cable, a multimeter, a power adapter (with voltage rating depending on your motor's requirements)
Download: Download

WARNING: Before we begin, I would warn you that the PC parallel port can be damaged quite easily if you make incorrect connections. If the parallel port is integrated to the motherboard, repairing a damaged parallel port may be expensive, and in many cases, it is cheaper to replace the whole motherboard than to repair that port.

         Your safest bet is to buy an inexpensive I/O card which has a parallel port and use it for your experiment. If you manage to damage the parallel port on that card, replacing it will be easy and inexpensive.
Don't let that warning worry you too much, because there is a lot of fun to be had with these types of projects. Find yourself an 'antique' PC, if you can, or just buy an I/O card which has a parallel port.

Parallel Port Basics
A parallel port is a socket found in personal computers for interfacing with various peripherals such as printers, scanners and even some webcams. On many computers, particularly laptops, the parallel port is omitted for cost savings, and is considered to be a legacy port. However, in laptops, access to the parallel port is still commonly available through docking stations. Here's a picture of a DB-25 parallel printer port on the back of a laptop.

When a PC sends data to a printer or other device using a parallel port, it sends 8 bit of data (1 byte) at a time. These 8 bits are transmitted parallel to each other, as opposed to the same eight bits being transmitted serially through a serial port.
The pin assignments on a parallel port are as follows:

clip_image002  clip_image002[8]

Pin No.

Pin Name

Description

1

Strobe

Usually remains high but is pulled low whenever
the computer sends a byte of data. This drop in
voltage tells the printer that data is being sent.

2 - 9

D0 - D7

The eight data ports. We will be using these in our
project

10

nAck

Sends the acknowledge signal from the printer to
the computer.

11

Busy

If the printer is busy, it will set this pin to high.
Then, it will pull to let the computer know it is
ready to receive more data.

12

Paper Out

The printer lets the computer know if it is out of
paper with this pin.

13

Select

Device indicates it is ready by pulling high.

14

Autofeed

The computer sends an auto feed signal to the
printer through Pin 14.

15

Error

If the printer has any problems, it drops the voltage
to less than 0.5 volts on Pin 15 to let the computer
know that there is an error.

16

Initalize

This pin is pulled low by the computer whenever a
a new print job is ready for the printer.

17

Select-In

Pin 17 is used by the computer to remotely take
the printer offline.

18-25

Ground

These are mostly used for competing circuits

What are stepper motors?
Stepper motors are brushless, synchronous electric motors which can divide a full rotation into several steps. While conventional electric motors spin continuously, stepper motors only move one step at a time. They can be used for precise motion and position control as they can be turned to a precise angle.
The simplest way to think of a stepper motor is a bar magnet and four coils:

clip_image002[10]

    When current flows through coil "A" the magnet is attracted and moves one step forward. Then, coil "A" is turned off and coil "B" is turned on. Now, the magnet takes another step, and so on. A similar process happens inside a stepper motor, but the magnet is cylindrical and rotates inside the coils. For a stepper motor to move, these coils should be activated in a correct sequence. These sequences are called stepping modes:

1. Single Stepping (Single-Coil Excitation): This is the simplest stepping mode. In this mode, each successive coil is energized and the motor moves one full step at a time. Therefore, a motor with a step angle of 7.5 degrees will rotate through 7.5 degrees with each step. Here's how single stepping works:

Pulse

Coil 1

Coil 2

Coil 3

Coil 4

1

1

0

0

0

2

0

1

0

0

3

0

0

1

0

4

0

0

0

1

clip_image002[12]

2. Half Stepping: The difference between single stepping and half stepping is, that for the same step rate, half stepping gives you half the speed but twice the resolution of a single step. For a motor with a step angle of 7.5 degrees, half stepping it would result in approximately 3.75 degrees of rotation. Here's how it works:

Pulse

Coil 1

Coil 2

Coil 3

Coil 4

1

1

0

0

0

2

1

1

0

0

3

0

1

0

0

4

0

1

1

0

5

0

0

1

0

6

0

0

1

1

7

0

0

0

1

8

1

0

0

1

clip_image002[14]

3. High Torque Stepping (Two-Coil Excitation):

As the name suggests, this stepping mode would result in higher torque:

Pulse

Coil 1

Coil 2

Coil 3

Coil 4

1

1

1

0

0

2

0

1

1

0

3

0

0

1

1

4

1

0

0

1

Now that we know a little about parallel ports and stepper motor, its time to get started!


Building the electronics
The electronics for controlling a stepper motor with a parallel port is very simple. We will be making use of the ULN2003 driver IC, which contains an array of 7 darlington transistors with integrated diode protection, each capable of driving 500mA of current. The easiest method of building the circuit is on an electronic breadboard. They are available at all electronics shops. Here's the circuit:

clip_image002[16]

As you can see in the diagram, D0 (Pin 2) on the parallel port is connected to Pin 1 on the ULN2003 stepper driver IC,
D1 (Pin 3) is connected to Pin 2 on the IC,
D2 (Pin 4) is connected to Pin 3 on the IC, and
D3 (Pin 5) is connected to Pin 4 on the IC.
Wires on a stepper motor are color coded. For identifying which wire belongs to which coil, you could try searching for your motor's specs on the Internet. If you are unable to find detailed information for your motor (like me), then you could simply use a multimeter for identifying the wires on your stepper. First of all, identify the common power wire of your stepper by checking the resistance between pairs of wires using a multimeter. The common power wire will be the wire with only half as much resistance between it and all the others. For my motor, the red wire is the common power wire:

clip_image002[18]

Yellow wire - Coil 1
Brown wire - Coil 2
Red wire - Common power wire
Orange wire - Coil 3
Black wire - Coil 4

However, if your guesses are not right, the motor will not rotate, but will only wiggle from side to side. So, I would recommend reading this article if you're not sure. After you've recognized the wires, just build the circuit on a breadboard or a stripboard. I initially built everything on a breadboard, but in the end, I soldered everything on a stripboard.

clip_image002[20]

   In the picture above, notice that I've inserted the wires from the IC directly into my parallel port. This is a very clumsy thing to do. So, I soldered a DB-25 MALE connector so that it would be easier to plug/unplug the circuit to the parallel port cable:

clip_image002[22]

   Test the circuit with a multimeter and make sure all the connections are correct and that there are no short circuits. Then, plug one end of the parallel port cable to the circuit and the other end to the parallel port socket on your computer. That's it! Its time to write some code! Smiley

Let the code do the rest...
Accessing the parallel port was much easier in versions of Windows that did not use the Windows NT kernel. In the DOS and Win9x days, programs could access the parallel port using simple inportb() and outportb() subroutine commands. The OS would happily let programs input and output data to the parallel port in the form of 16-bit integers. However, in operating systems such as Windows XP, access to the parallel port is inhibited. This is when the InpOut32.dll project came. This free library quickly became the standard way to access the parallel port in any version of Windows among people interested in parallel port interfacing and programming.
For using inpout32.dll with your code, place the dll in your System32 folder. Now we'll use P/Invoke as shown below:

C#:
 1: private class PortAccess
 2: { 
 3: [DllImport("inpout32.dll", EntryPoint="Out32")]
 4: public static extern void Output(int address, int value);
 5: }
VB:
 1: Private Class PortAccess 
 2: Public Declare Sub Output Lib "inpout32.dll" Alias "Out32" (ByVal address As Integer, ByVal value As Integer)
 3: End Class

The PortAccess.Output method takes in two parameters, address and value. For knowing your parallel port address, go to Control Panel > System > Hardware > Device Manager > Ports (COM & LPT) > Printer Port (LPT1/LPT2) > Properties > Resources > Resource Settings. Here, you'll see your parallel port address in hexadecimal format:

clip_image002[24]

As you can see in the screenshot above, my I/O range is "0378 - 037F". Hexadecimal "0x378" is equivalent to "888" in decimal. If you are using LPT2, your address would probably be "0x278" (Decimal equivalent is "632").
Now, a possible call from managed code might look like this:

C#:

PortAccess.Output(888, 255);

VB:
PortAccess.Output(888, 255)

Here, decimal "255" is equivalent to "1111 1111" in binary. Sending "255" would set all output ports on your parallel port (D0 - D7), to high. Similarly, sending "0" would set all of them to low.
Lets write some code to move our stepper motor one full step at a time. Recall that in single stepping, each successive coils in the motor are energized in the following sequence, one coil at a time.

Here's a sample code for executing this sequence and moving the stepper in one direction:

C#:

 1: PortAccess.Output(888, 1); // 1 decimal = 0001 binary. This will set D0 to high
 2: System.Threading.Thread.Sleep(100); // delay
 3: PortAccess.Output(888, 2); // 2 decimal = 0010 binary. This will set D1 to high
 4: System.Threading.Thread.Sleep(100); // delay
 5: PortAccess.Output(888, 4); // 4 decimal = 0100 binary. This will set D2 to high
 6: System.Threading.Thread.Sleep(100); // delay
 7: PortAccess.Output(888, 8); // 8 decimal = 1000 binary. This will set D3 to high

VB:

 1: PortAccess.Output(888, 1) ' 1 decimal = 0001 binary. This will set D0 to high
 2: System.Threading.Thread.Sleep(100) ' delay
 3: PortAccess.Output(888, 2) ' 2 decimal = 0010 binary. This will set D1 to high
 4: System.Threading.Thread.Sleep(100) ' delay
 5: PortAccess.Output(888, 4) ' 4 decimal = 0100 binary. This will set D2 to high
 6: System.Threading.Thread.Sleep(100) ' delay
 7: PortAccess.Output(888, 8) ' 8 decimal = 1000 binary. This will set D3 to high

Switch on your motor's power supply by connecting the power adapter. Then try running this piece of code to see if it works!
I like using the scroll wheel on my mouse for controlling the motor. For doing this, first create an enumeration for the different stepping modes:

C#:

 1: private SteppingMode stepMode;
 2:  
 3: private enum SteppingMode
 4: { 
 5: SingleStep, 
 6: HalfStep, 
 7: HighTorqueStep
 8: }

VB:

 1: Dim stepMode As SteppingMode
 2:  
 3: Private Enum SteppingMode 
 4: SingleStep 
 5: HalfStep 
 6: HighTorqueStep
 7: End Enum

The form level variable, stepMode stores the selected stepping mode.
Next, we'll wire the form's MouseWheel event to an event handler. Write the following code the InitializeComponent function or the form's constructor:

C#:
this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseWheel);
VB:
AddHandler Me.MouseWheel, AddressOf Me.Form1_MouseWheel

Now, we will provide the implementation of Form1_MouseWheel in our form. I've used a StatusStrip with four labels for displaying the stepping mode, direction of movement, and the decimal value being sent to the parallel port along with its binary representation. For determining the direction in which the scroll wheel rotates, we'll use the MouseEventArts.Delta property, which, in the words of MSDN, gives a signed count of the number of detents the mouse wheel has rotated. A detent is one notch of the mouse wheel. Here's a sample code for single stepping the motor with the scroll wheel:

C#:

 1: private int output = 0;
 2:  
 3: private void Form1_MouseWheel(object sender, MouseEventArgs e)
 4: {
 5: switch (stepMode)
 6: {
 7: case SteppingMode.SingleStep:
 8: // Single Stepping
 9:  
 10: if (e.Delta > 0)
 11: {
 12: if (output == 1) output = 2;
 13: else if (output == 2) output = 4;
 14: else if (output == 4) output = 8;
 15: else if (output == 8) output = 1;
 16: else output = 1;
 17:  
 18: directionStatusStripLabel.Text = "Direction: 1";
 19: decimalStatusStripLabel.Text = "Decimal: " + output.ToString();
 20: binaryStatusStripLabel.Text = "Binary: " + ConvertToBinary(output);
 21: PortAccess.Output(888, output);
 22: }
 23: else
 24: {
 25: if (output == 1) output = 8;
 26: else if (output == 8) output = 4;
 27: else if (output == 4) output = 2;
 28: else if (output == 2) output = 1;
 29: else output = 1;
 30:  
 31: directionStatusStripLabel.Text = "Direction: 0";
 32: decimalStatusStripLabel.Text = "Decimal: " + output.ToString();
 33: binaryStatusStripLabel.Text = "Binary: " + ConvertToBinary(output);
 34: PortAccess.Output(888, output);
 35: }
 36: break;
 37: }
 38: }
 39:  
 40: private string ConvertToBinary(int DecimalValue)
 41: {
 42: // Decimal -> Binary conversion
 43:  
 44: int digit;
 45: string binaryForm = "";
 46: char[] binaryArray;
 47:  
 48: do
 49: {
 50: digit = DecimalValue % 2;
 51: binaryForm += digit;
 52: DecimalValue /= 2;
 53: } while (DecimalValue != 0);
 54:  
 55: //The digits in the variable, binaryForm, are in reverse order
 56: // We will reverse it back to normal.
 57: 
 58: binaryArray = binaryForm.ToCharArray();
 59: Array.Reverse(binaryArray);
 60:  
 61: binaryForm = new string(binaryArray);
 62:  
 63: return String.Format("{0:0000}", int.Parse(binaryForm)); ;
 64: }

VB:

 1: Dim output as Integer = 0
 2: Private Sub MainForm_MouseWheel(ByVal sender As Object, ByVal e As MouseEventArgs)
 3: Select Case (stepMode)
 4: Case SteppingMode.SingleStep
 5: ' Single Stepping
 6: If (e.Delta > 0) Then
 7:  
 8: If (output = 1) Then
 9: output = 2
 10: ElseIf (output = 2) Then
 11: output = 4
 12: ElseIf (output = 4) Then
 13: output = 8
 14: ElseIf (output = 8) Then
 15: output = 1
 16: Else
 17: output = 1
 18: End If
 19:  
 20: directionStatusStripLabel.Text = "Direction: 1"
 21: decimalStatusStripLabel.Text = ("Decimal: " + output.ToString)
 22: binaryStatusStripLabel.Text = ("Binary: " + ConvertToBinary(output))
 23: PortAccess.Output(888, output)
 24:  
 25: Else 'If (e.Delta < 0)
 26:  
 27: If (output = 1) Then
 28: output = 8
 29: ElseIf (output = 8) Then
 30: output = 4
 31: ElseIf (output = 4) Then
 32: output = 2
 33: ElseIf (output = 2) Then
 34: output = 1
 35: Else
 36: output = 1
 37: End If
 38:  
 39: directionStatusStripLabel.Text = "Direction: 0"
 40: decimalStatusStripLabel.Text = ("Decimal: " + output.ToString)
 41: binaryStatusStripLabel.Text = ("Binary: " + ConvertToBinary(output))
 42: PortAccess.Output(888, output)
 43: End If 
 44:  
 45: End Select
 46: End Sub
 47:  
 48: Private Function ConvertToBinary(ByVal decimalValue As Integer) As String
 49: ' Decimal -> Binary conversion
 50:  
 51: Dim binaryForm As String = ""
 52: Dim digit As Integer
 53:  
 54: Do
 55: digit = decimalValue Mod 2
 56: If digit = 0 Then
 57: binaryForm = "0" + binaryForm
 58: Else
 59: binaryForm = "1" + binaryForm
 60: End If
 61:  
 62: decimalValue = decimalValue \ 2
 63: Loop Until decimalValue = 0
 64:  
 65: Return CLng(binaryForm).ToString("0000")
 66: End Function

In the MouseUp event of the form, we'll write some code which will allow us to switch between different stepping modes by right clicking on the form. Left clicking on the form would release the motor (i.e. de-energize the coils).

C#:

 1: private void Form1_MouseUp(object sender, MouseEventArgs e)
 2: {
 3: if (e.Button == MouseButtons.Right)
 4: {
 5: // Switch between different stepping modes
 6:  
 7: switch (stepMode)
 8: {
 9:  
 10: case SteppingMode.SingleStep:
 11: stepMode = SteppingMode.HalfStep;
 12: steppingModeStatusStripLabel.Text = "Step Mode: Half";
 13: break;
 14:  
 15: case SteppingMode.HalfStep:
 16: stepMode = SteppingMode.HighTorqueStep;
 17: steppingModeStatusStripLabel.Text = "Step Mode: High Torque";
 18: break;
 19:  
 20: case SteppingMode.HighTorqueStep:
 21: stepMode = SteppingMode.SingleStep;
 22: steppingModeStatusStripLabel.Text = "Step Mode: Single";
 23: break;
 24:  
 25: }
 26: }
 27: else if (e.Button == MouseButtons.Left)
 28: {
 29: // Release the motor
 30:  
 31: output = 0;
 32: PortAccess.Output(888, output);
 33: decimalStatusStripLabel.Text = ("Decimal: " + output.ToString);
 34: binaryStatusStripLabel.Text = ("Binary: " + ConvertToBinary(output));
 35: }
 36: }

VB:

 1: Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
 2:  
 3: If (e.Button = MouseButtons.Right) Then
 4: 'Switch between different stepping modes
 5: Select Case (stepMode)
 6:  
 7: Case SteppingMode.SingleStep
 8: stepMode = SteppingMode.HalfStep
 9: steppingModeStatusStripLabel.Text = "Step Mode: Half"
 10:  
 11: Case SteppingMode.HalfStep
 12: stepMode = SteppingMode.HighTorqueStep
 13: steppingModeStatusStripLabel.Text = "Step Mode: High Torque"
 14:  
 15: Case SteppingMode.HighTorqueStep
 16: stepMode = SteppingMode.SingleStep
 17: steppingModeStatusStripLabel.Text = "Step Mode: Single"
 18:  
 19: End Select
 20:  
 21: ElseIf (e.Button = MouseButtons.Left) Then
 22: 'Release the motor
 23: output = 0
 24: PortAccess.Output(888, output)
 25: decimalStatusStripLabel.Text = ("Decimal: " + output.ToString)
 26: binaryStatusStripLabel.Text = ("Binary: " + ConvertToBinary(output))
 27: End If
 28:  
 29: End Sub

Releasing the motor and letting it free-wheel is important, because I've noticed that stepper motors heat up very quickly. I don't know whether one can burn out a stepper motor or not, but the safest way to turn off the motor completely would be to disconnect its power supply.

Conclusion

We have reached the end of this article, but I sure hope it inspires you to start your own experiments with parallel port interfacing and programming. You can use this port to play with a lot of other things like LEDs, relays, etc. Over the last couple of months, I have been using my computer's parallel port for controlling several things, such as lights, fans, RC cars, robots and whatnot. There are things which could be extended, and added to this stepper motor project. You could, for example, use it as a web controlled camera panner. I have used mine as a camera panner which tracks moving objects using a webcam and lasers (video). Just remember that your imagination is the only limit. So, unleash your imagination and the sky is the limit. Have fun!

About the Author

Ashish Derhgawen is an IT student, currently living in New Delhi, India. He has been coding since fourth grade. Some of his other interests are harmonica playing, wildlife and cricket. When he’s not at school, he spends his time working on unusual projects related to robotics, webcams, and electronics besides others. You can reach Ashish through his blog at http://ashishrd.blogspot.com.

Filed under: ,

Follow the Discussion

  • Clint RutkasClint I'm a "developer"

    @Nila may just be easier to buy something off the shelf to do this.  At a certain point, stuff becomes a bit complicated.  Plus it depends on the connector there.  I'm not sure if that is a standardized connector

  • Clint RutkasClint I'm a "developer"

    @Will, in theroy, it should.  For a USB to parallel port to work, it would have to have all the functionality that it would have if it was just hooked into a normal computer.

    Worst case, you could return it if it doesn't work.

  • WillWill

    Hey I have a question about parallel port adapters?

    I have read on the Internet that you can control an rc car with a parallel port and a simple prgram and a little bit of wiring. I found out how to do this at jbprojects.net and I've actually done this and It worked on my desktop, but I want to know if I would get the same result if I bought a usb to parallel port adapter? because I want to be able to do this on my laptop.

    Please can you help me.

    Email: wcjones9898@yahoo.com

  • ravi ravi

    thanks a lot !! u helped me saving lot of money for my final project ! i am doing spray bot project (hektor), all i need to know is can i control 3 motors by using a single parallel port ! or should i convert two usbs in to parallel bot !! thanks a lot.......

  • Clint RutkasClint I'm a "developer"

    @Nachiket, Coding4Fun shows how to do some hard stuff and then gives you the ability to play with it.  Doing 1 and 2 shouldn't be too hard.  And 3, I wouldn't recommend it.  

  • NachiketNachiket

    Hey first off,uve got sum gr8 ideas over here,but ive got a few questions...as ive read this article only a couple of times,wanted 2 knw...whether

    1) instead of manually controlling the stepper motor via mouse scroll, can v set its rotation in our code (like 1 complete rotation so that v do not need 2 scroll and it can b triggered by a button on the form?) and put it in a loop or sumthing 2 dat sort?

    2) if v can implement the above part can v set the auto rotation of the stepper motor to 180° instead of 360° and can v put this in a loop too? (as in 0-180° & back frm 180-0°)

    3) lastly, can v connect 2 stepper motors on a single parallel port & get them working synchronously thru a single prog or otherwise?

    -thanks

    metal & peace, Cheers!

  • Clint RutkasClint I'm a "developer"

    @ichal if the wire layout matches, sure.

  • ichalichal

    can i use stepper motor floppy 3.5 ? please help me. i need your help. send me information at aku_ichal@yahoo.com. thanks brother

  • Clint RutkasClint I'm a "developer"

    @Kartik Menda, this project is source code only.  Compiling it should make it work.  I'm not sure if this works with Vista or Win7 as  Ashish tested in XP.

    I'd just do a very basic app to test, click a button and make it move.  See if a multimeter pulls voltage.  I'd test your circuit as well.

  • Kartik MendaKartik Menda

    I am not able to get any output pulses from my parallel port after I run the program and scroll the mouse wheel accordingly. The parallel port is built in on the motherboard. I have debugged the VB code. I can see the Step Mode, Direction, Decimal and Binary change when I scroll the wheel. I am trying to test any output voltage on the parallel port using a multimeter, but am unable to get any voltage. I have placed the said DLL file in the System 32 folder. Can you please tell me what I could be doing wrong? Can you please send me the EXE file from the VB code?

  • Kartik MendaKartik Menda

    What sort of output signal should I expect from the computer's parallel port directly (without connecting the electronic circuit) when the program is running and I scroll the wheel.

    At the moment, all I am getting a fixed voltage of 3.35V at D0, D1, D2 and D3, and no fluctuation when i scroll the wheel.

  • Clint RutkasClint I'm a "developer"

    @Sean, getting Ashish to chime in

  • SeanSean

    I just blew up my second ULN chip (it happens the minute I plug in the DB25 cable), please excuse my ignorance, I thought I could copy the method here, but I seem to be having issues.  Does anyone have any insights as to what I may be doing wrong.  I'm obviously wiring something wrong.

  • AshishAshish

    @Sean, make sure your motor's power supply (12-24V as shown in the circuit), is completely isolated from the parallel port side of the circuit (pins 1,2,3,4 on the ULN chip). The input pins of the ULN chip (1,2,3,4 etc) should only receive 5V from the parallel port.

    If this doesn't help, mail me pictures of your circuit. I'll see if I can find the problem. My email is - ashish (dot) derhgawen (-at-) gmail (dot) com.

    Cheers,

    Ashish

  • LeskoLesko

    Great article/tutorial!

    I was looking for something like that for a long time. I did everithing just the way you did except that i wrote my code in Python + PySerial. I learned so much, thank you!

    All good wishes from Slovenia

  • MorneMorne

    Hi where can I buy a stepper motor driver? How does it look will you please post a link to an image.

    Thanks

  • Clint RutkasClint I'm a "developer"

    @morne, a stepper motor is a style of motor.  You can buy them all over depending on usage.  Trossen Robotics, has some.  www.trossenrobotics.com/.../robot-stepper-motors.aspx.

    Regarding a picture, the article here has a picture.  The picture with a computer mouse, the stepper motor is in the lower-right side of the picture.

  • nicenice

    nice

  • ashimashim

    hey ur source code is not right can u mail me complete source code.....can i have ur contact no plz its urgent reply soon....(ashim30@gmail.com)

  • Clint RutkasClint I'm a "developer"

    @ashim, you will have to be a bit more helpful.  What doesn't work for you?  Ashish's code is targeted at what he did in the article.  If you changed stuff, you'd have to make the appropriate changes.

  • Clint RutkasClint I'm a "developer"

    @ashim, you will have to be a bit more helpful.  What doesn't work for you?  Ashish's code is targeted at what he did in the article.  If you changed stuff, you'd have to make the appropriate changes.

  • harveyharvey

    hi.. can you help me on how to use the input pins of parallel port.. and how to send 5volts to parallel port.. what is the circuit and code to used? thank in advance,,

  • Clint RutkasClint I'm a "developer"

    @harvey the article above tells you how to leverage the parallel port as a control system for a talking to a stepper motor.

    I'd be very careful sending power into a computer, from personal experience, you can easily fry the electronics.

  • HassanHassan

    Cant it work on simple C language??

  • Clint RutkasClint I'm a "developer"

    @Hassan I suppose you could but the more complex scenario.  The act of using a higher level language will at times makes doing some stuff a bit harder

  • nishannishan

    worst project
     

  • sunnysunny

    hi,
    I am working for a project and needs a stepper motor to rotate in say 10-20 rounds on command. I was wondering if I can get a ckt for the same. I am an optical engg and want a ckt to rotate platform on optical bench. hope to get an early reply.

  • hi,

    thanks a lot !! this project & all your projects help me more'

    I trying to do like this project,but  i have not parallel port in my dell laptop

    what can i do' without using interface  bettween parellal & serial'???

     thanks.

     

  • ravinderravinder

    hi
    can i control 20 to 30 dc motors via computer if so please send me a circuit diagram. thaaaaaaaaaank u

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.