I didnīt read much of it, but you could do so many things!!.
First of all i would recommend a PWM always for this DC motors, they are really Current eaters, if the 16f84 donīt has it (it doesnīt) you can provide something with a simple timer, and a word counter. increase the counter on each interrupt an play with its value to decide if the pin goes HIGH or LOW. I really recommend to meet at last the 16f628

you get so many more stuff that you will never go back to 16f84, youīll get for example a great PWM in one sentence.
I have in my hands the irf530 right now, it should make the work; I donīt have the greatest memory but i do remember that this Motor is an inductor and it will help you to use a diode (1n4004 or a Switcher if using PWM) to reduce peak currents on the level change from ON to OFF, you might have used this diode on relays for the same purpose.
If you canīt use different batteries for the motor and control (if you can then use an optocoupler) then be sure to add some capacitors to the uC Vcc-Vdd as close as possible (this is a classic one).
Donīt know if you are also using a Vreg if you are he is the one shutting down after heating.
Working with small batteries and getting power out of them is a real challenge, if you can go for a better source (you can usually do this for college asignments)
Bookmarks