I want to ask - Is it possible to run bipolar stepper motor with uln2003 or uln2803 ic??

I want to ask - Is it possible to run bipolar stepper motor with uln2003 or uln2803 ic??, because l293d ic is very costly here. If yes then can you plz post a schematic here. I have searched over the net and found no useful information about it. plz HELP?

Question by ram_aloktripathi 7 years ago  |  last reply 7 years ago


ULN2003 Just wondering if I can connect more than just 1 IC to the same parallel port ?

I want to connect multiple stepper motors for CNC machines or robotics. Connecting 1 ULN2003 to the parallel port seems pretty simple but how to connect 3 ? Anyone know of a schematic diagram or some advice please ? The motors should work simultaneously.

Question by Havetotryit 9 years ago  |  last reply 8 years ago


28BYJ-48 stepper motor driver....ULN2003 or L298N?

Hi, My goal is to have the 28BYJ-48 stepper motor turn clockwise and then counterclockwise periodically, like a pendulum motion. I have built a circuit using ULN2003 Darlington Array since most tutorials online use that. But recently I've seen some sources using the L298N Dual H-Bridge. Questions: Is it more efficient to use to L298N? I heard the ULN2003 draws more current than it needs. To add to the confusion, although the 28BYJ-48 is an unipolar motor, it can be ran in bipolar mode as well. Is the L298N only for bipolar mode? Here is the date sheet of L298N Does running a motor in bipolar mode offer twice the electrical efficiency than unipolar mode? In another word, if the load is the same, battery is twice as long (theoretically)? Please advise. Thanks

Question by DELETED_MakiY2 1 year ago  |  last reply 1 year ago


2 uln2003 stepper drivers linked

Lots of build yer own stepper motor driver boards here. CNC also but, I  have these little ULN2003 driver boards that come with the small BLJ steppers...you do too.  I've seen linking 2 SF easy steppers together but, those cost. anyone know how to tie these cheapy driver boards together-to drive 2 stepper motors with few  /fewer pins from the microcontroller to drive 'em? would some sort of shift register arrangement be in play here?

Topic by schel 5 years ago  |  last reply 5 years ago


can I use l293d in place of uln2003??

Question by ram_aloktripathi 7 years ago  |  last reply 7 years ago


how do i build a voltage multiplier for changing 6 volts to 12 volts using diodes and capasitors?

Hi, since my last question failed miserable resulting in me wasting a bunch of good dollars on a useless , and at the time what was described as a "voltage multiplier", uln2003an darlington transitor array which doent seem to do anything like i was told, i am going oldschool and building a voltage multiplier so i can switch a 12v relay card from here, to power 2 motors via remote control using a 9 amp 12 volt current (10 bats X 1.2v X 3A )X 3 sets in paralell , for my r/c tank which i have used a receiver from a toy car which i have increased its remote control signal to up to 100m away (its a 40mhz remote from china nothing special). anyway i am trying to aquire a 12 volt current ( any amperage above what seems to be less that 5 ma according to the relay cards description) from my receiver that gives me 6 volts 700ma from the motor and 4 volts 900ma for the servo. recently i lost a diode for one of the 4 relay cards i am using so i sent my mother to buy me a uln2003an from jaycar and a single 1n4148 diode from jaycar as well, somehow she was tricked into buying a 100 bulk pack (wich she payed twice for despite getting only 1 bulk pack) but did get me the diode i needed for the relay to work without blowing the "on " led rendeing the relay for somereason inoperable. i have 99 1n4148 diodes now and i want to know if i can make these into a voltage multiplier for the relay to get turned on at 12 volts, using capasitors as well, i know it can be doen, i just dont know what kind of capastor to use or how to assemble it once i have the capasitor. please help em i have een stuck with this for ages and the answer is no i dont know how to use a transistor to switch the relay all i see is 4 ports 12v in 12 v out (for switching relay on) and the switcing part wich is conected to relay contacts http://www.jaycar.com.au/productView.asp?ID=ZR1105&keywords;=1n4148&form;=KEYWORD http://www.jaycar.com.au/productView.asp?ID=KC5434&keywords;=relay+kit&form;=KEYWORD links to the diodes i have and the relay ard also heres the transistor i have http://www.jaycar.com.au/productView.asp?ID=ZK8855&keywords;=uln2003&form;=KEYWORD despite description it says uln2003an on the chip

