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

Linear Actuator PWM control for TV open and close

Discussion in 'Arduino' started by joshsstuff, Jun 1, 2017.

  1. joshsstuff

    joshsstuff New Member

    Joined:
    Sep 7, 2010
    Messages:
    21
    Likes:
    0
    ONLINE
    Hello,
    I have already completed a project that uses relays and a 120v circuit to open/close a set of TV monitors for my church. It's a very simple reversing circuit via the relays means a switch is turned "ON" to open the monitors and "OFF" closes them.
    (the 120v system was necessary because of the distance between the switch and the equipment)

    The problem, however of the abrupt start and stop of the monitors needs to be fixed.
    My Arduino project will use a PWM sequence that I will fine tune to provide a more gradual opening and closing.
    (I would also like to add an infrared transmitter mounted to the TV sensors so that I can have them turn on/off as they open/close)
    Here is an illustration of how the system currently works:

    [​IMG]


    I have sourced the following items for this build:
    1) 2x Arduino Uno's
    2) H- Bridge motor driver https://www.amazon.com/gp/product/B01GHKO5O8/ref=oh_aui_detailpage_o06_s02?ie=UTF8&psc=1
    3) Infrared Diode LED IR Emission and Receiver https://www.amazon.com/gp/product/B00EFOQEUM/ref=oh_aui_detailpage_o08_s00?ie=UTF8&psc=1
    4) Limit switches at each end of the Actuators desired stroke.

    Features to include:

    1) Interrupt code, if the switch needs to be reversed when the actuator is in motion, there is a brief pause before heading back. (this is really bad for the actuators, but I must leave some safety option)
    2) IR transmission to turn ON/OFF TVs
    3) Recovery protocol if power is cut to the system
    (if a fuse blows mid-path or while the TVs are open, there must be a way for the program to recover)

    There challenge in #1 & #3 is that the only input is signals sent to the Arduino based on 2 positions of the switch.
    I plan on using the dry contacts of the relays to send 2 signals to the Arduino:
    "Open" and "Close".

    Unfortunately these actuators do not include position feedback, so I will use limit switches at each end of the desired stroke to feedback to the Arduino.
    I plan on using the opening of the limit switches as a signal to start the timing of my PWM function to properly time the stroke speed.
    Here is the order of the Arduino program:

    Open TVs

    1) Relay signal "open"
    2) IR signal "TV_ON"
    3) Actuator Powered "Forward"
    4) "full_Closed" Limit switch opens
    5) PWM function
    6) "full_Open" Limit reached
    7) Actuator Power Stops



    Close TVs

    1) Relay signal "close"
    2) IR signal "TV_OFF"
    3) Actuator Powered "Reverse"
    4) "full_Open" Limit switch opens
    5) PWM function
    6) "full_Closed" Limit reached
    7) Actuator Power Stops


    *Interrupt function = Pause before reversing circuit
    *Safety recovery after power blackout

    I'm used to programing on PicAxe microcontrollers.
    I have ideas about how I would use the interrupts and multitasking to accomplish this type of program, on my old platform, but I'm still learning how to do this on Arduinos, so perhaps you could recommend better procedures than how I propose to accomplish these objectives.

    Here is the motor controller I purchased for the job
    [​IMG]

    There is no real documentation with this controller, it appears that a +5v to the "PWM" pin and a ground to the "DIR" pin will allow it to operate at full speed in a particular direction.
    (The controllers are coming in the mail tonight and I will test them)

    I am grateful for any insight you can offer that will point me in the right direction!
    Thank you!
    In advance.
     
  2. joshsstuff

    joshsstuff New Member

    Joined:
    Sep 7, 2010
    Messages:
    21
    Likes:
    0
    ONLINE
    I've received my Motor Controllers and I ran into a problem.
    Other buyers have reported this driver gets extremely hot.
    Before I write my Arduino program, I tested the driver circuit with the included example test circuit.
    [​IMG]

    When connected to "Motor2" (as per the diagram) the circuit works, however when you supply +5Votls to the "Dir2" pin Mosfet "Q1" (shown by the red arrow) gets SUPER HOT. However, when you put "DIR2" pin low the circuit works and all of the components are cool to the touch.
    [​IMG]



    I tried the same circuit on "Motor1" and this time +5Volts was fine, however -5Volts on "Dir1" pin caused Mosfet "Q7" to overheat.
    I've tired to limit the current to the direction pin by putting a 10K resistor in series, this makes no difference.

    I've noticed that when the 12volt motor line voltage is switched "OFF" there is no overheating on the mosfets. This leads me to guess that the design of this board is causing some misoperation with the Gate and Drain of the Mosfets, and the effect is mirrored on each motor path.
    Unfortunately I'm not smart enough to come up with the specific location of the fault.
    This board has been sold many times and has positive feedback, so I'm not sure how others are using it without this problem . . . (could that be an hint as to a work around?)

    Another thought I had was that perhaps somehow the diodes built into the limit switches of the Linear actuator could only cause the problem with these actuators and not regular motors. I don't have any other motors I could test it with, but I kind of doubt this is the problem.

    You can tell by the traces how the "H" bridge is arranged, but if you wish I can also include a picture of the under side of the board.
    I'm sure this would be a simple problem to solve for someone familiar with advanced "H" bridge design. Any insight would be greatly appreciated.
    Is there a way I can work around this problem?
    I purchased other motor drivers, but these were much more expensive and higher current rated, it's a shame that they are the ones to cause an issue.
     
  3. ericgibbs

    ericgibbs Well-Known Member Most Helpful Member

    Joined:
    Jan 4, 2007
    Messages:
    21,223
    Likes:
    644
    Location:
    Ex Yorks' Hants UK
    hi josh,
    Can you post a copy of the 'manual' for the motor PCB .?
    I would not expect to have to use a -5V signal as a control input, its usually 0V or +V.
    E
     
  4. dave

    Dave New Member

    Joined:
    Jan 12, 1997
    Messages:
    -
    Likes:
    0


     
  5. joshsstuff

    joshsstuff New Member

    Joined:
    Sep 7, 2010
    Messages:
    21
    Likes:
    0
    ONLINE

    Hello Eric,
    Unfortunately I did not receive any manual or diagram.
    I tried to do some digging, but have not come up with anything yet.
    I found another sales site here:
    https://www.amazon.com/gp/product/B01GHKO5O8/ref=oh_aui_detailpage_o06_s02?ie=UTF8&p;sc=1
    There are pictures of both sides of the board, so you can reverse engineer it I would think
     
  6. ericgibbs

    ericgibbs Well-Known Member Most Helpful Member

    Joined:
    Jan 4, 2007
    Messages:
    21,223
    Likes:
    644
    Location:
    Ex Yorks' Hants UK
    hi josh,
    The attached clip is from the Amazon spec details.
    The board does not use a negative voltage for the motor control pins, it is 0v/+5v PWM signal [ pulse width modulation]
    I will look around for more info.?
    E
    A003.gif
     

    Attached Files:

  7. joshsstuff

    joshsstuff New Member

    Joined:
    Sep 7, 2010
    Messages:
    21
    Likes:
    0
    ONLINE
    Thank you Eric!
    Are you saying that the Micro and driver board should not share a common ground?

    I contacted the seller this was my message:
    Hello,
    For your Motor controller I set up your test circuit. Other buys reported "Motor controller gets extremely hot", they are right. I found one source of the problem.
    I used an Arduino for the 5Volts and a 12V supply to control a motor in a 5 Amp max Linear Actuator.
    I used 3Amp fuses, so the power was never too much for the driver.
    The Dir2 pin controls the direction. The circuit works in both directions with the test circuit, however, when Dir2 (or Dir1) is set "high" with 5 volts then "Q1" Mosfet gets SUPER HOT (I can smell it!)
    I have tried putting a 10K resistor on the +5 volts to limit current, but the same results.
    Next I tried using the "Motor 1" side.
    This time when "Dir1" = LOW then Q7 Mosfet gets SUPER HOT.
    Please tell me, Is there a way to correct the Motor Driver by adding components, or is there no way to fix this bad design?

    His reply:
    "Add a heat sink"

    Lol, NO!!
    I told him 4 reasons why strapping a heat sink will not make this problem go away and requested a schematic.
    Here it is:
    [​IMG]

    I'm not sure how useful this schematic is in troubleshooting, because this only shows 1 channel, so I'm sure a lot of other things are missing.
    Also, why doesn't this say: " +36 volts" since that is what the board is advertised as?
    Anyone smarter than me see any smoking guns from this though?
    Or is this how the board 'should' have been designed?
    Did this guy just throw me a generic diagram?
     
    Last edited: Jun 15, 2017
  8. ericgibbs

    ericgibbs Well-Known Member Most Helpful Member

    Joined:
    Jan 4, 2007
    Messages:
    21,223
    Likes:
    644
    Location:
    Ex Yorks' Hants UK
    Last edited: Jun 16, 2017
  9. Pommie

    Pommie Well-Known Member Most Helpful Member

    Joined:
    Mar 18, 2005
    Messages:
    10,093
    Likes:
    330
    Location:
    Brisbane Australia
    ONLINE
    It's not clear from the datasheet if the Vboot voltage is derived from the PWM signal. I.E. you can't use steady state signals but must always be PWMing it so that Vboot can switch on the top MOSFETs. It does state that if the top MOSFETs have to be on for a long time (5mS stated!!) then a bigger Vboot capacitor is required.

    Mike.
     
  10. alec_t

    alec_t Well-Known Member Most Helpful Member

    Joined:
    Jul 10, 2011
    Messages:
    9,291
    Likes:
    1,223
    Location:
    Cardiff, Wales
    In the post #2 test circuit PWM is not being used; the PWM input is a fixed +5V. Therefore the bootstrapping isn't operational. Check that the FET Vgs voltage is about 12V, to ensure that the FETs are switching on fully.
     
    Last edited: Jun 16, 2017

Share This Page