Parallel Port Controlled Motor Speed Controller v1.0

The idea of this is to use parallel port, output a 8 bit binary number (0-255) to a Digital-Analog Converter (DAC). I used DAC0808, it's a rather common chips, but for some reason, I can't find it in OrCAD, so.. the circuit diagram just used a generic DAC. User can refer to the orginal spec (link provided below).

Once the DAC recieved the signal from parallel port, it will output a Voltage according to the value. This voltage is feeded into a comparator(Op-Amp). The other side of the comparator is connected to a Trangular wave source (Generated by 2 Op-Amps).

The output of the comparator will be rectangular pulse with the width varies with the DAC output voltage. A very simple minded PWM. This PWM signal is feeded in to a driver transistor (2n4401). In order to drive the MOSFET (IRF9630). This MOSFET will turn on and off according to the Pulse. It acts like a switch to the motor. A very fast switching switch (about 8000 times per second). And since the motor got a rather slow respond time, the motor itself won't even realize it is switching on and off, it will just "think" there is less power when the pulses areshorter, and more power when the pulses are longer...

Next is using a PIC to convert the 8 bit number directly to PWM, so, stay tone...

Circuit Diagram (10kb)
LM324(Single Voltage Quad Op-Amp)
DAC0808(Digital Analog Converter)
DAC0808 Full Spec

Parallel Port Controlled Motor Speed Controller v2.0

It is basically the same as the other one... except this time i used a PIC Microcontroller (16F84) to convert the 8bit number from parallel port directly to PWM pulse.

It provide me a more dynamic range. The old one, the trangular wave is osciallate between 1.3 to 3.6V therefore there is a huge dead band from 0 to 1.3 and 3.6 to 5.But this time, there are no such deadband. once the value change, the output pulse width will change.

It would be better if one can clock the PIC at a high speed. but i dont' have a 4MHz crystal handy. so... I was stucked in RC oscillator.. this is now running at about 660Hz... but it willl do the job for some high resistance load

Circuit Diagram (9kb)
PIC16F84 Full Spec
C-Source for computer controller
ASM file for PIC
HEX file for PIC


Hard Drive Light Chaser

A small design to interface with the harddrive light. For some reason, few motherboard's Hard Drive Light connector are not common ground nor common high. both pin are in some intermediate range voltage. So I cannot interface "directly" with the output pin to TTLs.

The Method I used to work around is to use an opto-coupler (a device that have an Infrared LED on one side and a photodetector on the other side). Connect the IR LED to the motherboard. And use the signal from the photodetector to trigger the TTLs.

The signal also went trough a schmitt trigger to shape it better. Before it goes in to the shift register. Following are the circuit diagram, and the "movie" of the light chaser in action.

If you want to build this, feel free to re-arrange the lights. If you are not quite familiar with TTLs, I suggest you first build it on a solderless breadboard to see how it run first. For detail specification of the TTLs, you can go to Texes Instruments Webpage to do a search. simplily type in the number of the chips.

Circuit Diagram (16kb) AVI movie(104kb)
74164(Shift Register, Serial in, Parallel out) 7414(Schmitt Trigger)