1. Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.
    Dismiss Notice

BLDC motor control -

Discussion in 'General Electronics Chat' started by Enderke, Mar 7, 2018.

  1. Enderke

    Enderke New Member

    Joined:
    Mar 7, 2018
    Messages:
    3
    Likes:
    0
    I am currently using a 24V BLDC motor, with gearbox - ratio 1:139. The motor is controlled by a microcontroller(I think) which is included on the motor. The motor is turning without any code, simply by connecting it to 24V.
    I want to find a way to control the controller so that the outgoing axle:

    • Starts from one specific angle (say 0º)
      • Make one complete rotation (either cw or ccw)
      • Make one part of a rotation (say ¼, cw) and come back to the start angle (moving ccw).
    [​IMG] [​IMG]

    I did connect the blue wire from the motor to an oscilloscope, which gave values differing from 0-5V with a 50% duty cycle. Speed of the motor is dependent on the voltage; 24V is full speed, anything less means less speed.

    [​IMG]

    I tried some arduino codes to try to determine what kind of signal was coming from the blue wire, should I use digital or analog input, and how further..?

    Does anybody have any experience with the readout / control of this kind of setup?
     
  2. dknguyen

    dknguyen Well-Known Member

    Joined:
    May 6, 2006
    Messages:
    7,545
    Likes:
    161
    The hall sensors in that motor dont provide the absolute position data that you need for your goal. They provide pole positions for commutation and do not provide unique readings for rotor position and definitely not after passing through the gearbox. You will need external hardware like relays and limit switches (or an actual encoder on the gearbox shaft.)

    Show us a photo of the blue wire on the scope.

    How do you normally reverse rotation on the motor?
     
  3. Enderke

    Enderke New Member

    Joined:
    Mar 7, 2018
    Messages:
    3
    Likes:
    0
    Well that would be a shame.. The relative position can do as well I suppose, as long as I can have the outgoing shaft make one whole rotation and/or partial.. might this be possible?

    reverse rotation would be archieved by connecting or disconnecting the yellow wire.

    [​IMG] [​IMG]
     
  4. dave miyares

    Dave New Member

    Joined:
    Jan 12, 1997
    Messages:
    2
    Likes:
    -10


     
  5. dknguyen

    dknguyen Well-Known Member

    Joined:
    May 6, 2006
    Messages:
    7,545
    Likes:
    161
    If the blue wire outputs some kind of signal throughout the rotation, you might be able to count up how many motor revolutions have passed (and accounting for the gearbox as well) to determine the rotation. Reversing sounds like the yellow has a pull-up or pull-down resistor so you can pull the opposite polarity via a transistor or directly with the mcu pin

    Show us a scope of the blue wire while running. From the schematic, it looks like speed though which wont be helpful if it's analog, but if it's a ticking signal that is intended to have the pulses be counted that's what you want.

    Do you have a way to halt rotation short of using a relay or FET to disconnect power via the MCU?
     
    Last edited: Mar 7, 2018
  6. MaxHeadRoom78

    MaxHeadRoom78 Well-Known Member

    Joined:
    Jun 9, 2015
    Messages:
    1,030
    Likes:
    90
    Location:
    Canada Geog Cen of N.A.
    Even if the output pulse is just 1/rev of the motor it would mean that you have 139 pulses for each rev of the G.B. output shaft.
    This would make it tricky to detect the 'home' position.
    You say you want a move to come back to the start, can this be in the same dir or do you want to detect zero pos via reverse?
    Max.
     
  7. Enderke

    Enderke New Member

    Joined:
    Mar 7, 2018
    Messages:
    3
    Likes:
    0
    We have been trying a few things - on a scope we get a 50% wave signal (img as example): upload_2018-3-7_17-47-29.png

    But trying to get a signal through arduino - using a digitalRead (on a digital pin) gives either 1 or 0, but values change, also when the motor is not powered..
    Reading the wire on an analog pin, via analogRead gives values, which do differ when turned on or off, but not in a way you might expect (like the blockwave signal).

    Don't have a scope I'm afraid - went to a tech school to use it there.

    I can halt the rotation by disconnection the green wire, or by connecting the white wire. So I guess not..

    We can use an external switch to determine the 'home position'. I do need to be able to rotate both ways, in the same direction, and in the reverse direction.
     
  8. dave miyares

    Dave New Member

    Joined:
    Jan 12, 1997
    Messages:
    2
    Likes:
    -10


     
  9. MaxHeadRoom78

    MaxHeadRoom78 Well-Known Member

    Joined:
    Jun 9, 2015
    Messages:
    1,030
    Likes:
    90
    Location:
    Canada Geog Cen of N.A.
    The scope trace appears to be a digital device, not analogue.
    I have never used Arduino, just Picmicro at present, but that signal should enable a int-on-input type counter, or whatever Arduino uses.
    If the Arduino is seeing a change when the motor is zero, what does the actual signal on a scope show when motor is non-powered?
    Max.
     
    Last edited: Mar 7, 2018
  10. dknguyen

    dknguyen Well-Known Member

    Joined:
    May 6, 2006
    Messages:
    7,545
    Likes:
    161
    That's good news. Those pulses are output for every angle of rotation and are intended to be counted up over a period of time and divided by that time interval to determine the speed. But you can count them to determine how far the motor has moved (but without any direction information kind of like how a car odometer counts up whether or not you are going forward or reverse).

    Add on the external switch to determine your home position and use it to reset your count every time it's detected. This is especially important since you have no directional information when counting the pulses so it's vulnerable to cumulative errors errors from unintended changes in direction such as jerking back and forth when starting and stopping.

    The schematic shows that the motor and hall sensor has a separate power supply so I assume what he means is that he still gets a signal when the motor is unpowered but when the hall sensor is powered, which makes sense.
     
    Last edited: Mar 7, 2018
  11. MaxHeadRoom78

    MaxHeadRoom78 Well-Known Member

    Joined:
    Jun 9, 2015
    Messages:
    1,030
    Likes:
    90
    Location:
    Canada Geog Cen of N.A.
    The type of encoder used to detect direction is a quadrature encoder and has two pulses, 90° apart. Like this $3.00 one on ebay 112030673020.
    Max.
     
  12. dknguyen

    dknguyen Well-Known Member

    Joined:
    May 6, 2006
    Messages:
    7,545
    Likes:
    161
    Well, if he goes with that then he might as well just ignore the yellow wire on his motor. And he would have to stick it on the gearbox output shaft so he only gets one "home" or index pulse which also gives him a direct reading of the thing he is interested in. Getting on that goes on the motor would not be quite as useful since you get multiple index pulses per revolution of the gearbox though you could technically count those up too to figure out where the gearbox shaft is, but why bother?

    He could also use a hall switch in SIP package with a small magnet on the shaft to just get the home position and use it with the yellow wire.
     
  13. MaxHeadRoom78

    MaxHeadRoom78 Well-Known Member

    Joined:
    Jun 9, 2015
    Messages:
    1,030
    Likes:
    90
    Location:
    Canada Geog Cen of N.A.
    The ebay version does not have a home pulse, just the quad pulses.
    Max.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice