Step 7: Testing Pulse Width Modulation
1 Base Grid (11” x 7.7”) # 6SC BG
3 Battery Holder (2-AA) # 6SC B1
1 Three-Spring Socket # 6SC ?Q
1 Two-Spring Socket # 6SC ?1
1 Jumper Wire 18" (Black) # 6SC J1
1 Jumper Wire 18" (Red) # 6SC J2
1 250ml beaker (http://www.dynalon.com/)
1 Magnetic Stir Bar (http://www.dynalon.com/)
2 Centrifuge Tubes (http://www.dynalon.com/)
2 Toothbrush holders (any dollar store) to hold centrifuge tubes
2 neodymium magnets for magentic stirrer
Circuit board from CyberK'nex motor
Snap Circuits jumper wire to alligator clip conversion cable
Bunsen burner stand (mine is a prototype built from erector set parts in which I am still working out the bugs)
Combination centrifuge/magentic stirer (also a prototype built from erector set parts in which I am still working out the bugs)
Since the output of the 555 timer in astable mode is a square wave and by sliding the variable resistor one can change the pitch of the output signal, it occurred to me that I might be able to create a variable speed motor controller. A square wave signal is simply a pulse, or change in voltage from 0 volts to 5 volts (in the case of this circuit) and then back to zero volts, or a switch that switches on and off very quickly. The "duty cycle" of this circuit is 50% which means that the square wave is at 0 volts for 50% of the time and at 5 volts for 50% of the time. I swapped out 0.02uf capcitor with a 1uf capacitor so you could hear the square wave pulses being sent to the motor.
Next I needed an application in which to test pulse with modulation. I was tinkering around with k'nex to see if I could build a combination centrifuge and magnetic stirer. Here's a video of the k'nex model:
Sadly the CyberK'nex motor is geared for torque, not speed and therefore turned too slowly to be an effective motor for the centrifuge nor the magnetic stirrer.
Next I built a model out of erector set pieces. When powered by 9 volts, the erector set motor turns fast enough, but once any kind of load is put on the motor, it would overheat the circuit and I would watch as the thermistors in the battery blocks would slowly shut the circuit down.
Later I decided to see if I could find the pinouts for the CyberK'nex motors and found them here:
Using the probes from the cable tester circuit but with the black probe connected to Pin 3 on the 555 and the red probe connected to +5V on the battery holder block (B5), I verified the pinouts and tested the variable speed adjustment using the variable resistor (RV). I could easily control the speed of the CyberK'nex motor.
Once I was able to control the speed of the CyberK'nex motor I decided to take the circuit board out of it. I took a three wire header connector and connected the 555 timer to the circuit board pins and the next video was the result of the test:
Next I decided to try drive a Lego Technic motor and found that I did not need the Cyberk'nex circuit board. I could send PWM pulses directly to the lego motor. In this next video I built a circuit to reverse the polarity so that I could turn the motor in forward and then reverse directions. Unfortunately Snap Circuits does not have a double pole double throw switch (the easiest way to reverse polarity) so, I had to build my own double pole double throw switch (with center off) out of two singl pole single throw switches (Slide Switch S1) and a press switch (S2). I also added a green and a red LED to indicate forward and reverse direction. The Lego is connected to the 555 time circuit with a Lego to Snap Circuits convesion cable. Note too that I added two 4.5 volt battery blocks for the 9 volt needed to drive the lego motor.