Question by oldmanbeefjerky 8 years ago  |  last reply 8 years ago


can i use l293d instead of uln2003

As in this instructables https://www.instructables.com/id/Laser-cutter-start-slicing-stuff-for-under-50-dol/ directly connected to the parallel port for a bipolar stepper motor?

Question by bengus 8 years ago


Can i use Stepper motor Stepper Motor 42BYGH4417 in uln2003 ???

Can i use Stepper motor Stepper Motor 42BYGH4417 in uln2003 ??? Please answer, i need help :(  sorry im newbie 

Question by dannisa 2 years ago  |  last reply 2 years ago


can I connect a 24v stepper motor on a uln2003 stepper motor driver? Answered

I'm triing to make a cnc and I thougt use this stepper motor driver, but my stepper motors are rated 24v and I think that uln 2003 didn't hold that voltage.

Question by tgferreira184 7 years ago  |  last reply 7 years ago


Shift Register and Relays? Answered

Using a 74hc595 shift register to a ULN2003 darlington array to control 7 relays, all controlled by an MSP430, connected via RJ11.  The relays are controlling LED Christmas light strings on and off.  Everything seems to be functioning so far but the problem is that relays that aren't being told to turn on sometimes are turning on.  The shift register is connceted with Qa to the master reset of the register so I can clear is quickly, but so far I have been just leaving it high.the other 7 outputs (Qb - Qh) connected to the base pins of the ULN2003 (B1 - B7).  The outputs of the ULN2003 connected to the relay coils, COM connected to 5v, emitter connected to ground.  I have tried pull down resistors on the base pins, I have tried tweaking the code which I tried to set up to just bit bang the shift register, make it as simple as possible just to test it and a sample is provided below for one iteration.  I have it looping through several of these to turn a single channel on each time to check to make sure all the channels work.  It however sometime make a channel just flicker, not turn on at all, or turns several channels on at the same time.  I am curious as to whether this is a hardware problem (pullup/down resistors, filtering caps, more clamping diodes then what is built into the ULN2003, whatever) or whether I am just an incompetent programmer.  I am fairly certain the problem lies somewhere between the driver seat and the steering wheel though.  One thought I had but do not want to try right away is it possible the shift register is bad?  Overheated from soldering?  I try to solder one pin on chips, then a pin on another component, then a pin on the opposite side of the chip, etc to keep chips cool when soldering them, but are the 74hc595 very heat sensitive maybe?  Would appreciate a fast answer, looking to build 5 more of these so I can control all my Christmas lights. This was supposed to be a cheap and dirty project so I didn't get into Triacs and dimming, I just want to turn lights on and off as I see fit.   i = 30000;   P1OUT = 0x00;        //Channel 7 (unused)   P1OUT |= 0x02;       //Clock in   P1OUT &=~ 0x02;   //Clock low   P1OUT = 0x01;        //Channel 6 (Green Wreath)   P1OUT |= 0x02;       //Clock in   P1OUT &=~ 0x02;   //Clock low   P1OUT = 0x00;        //Channel 5 (Red Icicle)   P1OUT |= 0x02;       //Clock in   P1OUT &=~ 0x02;   //Clock low   P1OUT = 0x00;        //Channel 4 (White North)   P1OUT |= 0x02;       //Clock in   P1OUT &=~ 0x02;   //Clock low   P1OUT = 0x00;        //Channel 3 (White South)   P1OUT |= 0x02;       //Clock in   P1OUT &=~ 0x02;   //Clock low   P1OUT = 0x00;        //Channel 2 (Blue North)   P1OUT |= 0x02;       //Clock in   P1OUT &=~ 0x02;   //Clock low   P1OUT = 0x00;        //Channel 1 (Blue South)   P1OUT |= 0x02;       //Clock in   P1OUT &=~ 0x02;   //Clock low   P1OUT = 0x01;        //Channel 0 (Clear All/Active Low)   P1OUT |= 0x02;       //Clock in   P1OUT &=~ 0x02;   //Clock low   P1OUT |= 0x04;       //Latch outputs   P1OUT &=~ 0x04;   //Latch low   while(i > 0)   {         i--;   }

Question by Electric Spectre1 2 years ago  |  last reply 2 years ago


Help building a CNC/3D printer?

Hi, I'm working on building a mini CNC machine then upgrading it to a 3D printer after that using some old CD drives. I want to use the GRBL controller program for this machine. Firstly, most guides ask to use a A3967 driver module for the stepper motor but its pretty hard to obtain that from where I'm from. Can I use ULN2003 instead? The A3967 has two main inputs which is the step input and direction input and the alternating of each pin is done in the chip, however ULN2003 is just a darlington array with 4 inputs that will drive the 4 output pins directly, so the alternating of each pin has to be done in the microcontroller. So I'm not sure how to make GRBL work with the ULN2003 instead. Secondly, arduinos are pretty expensive to get for this project, are there alternative microcontrollers that I can use instead such ATtiny. Can I use the clone Arduinos like Dccduino or Arduinos from China instead? And if so which is better Dccduino or Arduinos from China and what are the disadvantages from using the clones from original?  Sorry for the many questions. Any reply or advice will be much appreciated. Thank you!

Question by KhayhenS 3 years ago  |  last reply 3 years ago


Arduino help

I want to run 2 stepper motors with arduino uno.motor wants 12 volt supply. i tried to run with arduino stepper motor driver wont run. then with ULN2003 it was running now it is not running with it in proper steps. i tried L298 also but same problem is occuring.so plz help me as soon as possible

Question by tejaspatel811 6 years ago  |  last reply 6 years ago


any help running six stepper motors? Answered

I have six stepper motors and i am planning to build a robotic arm. is it possible to build a driver curciut to run the six motors from an arduino to make the arm move. if its not possible then how would i build a controller to drive six uln2003 driver chips

Question by devicemodder 8 years ago  |  last reply 8 years ago


Arduino + Stepper

Hi! I have an Arduino nano and a Minebea PM55L stepper motor and I have to connect these two together. I read the Arduino tutorials, and got a ULN2003 chip. The thing I am unsure of is the power supply and which wires of the motor do what or should be connected to what. There's 6 of them and I really don't want to fry anything if at all possible. Could somebody help out, please?

Topic by TashaDax 8 years ago  |  last reply 1 year ago


Controlling degree of multiple Stepper motors using one push button as a counter Answered

Hello everyone,I am having 3x 28BYJ48 stepper motors and ULN2003 driver equally.I want to control the stepper motors to a pre-defined degree based on the number of pushbutton has been pressed.For an example,i have motor x, y and z.1) When the button is pressed zero time, all the motors need to be in zero degree.2) when the button is pressed for the first time, motor x need to move to 90 degree, motor y to 120 degree and motor z to 180 degree.3) when the button is pressed for the second time, motor x need to move to 110 degree, motor y to 150 degree and motor z move to 210 degree.4) when the button is pressed for the third and last time, all the motors need to move back to zero degrees.Can anyone guide me on this control?Advance thanks to all

