Go Down

Topic: A general question regarding a simple DC Motor combined with an H-Bridge (L293D) (Read 450 times) previous topic - next topic

Dacha011

Dear friends and colleagues,

My knowledge in electronic has grown to the point that I intend to start exploring the world of electromotors. So the decided to start with the simplest electromotor - a generic brushed DC motor.

Small DC motor 3 to 5V
Runs on as little as 3 Volts, 5 Volts Maximum.
Current at 5V: 400 mA No Load, 1.7A Stalled 
(Do not stall for more than a few seconds at 5V)


I intend to use an L293D motor driver.
I could just copy/replicate what I saw on many online tutorials, but I want to have a deeper understanding of how things work.

Please help me find the answers to the following questions:

1) The current from the power source that goes in the DC motor will peak if the motor is stalled - 1.2A (in case the motor is blocked because there is not enough torque (if I stop the motor with my hand)),  but usually it will consume 400mA with no load ? The higher the load (the more torque it needs) the more the power consumption will go from 400mA to the value of 1.2 A ?

2) Is the voltage drop of the DC motor (in this particular case)  =   the input voltage - the voltage drop of L293D (the flyback diodes are dropping the voltage, plus the transistors) ?

3) If the DC motor stalls it consumes 1.2A. The max current rating for L293D is 600mA for each channel.
    Does is mean that if I block the motor, it will burn the L293D ?

4) If the Arduino is supplied from the USB, the current that goes through the motor should never go the the Arduino ground, instead they should have a common ground that is not the Arduino GND (a huge current will go through the Arduino(it can damage it) and then through the PC/Laptop) ?


Thanks in advance for the replies, I hope many will benefit after reading your replies.  ;)


Поздрав,

Данило

Robin2

An L293 has a minimum voltage of 4.5v and it is old technology and inefficient - there is a considerable voltage drop within the device which manifests itself as heat.

For low voltage motors I suggest you consider a low-voltage h-bridge such as the Pololu DRV8833. It also has over-current protection.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

slipstick

You need a separate power supply for the motor. It must not be powered from USB via the Arduino.

When you wire the grounds of all circuits to a common point it doesn't matter where that point is. The Arduino GND pin is as good a place as any other.

Steve

Dacha011

@slipstick - I do know that I cant use the Arduino to power the motor.
Thanks for the info regarding the common ground. I was afraid that if lets say 1A passes trough the Arduino           GND, it will fry it.

@Robin2 - I'm experimenting with what I have right now. I'm not bothered with the voltage drop in the circuit above, first I want to clarify in my head the 4 questions that I asked in this thread.
BTW - I enjoyed your "Serial Input Basics" tutorial. I learned so many great things reading it, thanks ! :) 

Robin2

@slipstick - I do know that I cant use the Arduino to power the motor.
Thanks for the info regarding the common ground. I was afraid that if lets say 1A passes trough the Arduino GND, it will fry it.
If you are not drawing motor power through the Arduino and if you have the Arduino GND connected to a common GND the only current that will flow in the Arduino GND pin is the return current for the Arduino itself.

In response to your other Questions
1. yes the motor current will increase as the load increases.
2. yes. I would describe "the input voltage - the voltage drop of L293D" as the voltage available to drive the motor.
3. the driver will be damaged when it overheats - with a bit of luck that won't be instantaneous, but don't count on that.

Torque in a DC motor is created by the current flowing in the coils. When a DC motor is running it generates an internal reverse voltage that opposes the power supply voltage. The maximum speed of the motor is reached when the difference between the reverse voltage and the supply voltage is just sufficient to allow a current to flow that generates just enough torque to overcome friction at that speed. Hence a higher power supply voltage will give a higher no-load speed. When you apply a load to the motor it slows down so the internally generated reverse voltage declines and more current can flow. The extra current generates extra torque that helps to offset the extra load. When the motor is completely stalled there is not internal reverse current and the only thing limiting the stall current is the resistance in the coils. For many motors the stall current is sufficient to overheat the coils and damage the motor.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

jremington

The L293D is ancient, weak, very inefficient and cannot handle the 1.7 A stall current of your motor (which it briefly draws every time it starts moving).

Consider using a modern, efficient motor driver from Pololu, like this one. It is cheap and unlike the L293D, will actually work with your motor.

Dacha011

If you are not drawing motor power through the Arduino and if you have the Arduino GND connected to a common GND the only current that will flow in the Arduino GND pin is the return current for the Arduino itself.

In response to your other Questions
1. yes the motor current will increase as the load increases.
2. yes. I would describe "the input voltage - the voltage drop of L293D" as the voltage available to drive the motor.
3. the driver will be damaged when it overheats - with a bit of luck that won't be instantaneous, but don't count on that.

Torque in a DC motor is created by the current flowing in the coils. When a DC motor is running it generates an internal reverse voltage that opposes the power supply voltage. The maximum speed of the motor is reached when the difference between the reverse voltage and the supply voltage is just sufficient to allow a current to flow that generates just enough torque to overcome friction at that speed. Hence a higher power supply voltage will give a higher no-load speed. When you apply a load to the motor it slows down so the internally generated reverse voltage declines and more current can flow. The extra current generates extra torque that helps to offset the extra load. When the motor is completely stalled there is not internal reverse current and the only thing limiting the stall current is the resistance in the coils. For many motors the stall current is sufficient to overheat the coils and damage the motor.

...R
Thanks for the explanation @Robin2 ! :) It helped me a lot.

I ordered a few DRV8833 DC/Stepper Motor Driver Breakout Board (found them cheep).
It is rated for much greater currents then the L293D.

https://learn.adafruit.com/adafruit-drv8833-dc-stepper-motor-driver-breakout-board/pinouts

@jremington thanks, ordered a similar product :) ! I just have to figure out the pin-out.
There is a VMotor (Voltage for motors) and a VM (i have no clue what it is. Does the DRV8833 need a logic level power supply ?).


Thanks guys :)


Robin2

Two or three hours spent thinking and reading documentation solves most programming problems.

Go Up