Wednesday, October 16, 2013

Build an LED Propeller Clock

Build An LED Propeller Clock


My "Propeller Clock" is a mechanically scanned LED clock with seven light emitting diodes that spin, giving the illusion of numbers floating in the air. This is the first clock I ever built. I've built a few LED signs, but they get boring because I already know the message. This clock utilizes only a few relatively inexpensive electronic components and a recycled motor from a VCR or floppy drive. 

The Propeller Clock (Bundle) Parts List

Capacitors:
C1, C2 - 33pF ceramic capacitors
C3, C6 - 0.1µF ceramic capacitors
C4 - 47µF electrolytic capacitors
C5 - 47,000µF supercap (memory cap)

Diodes:
D1-D7 - light emitting diodes
D8-16 - 1N4001 general purpose 1 amp rectifiers

Resistors:
R1 - 120Ω DIP array or seven 120 ohm resistors
R2-R6 - 10kΩ resistors

Misc:
J1 - Straight pin male header
SW1-SW3 - normally open pushbutton switches
U1 - 16F84 programmed with mclock code
XTAL1 - 4MHz crystal
MOTOR - Use or recycle any DC motor, preferably meant for 12 volts so the speed will not be too great when operated at approximately 6.2 volts.



How this clock works:

A motor spins the "propeller", and a smallmicroprocessor keeps track of time and changes the pattern on seven LEDs with exact timing to simulate a 7 x 30 array of LEDs. It is an illusion, but it works nicely. 

If you want to build this clock, you will need a few things:
Skill with motors and mechanical things
  • Prior electronic experience
  • A dead VCR or floppy drive or other source of a suitable motor and miscellaneous parts
  • A programmer that will program a 16F84 microprocessor
DIY LED Propeller Clock schematic


The clock is on a spinning piece of perfboard, but it must get power. I thought of many ways to do this, including using two motors (motor one has its shaft fixed to a base, and motor two spins the body of motor one, generating electricity), making a rotary transformer, or using slip rings. Eventually, I decided to do it another way, taking power from the spinning armature of a plainDC motor. In order to run the wires out of the motor, I removed the bearing from one end of the motor, leaving a big hole. 

There are three terminals inside most small DC motors, and it acts a lot like three-phase alternating current, so it must be rectified back to DC. A nice side effect of this is that the position of the motor can be detected by taking one of the phases straight into the microprocessor

Step One: Mangle a Motor