Question by JaiJ11 11 months ago  |  last reply 11 months ago


CNC help - Software?

I'm planning on building a X-Y CNC machine.  The issue is softwares.  My plan was to get 2 scanners, and rip out the stepper motors.  Then, as seen on an instructables, use a parallel port with 2 or 3 ULN2003 chips to control the motors. My idea was to do as they did, and use TURBO-CNC to controll the parallel ports, unless there's something better to use? Can TURBO-CNC read G-Codes?  If so, what is the best program to use for creating G-Codes? This project is starting with a 1W blue laser as a etcher / paper cutter CNC.  It it going to be used for getting my machine tuned up.  Once things are in good order, It's going to be turned into a 60W acrylic / 1mm aluminum / thin wood cutter.

Topic by Killa-X 8 years ago


Stepper Motors..

I recently pulled two stepper motors out of a working IBM dot-matrix printer. One larger, 3v one with 1.8 steps. The other is a smaller, 9.5v one with 7.8 steps. I am more interested in the large one right now. I managed to find out that the large one has center-tapped coils. I also found out that Coil 1 is red-white-brown, coil 2 is blue-black-yellow. I found the schematic below on http://ashishrd.blogspot.com/2007/09/computer-controlled-stepper-motor.htmlI was wondering how this could be adapted to control my motor from a PC program with the ULN2003 (that chip sounds like UT2003)? Here are the complete residences of what I found on the wires with a multimeter, in case that helps. Resistances:Red to Brown: 8 ohms (or 7 some times)Red to White: 4 ohmsWhite to Brown: 4Blue to Yellow: 7Yellow to Black: 4Black to Blue: 4

