Elektroda.com
Elektroda.com
X

28BYJ-48 stepper motor control with the use of a module based on ULN2003A

grala1 7458 13
This content has been translated flag-pl » flag-en View the original version here.
  • I present to you one of the most popular modules for powering a unipolar stepper motor. The module with a stepper motor can be purchased from China for less than $ 1.5 with shipping, also available on Allegro and other auction sites. The dimensions of the board are 40.5x23mm.
    28BYJ-48 stepper motor control with the use of a module based on ULN2003A 28BYJ-48 stepper motor control with the use of a module based on ULN2003A 28BYJ-48 stepper motor control with the use of a module based on ULN2003A
    There are two goldpin strips on the board. One four-pin is used to control the motor where we have inputs from IN1 to IN4, the other four-pin is for powering the driver (+, -) and a jumper (the jumper is inserted is the motor power supply equal to the power supply of the controller) on this strip used to power the motor where we can supply take from the controller power supply, which, according to the manufacturer, should be in the range of 5-12V or from the outside, but remember that the voltage must not exceed 50V - higher voltage can damage the ULN2003A system, you must also pay attention to the current when using another motor - maximum current from ULN2003A is 500mA. The higher power supply can be used when powering another motor, our tested motor is 28BYJ-48, where the power supply for it should be 5V.
    Description of the goldpin power strip - red arrow - plus, black - minus, orange - motor power.
    28BYJ-48 stepper motor control with the use of a module based on ULN2003A
    In addition, the board also has 4 LEDs for visualization of what is happening at the outputs of the system. The engine is connected to the controller via the JST-XH-05 connector.
    The module works very simply. After applying the high state to the IN1 input, we get the low state on the motor connector where the blue wire is connected, it is signaled by the activation of the LED A.
    Feeding the high state to the IN2 input causes the appearance of a low state on the pink wire, which is signaled by the LED B.
    Providing the high state to the IN3 input causes the appearance of a low state on the yellow wire, which is signaled by the LED C.
    Providing high state to the IN4 input causes the appearance of a low state on the orange wire, which is signaled by the LED D.
    The red wire is the connection common to all four coils. Here we have the given plus with the module powered through the jumper on the goldpin strip powering our driver.
    28BYJ-48 stepper motor control with the use of a module based on ULN2003A
    As for the motor, it is a four-phase motor with a power of about 0.03Nm with a step of 11.25 with a 1:64 gear ratio, which means that when controlling, for example, wave or full-time, we have to make 2048 steps to make a full turn at the gear output.
    Now a little bit of theory to know how to use it.
    Stepper motors can be divided into unipolar and bipolar. Controlling unipolar stepper motors is easier and less complicated than bipolar motors.
    In a stepper motor, the speed does not depend on the value of the supply voltage but on the frequency of the steps, and the direction of rotation depends on the sequence of steps.
    In this description I will present how to control the unipolar motor in wave, full and half step.

    Wave control.
    28BYJ-48 stepper motor control with the use of a module based on ULN2003A
    In wave control, also known as single-phase control, only one coil is always powered, i.e. in each step we use only half of the winding from one pair. It can be stated that with this type of control we only use 1/4 of all available coils / motor windings. The controls are quite simple, but with its use we reduce the performance of the engine used.

    Full-step control.
    28BYJ-48 stepper motor control with the use of a module based on ULN2003A
    In full-step control, also called two-phase control, two coils of a stepper motor are always supplied. It must be noted that here we never supply two coils from one pair at the same time. This type of control allows us to use our engine more. In this case, two of the four windings always work, i.e. we use half of the available coils / motor windings.

    Half-step control.
    28BYJ-48 stepper motor control with the use of a module based on ULN2003A
    As you can see, half-step control is more complicated than wave and full-step control. This control is a combination of the two previously described controls. In the case of such control, the step is twice as short, which gives us greater accuracy, we obtain here a lower resonance effect of the motor, which is more manifested in wave or full-step control. While in single-phase or two-phase control where the sequence of control signals repeats every four measures, in half-step control it repeats every 8 measures. When using the half-period control, compared to the controls described earlier, with the same frequency of control signals, we have a twice slower motor speed.

    Below is a program written in Bascom by a forum member " ~~~ pio ~~~ "(Who agreed to use it here) where we can test our module with the engine using the above-described types of controls. I have added a few descriptions in the program so that it can be easily converted to any type of control described here.
    Code: vbnet
    Log in, to see the code

    Below are videos showing the use of the set and each of the described controls.

    Wave control.
    [movie: 704c6463d9] https://filmy.elektroda.pl/65_1511564059.mp4 [/ movie: 704c6463d9]
    Full-step control.
    [movie: 704c6463d9] https://filmy.elektroda.pl/76_1511564421.mp4 [/ movie: 704c6463d9]
    Half-step control.
    [movie: 704c6463d9] https://filmy.elektroda.pl/63_1511564541.mp4 [/ movie: 704c6463d9]

    Cool? Ranking DIY
    About Author
    grala1
    VAG group specialist
    Offline 
    grala1 wrote 9616 posts with rating 4443, helped 1412 times. Live in city Kalisz. Been with us since 2006 year.
  • #2
    szymon122
    Level 38  
    I do not understand why it is called a driver, since this device does not control the engine, but only "powers it" (or more precisely, it amplifies the signal from the CONTROLLER) ...
  • #3
    grala1
    VAG group specialist
    I corrected the title and content.
    In fact, I duplicated a common error in the network - it is not a stepper motor driver, but only a power module.
    I am sorry for misleading.
  • #5
    anszun
    Level 18  
    Col. Grala1 please help. The controller has 4 power pins. there is a jumper on the third and fourth. I want to start it at 12V. Is it enough to remove the jumper or change the pins? When connecting pin1 GND pin4 + 12V (power supply from a separate power supply - other systems work on + 5V, but the engine is 12V) after connecting with the PCF8574A outputs, all the LEDs are on (without I2c control)
  • #6
    TallyFeli
    Level 1  
    Hi...Amusingly, relatively few individuals really realize how to function with them. What's more, in case you are an absolutely confused fledgling with regards to hardware, we comprehend that perusing huge loads of specialized language online can be somewhat overwhelming and unpleasant now and again. Henceforth, we have summed up an aide on the most proficient method to interface a 28BYJ-48 stepper engine with an Arduino, utilizing a ULN2003 driver board.
  • #7
    RAPER
    Level 11  
    Hello
    I see that my friend, Levy ^ did something I need, but he doesn't speak, so maybe someone else will help. I need such a kit for the old rope meter, because I cannot connect it anymore. Will this stepper motor with driver + ABS sensor from differential work as a speedometer ????

    greetings
  • #8
    levy^
    Level 17  
    I contacted PW after 16 hours of receiving your message, I can be independent of notifications on the phone :-)
  • #9
    mjab

    Level 10  
    Hello,

    uses these motors in internal blinds. And here I have a question, if I increase the motor voltage from 5v to 10v, it will raise its Nm? My guess is that it will also heat up more, but its work lasts about 90 seconds and then it does not receive any power.
    Sometimes I have larger blinds and I need a little more strength, and the motors are the perfect size and others would be too big.

    Regards ...
  • #10
    levy^
    Level 17  
    No, you will burn the windings, increasing the torque of a stepper motor is something else entirely.
  • #11
    mjab

    Level 10  
    levy^ wrote:
    No, you will burn the windings, increasing the torque of a stepper motor is something else entirely.


    OKAY :) , and more specifically how to raise a Nm in such a motor?

    For now, my friend made me realize that I am .... yyy ... silly :P And now I would like to be wiser about this knowledge :)


    To give more amps I have to raise the volts? And when I pick up the amps I will increase the strength of the electromagnets ... and that will increase the strength. So far I thought so? :)
  • #12
    levy^
    Level 17  
    you can take half-steps or full steps, reduce the speed, check the documentation for this engine what is the maximum torque. I was just reducing the torque because it mechanically blocks the drive to set the zero point when starting the system
  • #13
    mjab

    Level 10  
    levy^ wrote:
    you can take half-steps or full steps, reduce the speed, check the documentation for this engine what is the maximum torque. I was just reducing the torque because it mechanically blocks the drive to set the zero point when starting the system


    Well, the point is that the internal blinds should close and open as soon as possible. The normal closing time of the roller shutter in a standard window is about 90 seconds. I would like to cut it down to 30 seconds? :) At the same time, I am limited by the size of the engine.
  • #14
    zdziwiony
    Level 26  
    First of all, use some normal stepper motor driver, for example stepsticks used in 3D printers. Secondly, use stepper motors with the lowest possible operating voltage, and supply the controller with the highest possible voltage for this controller. Limit the current in the controller to the maximum value for this motor. This is experimental because the engine can be temporarily overloaded. Use a ramp in the controls so that the engine does not start at full speed. I think that's it.