I'm working on a project that uses four L293D motor drivers to control three stepper motors and one DC motor. Separately, there is also a small servo motor. The L293Ds receive a 6V motor supply voltage and 5V logic supply voltage from a MIC29501-5.0WT linear regulator. Both are powered by a regulated 12V 5A supply from a wall outlet. The logic current draw of the L293D has a maximum of 60mA when all outputs are low. The servo motor, which is one of the microservos that you might get in an Arduino starter kit, should draw a maximum of 750mA (it's one of those ones you get in an Arduino starter kit). Additional current draw comes from supplying a couple other chips, which adds 300uA and 900uA respectively. Totaling it all up comes to a little under 1A.
I ran the numbers according the the MIC29501's datasheet, page 24, starting with power dissipation:
Pd = Iout(1.01(Vin - Vout))
Iout is roughly 1A, Vin is 12V, Vout is 5V. So, my total comes to 7.07W
Next is equation 4-2 in the datasheet for calculating the heat sink thermal resistance. Tjmax = 125 degrees C. I kept an estimated maximum ambient temperature of 75 degrees C and have a thermal resistance of 2 degrees C/W since I'm using a T0-220 package, I get a heat sink thermal resistance of:
((125 - 75)/7.07) - (2 + 2) or ((125 - 75)/7.07) - (2 + 0)
Leaving me with heat sink thermal resistance of 3.07 or 5.07 degrees C/W.
The obvious solution is to bolt a really goodheat sink to the MIC29501, or just use a different regulator. That said, I figured this was a good learning opportunity for other solutions, such as using low-value resistors to split heat dissipation between the resistors and the regulator. I'm not sure how viable that solution is at higher current demands, but I'm still curious