Topic by l0cke 11 years ago  |  last reply 11 years ago


Stepper motor from cd-rom wiring out

Hi guys I have a nasty problem with this stepper motors it cant move, I just press a little bit with my finger and I feel the motor trying start. I`m using Arduino uno conected with a uln2003 and the stepper motor is attached to the IC driver the code is offcial from arduino IDE #include const int stepsPerRevolution = 400;  // change this to fit the number of steps per revolution // for your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); int stepCount = 0;         // number of steps the motor has taken void setup() {   // initialize the serial port:   Serial.begin(9600); } void loop() {   // step one step:   myStepper.step(1);   Serial.print("steps:" );   Serial.println(stepCount);   stepCount++;   delay(500); } WHAT IS MY FAIL?????

Topic by jdev 4 years ago  |  last reply 4 years ago


Stepper Motor Library

Hi! Sorry, I was unable to put library below. So simple and yet so not so simple. How do I get the library in the folder so the program compiles/? Thanks 56Frank library for 28BYJ48 Stepper motor and ULN2003 driver. Here is the source code for our 28BYJ48 stepper motor, ULN2003 driver library, as well as an implementation. Check out the diagram for the wiring. The header file: __________________________________________________________________ #ifndef Stepper_h #define Stepper_h class StepperMotor { public:     StepperMotor(int In1, int In2, int In3, int In4);    // Constructor that will set the inputs     void setStepDuration(int duration);    // Function used to set the step duration in ms     void step(int noOfSteps);    //    for(int sequenceNum = 0;  sequenceNum <= noOfSteps/8; sequenceNum++){         for(int position = 0; ( position < 8 ) && ( position < ( noOfSteps - sequenceNum*8 )); position++){             delay(duration);             for(int inputCount = 0; inputCount < 4; inputCount++){                 digitalWrite(this->inputPins[inputCount], sequence[(int)(3.5 - (3.5*factor) + (factor*position))][inputCount]);             } Arduino         }     } } _______________________________________________________________________ An implementation: _______________________________________________________________________ #include StepperMotor motor(8,9,10,11); void setup(){   Serial.begin(9600);   motor.setStepDuration(1); } void loop(){   motor.step(1000);   delay(2000);   motor.step(-1000);   delay(2000); } Step a certain number of steps. + for one way and - for the other     int duration;    // Step duration in ms     int inputPins[4];    // The input pin numbers }; #endif ___________________________________________________________________ The cpp file: ___________________________________________________________________ #include #include StepperMotor::StepperMotor(int In1, int In2, int In3, int In4){     // Record pin numbers in the inputPins array     this->inputPins[0] = In1;     this->inputPins[1] = In2;     this->inputPins[2] = In3;     this->inputPins[3] = In4;     // Iterate through the inputPins array, setting each one to output mode     for(int inputCount = 0; inputCount < 4; inputCount++){         pinMode(this->inputPins[inputCount], OUTPUT);     }     duration = 50; } void StepperMotor::setStepDuration(int duration){     this->duration = duration; } void StepperMotor::step(int noOfSteps){     /*         The following 2D array represents the sequence that must be         used to acheive rotation. The rows correspond to each step, and         the columns correspond to each input. L     */     bool sequence[][4] = {{LOW, LOW, LOW, HIGH },                           {LOW, LOW, HIGH, HIGH},                           {LOW, LOW, HIGH, LOW },                           {LOW, HIGH, HIGH, LOW},                           {LOW, HIGH, LOW, LOW },                           {HIGH, HIGH, LOW, LOW},                           {HIGH, LOW, LOW, LOW },                           {HIGH, LOW, LOW, HIGH}};                           int factor = abs(noOfSteps) / noOfSteps;    // If noOfSteps is +, factor = 1. If noOfSteps is -, factor = -1     noOfSteps = abs(noOfSteps);    // If noOfSteps was in fact negative, make positive for future operations     /*         The following algorithm runs through the sequence the specified number         of times     */

Topic by 56Frank 1 year ago  |  last reply 1 year ago


Stepper motor working with nrf51dk (problem with timer i think)

Hello everyone, I am trying to make a program that makes work a stepper motor 28BYJ-48, my stepper motor is well connected to the ULN2003 and the ULN2003 is well connected to my nrf51dk, here is a picture of my setup : https://coeleveld.com/arduino-stepper-uln2003a/I foloowed this tutorial and it worked with my Arduino, so I guess the problem is not coming from there.I am now making a program using the nrf51dk, I am using nrf51_sdk_10.0.0 and the ble_app_uart as an example, my project is to control the motor via Bluetooth.But for the moment I just would like to make the motor runing.so I follow the same principe of code as in the tutorial for making it work.I need a timer, so I also followed the "Application timer tutorial" from nordic :devzone.nordicsemi.com/.../application-timer-tutorialhere is my code that I Added to the ble_app_uart project ://At the top I define the differents gpios that I will have to use//and step_number that is a variable use to navigate threw the differents steps for the motor to work int step_number = 0; #define motorPin1 1 #define motorPin2 2 #define motorPin3 3 #define motorPin4 4 #define APP_TIMER_PRESCALER 15 /**< Value of the RTC1 PRESCALER register. */ #define APP_TIMER_OP_QUEUE_SIZE 5 /**< Size of timer operation queues. */ //I add 4 different timers, one for each pin APP_TIMER_DEF(timer_step1); APP_TIMER_DEF(timer_step2); APP_TIMER_DEF(timer_step3); APP_TIMER_DEF(timer_step4); . . . //the code already defined in the existing project//Timeout handler for the repeated timer //I need 4 timeout handler, one foreach motorPin static void timer_a_handler(void * p_context) { nrf_drv_gpiote_out_toggle(motorPin1); } static void timer_b_handler(void * p_context) { nrf_drv_gpiote_out_toggle(motorPin2); } static void timer_c_handler(void * p_context) { nrf_drv_gpiote_out_toggle(motorPin3); } static void timer_d_handler(void * p_context) { nrf_drv_gpiote_out_toggle(motorPin4); } //Then I create the timers // Create timers static void create_timers() { uint32_t err_code1; uint32_t err_code2; uint32_t err_code3; uint32_t err_code4; // Create timers err_code1 = app_timer_create(&timer;_step1, APP_TIMER_MODE_REPEATED, timer_a_handler); APP_ERROR_CHECK(err_code1); err_code2 = app_timer_create(&timer;_step2, APP_TIMER_MODE_REPEATED, timer_b_handler); APP_ERROR_CHECK(err_code2); err_code3 = app_timer_create(&timer;_step3, APP_TIMER_MODE_REPEATED, timer_c_handler); APP_ERROR_CHECK(err_code3); err_code4 = app_timer_create(&timer;_step4, APP_TIMER_MODE_REPEATED, timer_c_handler); APP_ERROR_CHECK(err_code4); } //And here is my main //with the loop to make work the motor the same way I did with the arduino, but adapting the code int main(void) { uint32_t err_code; uint32_t err_code1; uint32_t err_code2; uint32_t err_code3; uint32_t err_code4; bool erase_bonds; uint8_t start_string[] = START_STRING; // Initialize. APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, false); uart_init(); buttons_leds_init(&erase;_bonds); ble_stack_init(); gap_params_init(); services_init(); advertising_init(); conn_params_init(); printf("%s",start_string); err_code = ble_advertising_start(BLE_ADV_MODE_FAST); APP_ERROR_CHECK(err_code); create_timers(); nrf_gpio_pin_dir_set(motorPin1, NRF_GPIO_PIN_DIR_OUTPUT); nrf_gpio_pin_dir_set(motorPin2, NRF_GPIO_PIN_DIR_OUTPUT); nrf_gpio_pin_dir_set(motorPin3, NRF_GPIO_PIN_DIR_OUTPUT); nrf_gpio_pin_dir_set(motorPin4, NRF_GPIO_PIN_DIR_OUTPUT); // Enter main loop. for (;;) { uint8_t str1[1] = "1"; uint8_t str2[1] = "2"; uint8_t str3[1] = "3"; uint8_t str4[1] = "4"; switch(step_number){ case 0: err_code1 = app_timer_start(timer_step1, APP_TIMER_TICKS(200, APP_TIMER_PRESCALER), NULL); APP_ERROR_CHECK(err_code1); err_code2 = app_timer_stop(timer_step2); APP_ERROR_CHECK(err_code2); err_code3 = app_timer_stop(timer_step3); APP_ERROR_CHECK(err_code3); err_code4 = app_timer_stop(timer_step4); APP_ERROR_CHECK(err_code4); ble_nus_string_send(&m;_nus, str1, strlen((char*)str1)); break; case 1: err_code1 = app_timer_stop(timer_step1); APP_ERROR_CHECK(err_code1); err_code2 = app_timer_start(timer_step2, APP_TIMER_TICKS(200, APP_TIMER_PRESCALER), NULL); APP_ERROR_CHECK(err_code2); err_code3 = app_timer_stop(timer_step3); APP_ERROR_CHECK(err_code3); err_code4 = app_timer_stop(timer_step4); APP_ERROR_CHECK(err_code4); ble_nus_string_send(&m;_nus, str2, strlen((char*)str2)); break; case 2: err_code1 = app_timer_stop(timer_step1); APP_ERROR_CHECK(err_code1); err_code2 = app_timer_stop(timer_step2); APP_ERROR_CHECK(err_code2); err_code3 = app_timer_start(timer_step3, APP_TIMER_TICKS(200, APP_TIMER_PRESCALER), NULL); APP_ERROR_CHECK(err_code3); err_code4 = app_timer_stop(timer_step4); APP_ERROR_CHECK(err_code4); ble_nus_string_send(&m;_nus, str3, strlen((char*)str3)); break; case 3: err_code1 = app_timer_stop(timer_step1); APP_ERROR_CHECK(err_code1); err_code2 = app_timer_stop(timer_step2); APP_ERROR_CHECK(err_code2); err_code3 = app_timer_stop(timer_step3); APP_ERROR_CHECK(err_code3); err_code4 = app_timer_start(timer_step4, APP_TIMER_TICKS(200, APP_TIMER_PRESCALER), NULL); APP_ERROR_CHECK(err_code4); ble_nus_string_send(&m;_nus, str4, strlen((char*)str4)); break; } step_number++; if(step_number > 3){ step_number = 0; } power_manage(); } }Probably I am doing Something wrong with the timer, because when I modify it and decide to use it with a led for testing like in the tutorial, the motor makes noise but doesn't move and the led works. If someone can help, it's been hours I am on this problem and I can't find my mistakes.

Topic by BenjaminP106 6 months ago