Find a VCR, perhaps a Sharp or a Samsung, with a flat reel motor. The motor I have is marked JPA1B01, but Sharp knows it by the number RMOTV1007GEZZ (author's note: Sharp motor is obsolete. Use any DC motor, preferably meant for 12 volts so the speed will not be too great when operated at approximately 6.2 volts). Take it apart without mangling the brushes (there are little holes to slip a paperclip into to move the brushes out of the way), and notice that it has one ball bearing and one sleeve bearing. 

Knock the sleeve bearing out of the case and glue orsolder it to the other end of the motor, as an extension of the ball bearing. The shaft of the motor will have to be repositioned slightly to get the right height, press it in a vise with a hollow spacer on one end. Take a Berg connector with three wires and solder them to the three terminals on the motor's armature. Glue a short threaded spacer to the shaft at the end that will stick out the hole, and reassemble the motor (be careful with the brushes). You can glue the motor to a VCR head as a weighted base. 

Disassembling the motor
Disassembling the motor


Step Two: Build the Circuit

I used perfboard (Vectorboard) and hand-wired the circuit together. Use an 18-pin socket for the 16F84because it needs to be programmed before putting it in the circuit. For the 7 current-limit resistors I used a DIP resistor array because it made it easy to experiment with LED brightness. I settled on 120Ω. You can use seven regular resistors, because 120 ohms works fine, though it puts the peak current right at the limit for the 16C84. Think about balance while you build this circuit, and reference my pictures, so you don't have to add a lot of balancing weight later. Substitute for any part values you like. Note that I used a 47000µF supercap, it is to keep the clock running after turning it off so you can set the time. The LEDs get power separate from this. Don't substitute a ceramic resonator for the 4MHz crystal, this is a clock and should be accurate. 

The assembled PCB
The assembled PCB.


Foil view of the PCB
Foil view of the PCB


Step Three: Program the PIC16C84A

You'll need a programmer that will program a PIC16C84A. If you found this file/web page, you can find plans to build a 16C84 programmer. Program it using the hex file accompanying this document. I have included the source code (.asm) just for your amusement. When programming the chip, set the chip options to: watchdog timer (WDT) ON and oscillator to normal XT crystal

Step Four: Throw It Together and Keep Time

Screw the circuit board to the motor, and plug the three wire connector in. Apply power to the motor. The preferred voltage is 6.2 volts, but it will run from 5 volts to about 7.5 volts. Note that 5 volts gets to the circuit when 6.2 volts is applied to the motor, because of diode252BNAV losses. The clock may be working at this point, displaying 12:00. If it isn't, there was probably some voltage on the supercap (memory cap) when you plugged in the chip. 

Turn off the power and momentarily short pins 5 and 4 together (ground and /mclr) to reset the chip. Now when you apply power the clock should work, and you can set it by turning off the power and pushing the buttons (hours, 10 minutes, minutes) the right number of times. If the numbers appear backwards, reverse the polarity to the motor to make it spin the other way. You might experiment with balancing the clock, and the use offoam under the base to reduce vibrtion. 

Top viewTop ViewSide ViewSide View

Step Five: Modifications

If you look closely at the source code, you'll see that the"dot rate" is adjusted to the speed of the motor to make the display a consistent width regardless of the motor's speed. The motor I used has brushes set 90 degrees apart, and gives two indexes each revolution. The clock displays on two sides, 180 degrees apart. If you use a motor with the brushes 180 apart, the clock will only display on one side, and the numbers will be too wide. You'll want to modify the program, in the section marked D_lookup_3. The value in the W register when Delay gets called effects the width of the digits. You might try sending half of the period_calc value to Delay; perhaps by rotating period_calc right into W (remember to clear the carry flag first). 


Wednesday, April 24, 2013

~Trigger a Solenoid Valve by using RF remote~


I'm testing my remote and for sure it works perfectly. This system will be attach to an air popper tank unit and act as a controller/switch to release/trigger the air pressure by remote. Will continue and upload the fully functional system after tested. Just wait..

Monday, April 8, 2013

~ Projek Incubator - Part II~

Tengah2 aku mengemas gmbr dlm laptop, aku terjumpe plak gmbr2 incubator yg aku buat sebelum ni. Incubator ni model pertama yg aku wat. Gmbr2 ni diambil dan di kirim pada aku oleh empunye incubator. Aku x sempat nak amik gmbr lepas benda ni siap tp aku tringin nak tgk benda ni bila masa ianya digunakan. So, dieorg pun amik la gmbr ni bg kat aku...






Dieorg mmg gune sungguh2, sampai pnuh telur dieorg buh, siap2 campur2 g telur puyuh dgn ayam & bertindan tindan. Mase ni dieorg test je, dlm keadaan sebenar x praktikal jika wat camni, sepatutnye telur diletakkan secara berjarak agar telur2 ni dpt bernafas & agar suhu yg dikenakan kepada stiap telur sama rata. Ingat, jgn tiru cara susunan telur dlm gmbr ini.


Saturday, April 6, 2013

~Projek Incubator~

Dalam dok godek2 gmbr lama, aku br prasan actually aku ada wat projek incubator last year. Meaning that secara kasarnye x btul la kalau aku ckp aku dah tinggal lama bidang ni ye x? 

Tp n ak kate projek ni gempak x gak, x la sukar mane pun & x memerlukan any programming pun, just melibatkan hardware je and some wiring yg simple. Anyway just share with u all. Gambar yg ade pun cume incubator je. Gambar dibawah ni adalah gambar incubator yg kedua aku wat for my best friend father dgn budget less than RM 200. 





Maafla coz gmbr yg ade cume incubator tanpa wiring bagai....hehehe(Ini je yg ade dlm simpanan). Incubator yg pertama aku wat utk member yg bela puyuh, so design die pun lain ckit la tp incubator yg dlm gmbr diatas ni utk ayam but actually semua jenis telur pun boleh cume suhu dan kelembapan bagi stiap jenis telur mungkin berlainan dan incubator yg dibina mestila bersesuaian jumlah telur yg ingin diisi @ dieram supaya kadar penetasan telur (produktiviti) tinggi. 

Apepun ianya bergantung atas kreativit sendiri, material ape nak gune, brape biji mentol nak pkai@bagaimana nak susun, thermocouple nak letak kat mane agar suhu yg dibaca oleh thermocouple adalah even@sekata.

So think out of the box, jgn terhadkan kreativiti anda. Sharing is caring. Kalau sesiapa nak tau lebih lanjut ttg wiring atau ape2, aku bebesar hati utk menjawab persoalan anda. Hehehe...K chow...

~IntroDuction~

Dah lama aku tinggal benda2 ni, last skali 5 thn lepas kot. So, semuanye kene mule dr awal balik. Nasib baik aku keje dlm bidang ni jugak, sedikit sebanyak x la truk sgt aku aku nak rewind semuanye balik. Aku pun x tau nak mule camne, maybe aku akan start dgn power supply dulu kot erk.... 

Anyway, aku wat ni just utk suke2 buat mengisi masa lapang, menambahkan ilmu yang ada sedikit sebanyak, berkongsi ilmu yang ada tp yg lebih penting kepuasan diri. K chow....