Connect with us

Beginner needing help - Simple timer circuit for reversing 5v motor

Discussion in 'Sensors and Actuators' started by Euan Williams, Jul 3, 2017.

Scroll to continue with content
  1. Euan Williams

    Euan Williams

    10
    0
    Jul 3, 2017
    I’m an absolute beginner and I believe I have started a project which is beyond me and I really need some help!

    I’m working on a project involving 70 small 5 volt motors.

    I need each motor to turn in one direction for a certain amount of time, and then in the other direction for the same amount of time… and then back again in a constant loop and never ending loop.

    The time of the changeover should be different for each motor and pre-programmable. The times vary between 20 seconds and 10 minutes.

    Each motor is so far apart from one another that controlling them with one Arduino or Raspberry Pi would be impossible – And buying an Arduino per motor would be too expensive.


    What would a cheap, effective and reliable system (which I could build myself) be? I was thinking transistors and a relay – adding the transistors to make the delay larger. But I think this is a bad idea - and anyway, I have no idea how I could make that work. Any ideas or suggestions would be extremely helpful!

    ---

    Another problem is that I want to control the speed with which the motors turn. That is a secondary problem – but if you know of answer that could solve both problems in one that would be amazing!

    Thanks in advance!!!
     
  2. Minder

    Minder

    2,968
    626
    Apr 24, 2015
    For independent PWM/RPM control of a small motor a small PICmicro with a PWM module at each could do it, depending how you want to implement the programming, it could be done with a pot etc on a analogue input on each.
    If these are simple 5v DC motors you will only have rough velocity control, no precise positioning or RPM without a PID feedback loop, if this is sufficient.
    M.
     
    Euan Williams likes this.
  3. Alec_t

    Alec_t

    2,844
    760
    Jul 7, 2015
    If the motors are only low torque you will likely get away with instant reversal, but beefy motors should be brought to a stop before being reversed.
    What is the rated running current of a motor?
     
    Euan Williams likes this.
  4. sumeryamaner

    sumeryamaner

    48
    13
    May 29, 2017
    My solution:

    For each motor:
    - One Attiny85
    - One H Bridge motor driver (such as one L293 or similar, or two AOP605 or similar. The latter are compementary MOSFETs.)
    - One potentiometer (or trimmpot, maybe multiturn)
    You can drive L293 directly from the Attiny. For the MOSFET type circuit two 2N2222 (or similar) transistors will be needed for gate drive.

    The software:
    After initialising the motor driver outputs as OUTPUT, you will read the potentiometer and map the value to your time limits. Then you will put simple delay() instructions and toggle the motor outputs.
    For speed control you will use the PWM capability of the Attiny.

    If you want, I can post a schematic.

    PS: I am assuming you will use simple 5 - 6 V motors.
     
    Euan Williams likes this.
  5. Bluejets

    Bluejets

    4,094
    859
    Oct 5, 2014
    Clone Arduino boards can be used at a cost of maybe $4 each, and even with extra external components, far less than any discrete device. In the latter you will need quite a few in comparison. It would be a good move to get just 1 up and running first as I suspect you will find this a bit more involved than you think.
     
    Euan Williams likes this.
  6. Euan Williams

    Euan Williams

    10
    0
    Jul 3, 2017
    Hi Alec_t,

    It is completely open. The motors have to be strong enough to release and pull back a helium balloon. It is good to know that I have to consider this when choosing which motor to use - Thank you!
     
  7. Euan Williams

    Euan Williams

    10
    0
    Jul 3, 2017

    Hello Sumeryamaner,

    Thanks for your reply! This is exactly the amount of detail I need - if you are able to post the schematic I will be more than grateful!

    Yes. I am using super simple 5v motors.
     
  8. Euan Williams

    Euan Williams

    10
    0
    Jul 3, 2017
    Hello Bluejets,

    Thanks for your reply.

    I had a look at arduino clones - and even tried to buy 2. One never arrived in the post and the other just didn't work. From that experience I got the feeling that they were just cheap things built in China - and quite unreliable.

    Do you have any suggestions of what I could buy, or at least a more reputable place where I could buy them?

    Thanks for your and everyones feedback!!!
     
  9. kellys_eye

    kellys_eye

    4,276
    1,146
    Jun 25, 2010
    Any of the smaller PIC devices will be capable of driving the motor via a small dedicated h-bridge driver or just a couple of transistors in a discrete circuit.
    The hardest part for you will be getting the code right!

    I'd suggest instead that you get an Arduino kit, purchase a motor driver module for it and learn some coding to get just one motor doing what you need it to do then - by that time - you should have sufficient understanding of the Arduino and coding to 'port' the solution to a micro-version of Arduino - other sizes and flavours are available and easily adapted.
    Given the number of tutorials and 'sketches' (program modules) available for the Arduino platform there may well be some coding that will work right out of the box ('repository' is the proper word) or at least a workable version that is easily modified.
     
  10. sumeryamaner

    sumeryamaner

    48
    13
    May 29, 2017
    I always use Banggood and Aliexpress for shopping electronic components. I have purchased several Arduino Nano boards and they work fine. But in my view those boards are for development most of the time. Final product should be based directly on the microcontroller. For this reason after the development is far enough, I design and build my own board and do not use Arduino boards in final projects.
    I will post the schematic in a couple of hours.
     
    Euan Williams likes this.
  11. Bluejets

    Bluejets

    4,094
    859
    Oct 5, 2014
    Never had a problem. Been using them for years.
     
  12. sumeryamaner

    sumeryamaner

    48
    13
    May 29, 2017
    This is one circuit suggestion:

    3.jpg

    We can examine it in two parts. On the left there is an Attiny85. It may run at 1MHz using the internal RC oscillator. One potentiometer is connected to an analog input. This will set the timing. There are two outputs which control the motor driver circuitry.

    Right part of the schematic is the motor controller. There are several different solutions. One of them is a MOSFET H Bridge as shown. There are integrated complimentary MOSFET pairs such as AOP605.
    Please note that the clamping diodes (D1..D4) are not always necessary. If you use MOSFETs the diodes are already integrated in the transistors. If you use L293 series motor driver look at the suffix. L293 does not have the clamping diodes but L293D has them. (http://www.ti.com/lit/ds/symlink/l293.pdf)

    It is also possible to design an H Bridge using bipolar transistors.

    You can connect another potentiometer to a free ADC channel and set the right turn and left turn times separately.
     
    Last edited: Jul 4, 2017
    Euan Williams likes this.
  13. sumeryamaner

    sumeryamaner

    48
    13
    May 29, 2017
    The code for this circuit is very straightforward.
    You will define the two ports (PB0, PB2) as output.
    Write a HIGH to one of the outputs.
    In the main loop you will read the ADC3 input. It will give you a value between 0 - 1023. You need a period between 20 - 6000 seconds. So you will map the reading to this range.
    You will use delay(x) where x will be a number between 20000 and 6000000
    The delay() instruction in Arduino IDE has a limit of 50 days! https://forum.arduino.cc/index.php?topic=115473.0
    Then:
    digitalWrite(0, !digitalRead(0));
    digitalWrite(2, !digitalRead(2));
    These two statements will toggle the outputs and the motor will run to the other direction.
    Note that as you will use small motors we can do this. With heavy duty motors you must first stop them, wait a little bit and then turn them backwards.

    Of course you will need an infrastructure to program the Attiny85. The easiest way is to use an Arduino Uno and a breadboard. You can Google for the details.
     
    Last edited: Jul 4, 2017
    Euan Williams likes this.
  14. Alec_t

    Alec_t

    2,844
    760
    Jul 7, 2015
    With the circuit shown there will be a high shoot-through current.
     
  15. sumeryamaner

    sumeryamaner

    48
    13
    May 29, 2017
    Any further explanation on how and why?
     
    Last edited: Jul 4, 2017
  16. Alec_t

    Alec_t

    2,844
    760
    Jul 7, 2015
    Consider T3, T5. With a 5V supply, both will need to have a Vgs(th) of magnitude a good bit less than 5V to ensure full turn-on. There will therefore be a common gate voltage at which both FETs will conduct at the same time.
     
    Euan Williams likes this.
  17. BobK

    BobK

    7,682
    1,686
    Jan 5, 2010
    Do all of these motors need to operate synchously. If so, it is much more complicated.

    Bob
     
    Euan Williams likes this.
  18. sumeryamaner

    sumeryamaner

    48
    13
    May 29, 2017
    Let's look at T1, T3, T5.

    * If the output of the Attiny is LOW:
    - T1 is practically an open switch
    - The gates of T3 and T5 are at 5V
    - T3 does not conduct
    - T5 conducts

    If T3 and T5 are the complementary pairs from an AOP605, T5 will have a RDS(on) of about 40 mohm (according to the datasheet at http://aosmd.com/pdfs/datasheet/AOP605.pdf)

    * If the output of the Attiny is HIGH:
    - T1 conducts and the saturation voltage between it's collector and emitter is expected to be 0.4V or lower.
    - The gates of T3 and T5 are at 0.4V
    - T3 conducts with a VGS of - 4.6 V and RDS(on) 58 mohm
    - T5 does not conduct practically (with a VGS of 0.4 V)

    Apart from a very short (short means short for this application :) ) switching period there shouldn't be any time period where both transistors conduct.

    Of course, things will change when using PWM.
     
    Euan Williams likes this.
  19. Alec_t

    Alec_t

    2,844
    760
    Jul 7, 2015
    Agreed, but during that brief period (~1uS in simulation) the supply is effectively shorted. While that may not harm the FETs it may upset some other part of the circuit.
     
    Euan Williams likes this.
  20. sumeryamaner

    sumeryamaner

    48
    13
    May 29, 2017
    OK. I think if we drive T3 and T5 with two separate transistors and modify the code accordingly we can prevent this. Is this right? (In this case we will use 4 instead of 2 microcontroller pins).
     
    Euan Williams likes this.
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-