So many comments! Thanks, guys!
The original web-site indicates that this circuit works with the same motors I've got, so I was assuming the components were all reasonably balanced. The regulator (7805) can put out at least 1A, more if it has a decent heatsink. Of course, at the moment nothing gets hot at all!
The lead-acid battery feed is 6.3v, and the regulator drops this to 4.7v. These voltages do not vary under load. So although they are low, they do not seem to be unstable. I am not sure how to raise the voltage feed - given that I have a battery putting out 6.3v, would it be OK to connect it directly to the input without going through a regulator?
As Mister-e suspects, the impression I get from listening to the motor is that I am sending short pulses to it, when I really ought to be feeding each coil power continuously (except when they are meant to be turned off!). Power is sent to the motor by the PIC program, which does this:
...
HSTEP1 EQU B'00110110'
HSTEP2 EQU B'00101000'
....
MOVLW HSTEP1
MOVWF PORTB
CALL RA_DELAY ; variable loop to time pulses
MOVLW HSTEP2
MOVWF PORTB
CALL RA_DELAY ; variable loop to time pulses
...
Then the PORTB outputs from the PIC are attached to the inputs on the L293D, and the outputs from the L293D are attached to the stepper coils. Does this code mean the PORTB outputs remain high during the delay loop, thus keeping the L293D feeding the stepper coil? Or do the PORTB outputs reset to zero immediately after they have passed the data?
You can see why I'm not sure about where the problem might be!
I suspect I should be microstepping anyway, so another line of attack might be to abandon the L293Ds and go for something else which allows many steps. Is there such a thing?




Bookmarks